3D PLM Enterprise Architecture

User Interface - CATJDialog

CATJDialog Overview

A first glance at JDialog components
Technical Article

Abstract

This article introduces the CATJDialog framework architecture and components.


Overview

You will find below:

[Top]

What is JDialog?

JDialog is a window toolkit written in Java for Web Application Server infrastructures (such as J2EE or .NET). It provides a collection of graphical components to build advanced User Interfaces (UI). It is able to render the UI through several client platforms (standard web browsers or Wintop V5 client) - independently from the model.

Its main characteristics are:

[Top]

The CATJDialog Framework Class Tree

Below are the CATJDialog Framework classes used in dialog windows and arranged in a tree showing the inheritance links.

[Top]

The CATJDialog Framework Class Definitions

The CATJDialog framework includes two main widget types:

  1. The containers to contain and arrange component objects.
  2. The components which are atomic objects to fill the containers.

Every widget offers two kinds of control:

  1. Notifications: events that may be raised from the user (ex: "ButtonActivated" on a CATButton),
  2. Properties: properties that may be accessed (get and/or set) from the application (ex: "Title" on a CATButton).

All widget classes derive from the abstract class CATDialog which defines common properties, notifications and services. These include:

Note: the notification mechanism is implemented by CATCallbackSource (from which CATDialog derives). A "callback source" exposes a set of notifications that it may send, and provides methods to register/unregister to those notifications.

To have a complete description of the classes interface, refer to the javadoc.

[Top]

Containers

The containers are used to contain one or several components and to handle them as a whole, for example for layout purposes.

[Top]

CATDocumentManager (see javadoc)

The document manager is the top container (it may be assimilated to the top window where the command is executing). It manages commands lifecycle, and offers services to activate a new command (replacing the current one), to stack a new command (over the current one) and to unstack the current command (switching back to the previous one).

[Top]

CATDialogBox (see javadoc)
A dialog box is a sub-command with a finite lifetime. When it's activated, it temporarily overlaps the running command. It is generally destroyed when one of its "OK", "Apply" or "Cancel" buttons is pressed, switching back to the running command.

[Top]

CATFrame (see javadoc)

The frame is designed to group and arrange several widgets. It provides a grid layout implementation that allows advanced layouts.

Note: it's the only container that allows more than one child.

[Top]

CATWebPartFrame (see javadoc)

The web part frame outlines a zone with a frame (and a possible title) for grouping widgets having something in common from the user or from the application point of view. It can contain a single object (this object could be a frame itself containing as many objects as you want).

[Top]

CATTabPage (see javadoc)
The tab page gathers a set of pages, one page being shown at a time. It presents a tab index at the top to select the page to show. A page is a widget.

[Top]

CATWizard

A wizard is a tool that helps the user accomplish a complex task in a step-by-step fashion. Once a step has been filled in with required data, the user may switch to the next step, until the end of the wizard (the task is then fulfilled), or until the task is cancelled. At any time, the user may come back to a previous step to change it. In the wizard container, each step is represented by a widget (possibly a frame).

[Top]

Components

Basic widgets
The label (see javadoc)is a static text and/or image used to add information to UI. It may be rendered as a title or a simple text, depending on its level value.

 

The button (see javadoc) is a control dedicated to trigger an action. Use the button whenever you want to execute an action as soon as the user requests it.

 

The text field (see javadoc) allows character strings to be keyed in. Two kinds of text fields exist: the single-line text field that accepts input on one line only, while the multi-line text field enables you to enter text spanning on several lines. It can be disabled and turned into a password field. Use the text field whenever you want the user to key in a character string without predefined values.

 

The checkbox (see javadoc) allows for selecting several options among all the options proposed, that is several can be in the "on" state while the others are in the "off" state. Use checkboxes whenever you propose to the end user a choice among several inclusive options, that is when several options can be selected at the same time.

The radiobutton (see javadoc) allows for selecting mutually exclusive options, that is one radio button is in the "on" state and all the others are in the "off" state. Use radio buttons whenever you propose to the end user a choice among several exclusive options, that is when one option only can be selected.

 

The combobox (see javadoc) allows to select a value or an option by selecting a character string from a predefined list. Use the combo whenever you want the user to select a character string in a list.

[Top]

CATLink (see javadoc)

A link is a label (text and/or image) with a specific rendering, that is triggered when clicked. Application is notified when such an event occurs. Use a link whenever you want to provide navigation behavior to the end user.

[Top]

CATWebLink (see javadoc)

A web link is an external URL (for example to the World Wide Web). It's lifecycle is external to the application, the application is never notified when it's activated.

[Top]

CATUploadButton (see javadoc)

From the graphical point of view, an upload button looks like a button. When it's pressed, an upload dialog box is raised to let the user choose a file to download. The application is notified when a file has been selected.

[Top]

CATToolbar (see javadoc)
The tool bar is designed to gather application tools, represented by icons. It can be either vertical or horizontal.

[Top]

CATTable (see javadoc)
A table is designed to group connected values within a set of finite lists. Cells may contain several data types: text, image, link, checkbox, ... A table allows several selection modes: single or multiple lines and/or cells. It also provides a service for managing popup menu on selected items. When the table model is bigger than a customizable limit, its rendering is fragmented ("next" and "back" arrow buttons).

[Top]

CATTree (see javadoc)
A tree is designed to present data having hierarchic relationships. Tree items are represented by an icon and a text. The tree provides a services for managing popup menu on selected items.

[Top]

CATViewer (see javadoc)

The class CATViewer is a 3D viewer widget (based on the V5 Visualization ActiveX).

[Top]

Remarks on JDialog

As we've seen in the introduction, the JDialog UI Modeler is "extendable" and "supports stateless architectures". Let's explain those notions a bit more precisely.

[Top]

Extendibility

The CATJDialog Framework is extendable. That is it can be enriched with new widgets. It provides two ways of publishing new widgets:

[Top]

Solutions for stateless applications

When developing a web application, memory management is a major concern. The JDialog architecture is designed to bring solutions on this issue:

[Top]


History

Version: 1 [Jul 2002] Document created
[Top]

Copyright © 2000, Dassault Systèmes. All rights reserved.