The treeview explained
Introduction
The treeview is the main way of navigating through your application. I has a generic/global part that is used for all the applications in your project and it contains the details for each application.
One application or multiple?
In theory, you will be able to create multiple applications within one project. Each of these applications will be able to connect to its own database. Also, multiple applications may share one database.
Each application will have its own code modules, messages, domains, etcetera. When a user logs on, he will be able to start either one of the applications or even multiple.
The reality is that most solutions implement only one single application. In this situation, the boundaries between global objects and application-specific objects are less relevant. You will even be able to let load all
code modules (the global modules and the application-specific modules) in 'one space'.
For simplicity, we assume you will only have one application per project in our documentation.
Globals
The globals part contains all elements that are defined 'globally' and are shared with all applications you create in your project.
- Global settings: This contains all kind of global settings for the project. These are settings that define the name of the project, settings that define the generic behaviour of the user interface, etcetera.
- Global messages: The global messages are messages that are used from your global modules or are used from within system messages. You can add and delete these global messages yourself.
- Global messages: The system messages are used for all standard texts in Polar Studio. Like texts 'Are you sure you want to delete this record' to a message defining the logon-screen. System messages can not be deleted or added by the user.
- Custom controls: Polar Studio comes with a set of 'controls' that are used to create the HTML when a control in a form is rendered. However, in your applications you may want to render specific HTML for some controls. This is where you can use Custom Controls. The custom control is defined only once and can be used in many places. Custom controls can be created for specific field types, for relationships or for 'unbound' controls. You must implement scripts to catch the events to render the control.
- Global/websession events: This part contains the global events/websession events.
- Global modules: The global modules are available for all your applications. Also, global modules are used for events like 'ValidateUser' and for custom controls.
Per application
Per application, the tree allows you to edit all application specific properties and objects.
- Application settings: This dialog will allow you to set all kind of settings specific for this application. This includes properties like the caption of the application, which form is opened on start-up and the default headers and footers for the application.
- Groups: When a user logs in to a project, he will get access to the application as member of a user-group. Per application, multiple user-groups can be defined. There must always be at least one user-group. Per user-group, you can give permissions to tables, fields, controls, state-transitions, etcetera. Also many properties can be set per user-group, allowing you to shape your application to each user-group.
- Menu: The menu is used to get access to tables and forms in the application. You can also have menu-items that start a specific script or open specific system forms. You can set permissions to all items in the menu.
- Tables and bound forms
- Domains: A domain is a set of properties that can be applied to fields in the database. These can be specific rules for text fields, allowed values for numbers or it can define a fixed limited set of values (with specific captions). You can also define domains for date fields or for file-upload fields (blobs).
- List of tables...: All tables in the database that you have included in your project are listed here. Each table-node can be expanded. You will then see the following sub-nodes:
- Table settings: In this dialog you can access all settings regarding the table, its fields, the permissions, workflow, etcetera.
- Events: This node lists all events on the table, like 'OnInsert', 'OnUpdate' and 'OnDelete'.
- The form(s) defined on the table: Each table has at least one form to access the data in the table. If wanted, you can add additional forms that can be used for special situations or for specific user groups. In real life, using multiple forms on one table is used/needed only very occasionally. Per form you will be able to access the form settings and its main events.
- Unbound forms: Within the tables, all table-bound forms are shown with their table. You can also create forms that are not bound to a table. These unbound forms are listed here. Each form here can be opened to show its settings and to access its main form-level events.
- Messages: The messages dialog contains all messages created within the application. These are messages that are used for for example captions but also messages that are used in scripts. Each message can be translated to the languages you are using in your application.
- Events: Here, all application-level events are shown. These are events on the application itself (like OnOpenApplication) but also 'global' (generic) events for all tables or all forms, like 'GlobalOnInsert' or 'GlobalOnOpenForm'.
- Modules: The modules listed here are created within the application. You can create modules for implementing events on tables, fields, forms, controls, domains, etcetera, but also to create your own procedures for complex scripts.