Adichatz defines a new layer composed of controllers which forms a main feature of the component-driven architecture.
A controller is a composition of Rich UI components, as a ManagedForm or simple SWT components as Text.

The controller manages links between UI components and entities (see Model layer) to ensure the connection with locks, dirty and lazy fetches management.
A life cycle, in which the developer can act, is combined to the controller.


Controllers can be divided in 4 categories:

Collection controllers hosting entity Entity injection process is managed by these controllers. That means that by default, they received the entity of the parent controller, but they can define they own entity or a null value.
Field controllers These controllers can be linked to a field of a Pojo and follow databinding rules.
Other Collection controllers Others controllers which contains a collection of controllers but do not manage entities.
Other controllers Other controllers


Collection controllers hosting entity

ArgPShelfController Composition around a PShelf (see nebula project). Children should be PShelftemControllers and are defined by a List of values (like a combo) and so is not determined like for PShelfController.
ArgTabFolderController Composition around a CTabFolder. Children should be CtabItemControllers and are defined by a List of values (like a combo) and so is not determined like for CtabFolderController.
CompositeController Composition around a Composite. Children available are the same as those of SectionController.
CompositeBagController Composition around a specific control called CompositeBag: A bag of composites. Only one composite is displayed.
CTabItemController Composition around a CTabItem. Children available are the same as those of SectionController.
FormPageController Composition around a ManagedForm for simulating a page of an editor.
GroupController Composition around a Group. Children available are the same as those of SectionController.
IncludeController Specific controller to manage include process (see axml Files)
PGroupController Composition around a PGroup (nebula project).
PShelfItemController Composition around a PShelfItem (nebula project).
SashFormController Composition around a SashForm.
ScrolledCompositeController Composition around a SharedScrolledComposite.
ScrolledFormController Composition around a ScrolledForm (Provides scrolling and message zone).
ScrolledPGroupController Composition around a PGroup (nebula project). Content composite is a scrolled composite.
SectionController Composition around a Section.

Field controllers

CComboController Composition of a CCombo. Style AdiSWT.FIELD_ASSIST was added when Field Assist is demanded.
CheckBoxController Composition of a Button with style SWT.CHECK. Corresponding type in the database is boolean.
ComboController Composition of a Combo. Style AdiSWT.FIELD_ASSIST was added when Field Assist is demanded.
DateTextController Composition of a DateText. DateText is an UI Adichatz component which allows to manage date in several format (Date, DateTime…).
EditableFormTextController Composition of a FormText. An easy way to manage URL tag and image in your application. Futhermore, the controller provides a way to edit and change the text value.
ExtraTextController The ExtraController is build around a specific control created for Adichatz. This is a FieldController that means that it can be linked to the databinding service.
FileController Composition of a FileText: a specific control which manage file path.
FontTextController controller for choosing font.
GMapController Composition of a GMap control. GMap is a composite control which contains a browser. A http request is send to google and map result is displayed.
HyperlinkController Composition of a Hyperlink.
ImageViewerController Receive an URL or file path or data and display an image.
LabelController Composition of a Label.
MultiChoiceController Composition of a MultiChoice. a multiChoice is a special widget that allows you to multiple values inside a list of choices.
NumericTextController Composition of a NumericText. NumericText is a Adichatz UI component. Corresponding types in the database are all numeric types. Format could be specified.
RadioGroupController Composition of a list of Buttons with style SWT.RADIO.
RefRadioGroupController Similar to a referenced RadioGroupController, but list of Buttons is determined by a persistent set or a query.
RefTextController Composition of a RefText. RefText (referenced text) is an UI Adichatz component which allows to manage Many-To-One relationship. Styles AdiSWT.FIND_BUTTON, AdiSWT.DELETE_BUTTON and AdiSWT.EDITOR_BUTTON are added when a find button, a delete button (for clearing value) and a edit button (for opening an editor) are demanded.
RGBTextController Controller for choosing RGB (color).
RichTextController Composition of a RichText. a rich text is a special widget that allows you to manage the bold, italic, underline or URLs in the text.
StarRatingController Composition of a StarRating. a starRating is a special widget that allows you to select rating thru a number of stars.
TextController Composition of a Text. Corresponding type in the database is varchar.

Other Collection controllers

ButtonBarController Composition around a bar of buttonControllers and separators. You can specify an orientation.
CTabFolderController Composition around a CTabFolder. Children should be CTabItemControllers.
GridController Composition around nebula components Grid and GridViewer (nebula project).
ManagedToolBarController Specific ToolBar used in section. Children should be ActionControllers.
PShelfController Composition around nebula component PShelf. Children should be PShelfItemControllers.
TabularController parent controller of TableController, GridController among others.
TableController Composition around a Table and a TableViewer.
ToolBarController Composition around a ToolBar. Children should be ToolItemControllers.
TreeController Composition around a Tree and a TreeViewer.

Other controllers

ActionController Child controller of ManagedToolBarController or component of a ButtonController.
ButtonController Composition of a Button. It could contain, an Action Controller or define its own action.
ToolItemController Child controller of ToolItemController, composition of a ToolItem.
FormattedTextController Composition around a FormattedText (nebula project).
GridColumnController Child controller of GridController (nebula project) corresponding to a column.
GridColumnGroupController Child controller of GridController (nebula project) corresponding to a group of columns.
PGroupMenuController Menu of a PGroup (nebula project).
PGroupToolItemController Tool Item of a PGroup (nebula project).
TableColumnController Child controller of TableController, composition of a TableViewerColumn.