Introduction to screen types
The screen type of a subject (table or variant) determines the screen structure used to visualize the subject. There are four different levels for which a screen type can be specified:
- Main screen: when the table is opened from the menu.
- Detail screen: when a table is a detail of another table.
- Pop-up screen: when a table opens as a pop-up.
- Zoom screen: when a detail of another table is double clicked so it opens as a main size screen.
If the screen type is left empty, then the standard screen type, indicated at the project version, is used.
The screen types that are set up for the Windows and Web user interfaces are also used for Mobile. The Mobile user interface converts the screen types to a version that is suitable for smartphone or tablet by analyzing which components are used in the screen type.
Assigning a screen type
To assign a screen type to a subject, follow these steps:
menu User interface > Screen types > tab Screen types
- In the left list of screen types, select the screen type that has to be assigned to a specific table .
- Select the relevant table(s) and variant(s) in the Assign to subjects tab to which this screen type has to be assigned.
- Use the Assign screen type tasks to assign the selected screen type to the desired screen type levels of the selected subjects.
Assigning screen types
If a selected screen type is used by a subject, then the name of the screen type is highlighted in bold. Underlined screen types are explicitly set up to deviate from the standard screen types defined at the project version.
Designing a screen type
To design a custom screen type, a new screen type first has to be created in the Screen type overview.
menu User interface > Screen types > tab Screen types
The ID, and possibly a definition of this new screen type, is specified here.
Thinkwise recommends keeping the name of the screen type abstract, since it could be used in several places. Therefore, not customer but for instance parallel_detail.
When a screen type is especially developed for one process, then this screen is not suitable for use with other subjects. By turning off Available for user preferences, this screen is not displayed in the user interfaces when switching screen types with user preferences.
When a new screen type is created, it can be designed on the Design tab. This tab consists of a number of parts which are explained in more detail in the table below.
Designing a screen type
- Abstract components - In this component, an overview is presented of the available abstract screen components that can be dragged onto the work sheet.
- Preview - With the help of these buttons, a screen type can be tested on an existing end product.
- Work sheet - This is the work sheet on which the various components are dragged to construct a screen type.
- Overview of properties - The properties of the selected component are presented here. These can be manually adjusted.
- Save and reset - The modifications can be saved or undone using these buttons.
During the design of a screen type, various abstract components are available which can be dragged onto the work sheet.
|Tab container||The tab container ensures that several tabs can be used under which the details or other components can be classified. Empty tabs are removed by the user interface.||Show borders (True/False) |
Show tab headers (True/False)
Tab orientation (Horizontal/Vertical)
|Grid||Shows multiple records in a grid. The user interface will remove the grid if there can only be at most one line.||Show grid header (True/False)|
|Form||Data from one row can be presented and modified in the form.|
|Form list||This component displays a form without tab pages for every row in the grid. All the forms will be stacked and a scrollbar will be created when it exceeds the screen.|
|Search form||The search form provides an overview of the (limited) search set on the screen.|
|Filter form||The filter form provides an overview of the (limited) filter set on the screen.|
|Prefilter bar||A button for all prefilters is displayed in this bar. The user interface will remove this component if there are no (visible) prefilters.||Alignment (Left/Right or Top/Bottom)|
|Cube view bar||A button for all cube views is displayed in this bar. The user interface will remove this component if there are no cube views.||Alignment (Left/Right or Top/Bottom)|
|Task bar||A button for all tasks is displayed in this bar. The user interface will remove this component if there are no tasks.||Alignment (Left/Right or Top/Bottom)|
|Reports bar||A button for all reports is displayed in this bar. The user interface will remove this component if there are no reports.||Alignment (Left/Right or Top/Bottom)|
|Tree structure||Displays a tree structure. The user interface will remove the structure if there can only be at most one row.|
|Filter||The filter can be used for quick filtering on several columns.||Dock (Left/Fill/Right)|
|Dashboard||Displays the data in a Dashboard form. The user interface will remove the component if there is no maps definition for the table. At the time of writing, this can only be created with an object model extender.|
|Maps||The Maps component displays a folder in which data can be viewed. The user interface will remove the component if there is no maps definition for the table. At the time of writing, this can only be created with an object model extender.|
|RSS||Displays an overview in which RSS feeds can be presented. The user interface will remove the component if there is no RSS definition for the table. At the time of writing, this can only be created with an object model extender.|
|Preview||Displays the first column of a table that contains a file link or path (for instance a URL or a file upload column).|
|Pivot table||Provides the possibility to display a pivot table. The user interface will remove the pivot table if there is no cube definition for the table.|
|Pivot table fields||Provides the possibility to display fields that can be dragged and dropped in a pivot table. The user interface will remove the pivot table fields if there is no cube definition for the table.|
|Graph||Displays a graph on the screen. The user interface will remove the pivot table if there is no cube definition with a graph for the table.|
|Scheduler||The scheduler displays a graphical planning. The user interface will remove the component if there is no scheduler definition for the table.|
Windows GUIWeb GUI - A scheduler can only be created with an object model extender.
Universal GUI - Available as a component with limited functionality, but no object model extender is needed.
|Detail tiles||This component shows the details of a subject in tiles. Clicking on a tile will open a new document.|
|Card list||This component shows records as cards, with an image and title, in a scrollable list.|
All these components can be dragged to and dropped onto the work sheet to compose the required screen. When the first component is dragged onto the work sheet, this will fill the complete page. When another component is subsequently dragged onto the work sheet, a frame will appear at the position where this is dragged to. The components on the work space can be moved freely by dragging them.
It is possible to display several button bars and the filter next to each other instead of under each other. This allows more efficient use of the available space. White space between the various components (prefilter, report, tasks and filter) is added automatically.
When the screen is developed according to your wishes, it is possible to display a preview of the screen in the Software Factory.
First, connect to an end product by clicking the Connect button. Then select the table which it needs to be connected to and click the Preview button. A new document will open inside the Software Factory development environment, showing the screen type applied to the selected subject.
The model is re-loaded with the Refresh button.
When making the connection, use the Thinkwise Mock Database provider to display a preview without the end product. The preview is then displayed with dummy data.
The Screen components tab displays an overview of the selected screen type's components in a tree structure. Several advanced settings for the screen type can be adjusted here.
menu User interface > Screen types > tab Screen components
Depending on the horizontal or vertical orientation of the component:
- Set the Height or Width to a fixed number of pixels or a percentage.
- In fields Height unit and Width unit, select 'Percentage' or 'Pixels'.
- Check the box for option Fix on resize.
Hide the toolbar
Sometimes the toolbar (search, refresh, etc.) doesn't make sense for a screen type. To hide the toolbar by screen type:
menu User interface > Screen types > tab Screen components > tab Screen component properties
- In the field Screen component prop. add property
HIDE_TOOLBARto the root screen component.
- Add a Value, for example, 'yes'.
Responsive screens are designed to work well on mobile, tablet, and desktop devices, by adapting the layout to the device and screen size. A responsive screen is created by using breakpoints in combination with screen types. Breakpoints are the points at which your GUI changes to a screen type that presents the data with the best possible layout, depending on the screen size.
For every screen type in the Software Factory, one or more breakpoints can be defined. A breakpoint consists of a Breakpoint in pixels and a Breakpoint screen type. When the width of a screen type becomes smaller than the defined number of pixels in Breakpoint, then the screen type changes to the Breakpoint screen type.
Breakpoints debug mode
In Universal GUI, a debug mode is available to help add breakpoints. It is enabled by setting
debugMode: true in the
config.json. Now, the current width and
active screen type for each screen are shown in the GUI. If a screen type is a breakpoint, you will also see the screen type that it is a breakpoint of.
It is possible to define more breakpoints:
|Breakpoint (px)||Breakpoint screen type|
In this situation, the used screen type is master_detail as long as the number of pixels is between 400 and 600. When the screen is made smaller, between 200 and 400 pixels, the GUI switches the screen type to card_list_form. And when the screen is smaller than 200 pixels, the GUI will show screen type card_list_only.
Example of a breakpoint set-up
Tab container component
The tab page container has two functions:
- Tab pages for components
- Tab pages for details
An empty tab page container
Tabs can be added via the context menu of the tab container.
Component tab page
To drag components in a component tab, the status of the tab needs to be set to Edit tabs via the context menu (right mouse button). On the right-hand side of the screen, it is indicated for each screen component whether the size of the component must remain fixed when changing the size of the screen.
By setting up a tab control for a component tab, it is possible to influence the translation and the icon of the tab. New controls can also be added via the Tab controls tab. The standard can be overwritten by adding an own icon and translation.
Detail tab page
When use needs to be made of a tab container containing the details of the subject, then the status of the tab on Detail tab needs to be set with the help of the Change component tab page to detail option in the context menu (right mouse button). The tab will then become gray and the details will be initialized on the basis of the definitions of the subject. It also needs to be indicated which details are displayed on this detail tab by selecting a tab control for the detail tab on the right-hand side of the screen.
As standard, there is a choice from the options A, B and C, but new detail controls can also be added under Tab controls. An own icon can also be added here.
In the Subjects screen, the details of subjects can be distributed across the various detail tabs that are present in a screen. If a set tab control is not present on the chosen screen type, then the detail is placed on the first detail tab.
Detail tab page groups
Hiding tab headers and lines in the screen type modeler
This option enables the user to hide the tab header completely or only hide the line. These are:
- Show tab header
- Show borders
These properties can both be set to false to hide their respective properties.
Tab page properties
The preview component supports a wide range of file formats, including but not limited to:
- Images (.jiff, .jpg, .jpeg, .bmp, .png, .ico, .svg, .gif)
- Text files (.txt, .cs, .java, .ini, .log, .bat and .sql)
- Web pages (.html, .htm, .xml, .gif, .msg and .svg)
- XML files (.xml)
- Outlook emails (.msg)
- PDF and PostScript files (.pdf and .ps)
If a preview cannot be generated for a file, the preview component will state 'No preview is available'.
For Windows GUI and Web GUI, a scheduler can only be created with an object model extender.
Place the Scheduler screen component in the screen type and the component will initialize via the following rules:
- A subject needs to have at least 2 date/time columns. The order of these columns will determine the start and end of an activity.
- The title of the activity is determined by the Display column.
- The activity color can be set with a conditional layout. The conditional layout has to be set to the Display column.
- A tooltip is available when hovering over an activity by using a domain that contains the Control type 'multiline'.
- The resources of the scheduler will be determined by the first field in the subject that has a sort with a Group Until. This needs to be a readable text identifier, lookups will not yet be translated.
- You can add resources that do not yet have an activity by including a row in the subject with an empty start- and end date.
Drag & drop is allowed in the scheduler. The start- and/or end date of a row can be changed manually and by dragging the resource horizontally. If the subject is a view, this could require an instead-of update trigger. Dragging an activity to another resource will update the Group Until column to the target value. Note that, since the translation of lookups isn't yet supported, you might have to translate this back to a correct foreign key value using an instead-of update trigger.
Some features are not yet available in the Universal Scheduler screen component:
- Double-click events, for instance, tasks or appointments.
- Double-click time cells.
- Drag & drop an external row, for instance, from a grid.
Example of a resource scheduler in Universal GUI