Screen Controllers
A screen controller is a Java or Groovy class that contains the screen initialization and event handling logic. Normally, a controller is linked to an XML descriptor which defines a screen layout and data containers, but it can also create all visual and non-visual components programmatically.
All screen controllers implement the FrameOwner marker interface. The name of this interface means that it has a reference to a frame, which is a visual component representing a screen when it is shown in the main application window. There are two types of frames:
-
Window- a standalone window that can be displayed inside the main application window in a tab or as a modal dialog. -
Fragment- a lightweight component that can be added to windows or other fragments.
Controllers are also divided into two distinct categories according to the frames they use:
-
Screen- a base class of window controllers. -
ScreenFragment- a base class of fragment controllers.
The Screen class provides basic functionality for all standalone screens. There are also more specific base classes to use for screens working with entities:
-
StandardEditor- a base class for entity editor screens. -
StandardLookup- a base class for entity browse and lookup screens. -
MasterDetailScreen- a combined screen displaying a list of entities on the left and details of the selected entity on the right.