Formulare und Listen
Die graphische Oberfläche von Sciformation ELN besteht aus
- Portalen,
- Suchformularen,
- Listen- und
- Detailansichten mit Unterformularen sowie
- der Menüleiste und weiteren kleineren Komponenten.
Portale
In der Konfigurationsdatei können durch den Systemadministrator können die folgenden Parameter gesetzt werden:
- component_form_portal: für die allgemeine Startseite
- component_form_cptWhs: für das Bestellportal
- component_form_cptAnaRequest: für die Analysenauftragsverwaltung
- component_form_cptWitnessing: für die Verwaltung von Bezeugungsanfragen
- component_form_cptDevice: für Gerätewartung und Chemikalienkontrolle
Suchformulare
Über die Parameter search_form_XyzEntity können Standardsuchformulare durch eigene ersetzt werden. Dabei können relative Pfade wie "/WEB-INF/clientSpecific/.../xyz.zul" oder absolute wie "file:///home/sciformation/custom/xyz.zul" angegeben werden. Darüber hinaus können die Suchformulare für
- Analytikdaten (Analytikart, -gerät),
- Experimente (Experimenttyp) und
- Untersuchungsgegenstände (Art)
Die Liste aller verfügbaren Anwendungsfälle einer Portalansicht wird durch Aufruf der Methode ZkPortal.setDefaultTabbedUsecases(..) in der jeweiligen ZUL-Datei definiert. Nutzer können diese nach Belieben anordnen oder Tabs ausblenden, durch einen Klick auf "Speichern" im Tab-Menü oben rechts (bzw. unten links bei vertikaler Ausrichtung der Tabs) kann die Anordnung für den betreffenden Nutzer als Standard gespeichert werden. Dort können auf ausgeblendete Anwendungsfälle wieder eingeblendet werden. In der Konfigurationsdatei können Administratoren die Parameter "portUc_portal", "portUc_cptWhs", etc. mit kommagetrennten Listen von Anwendungsfällen belegen, um für diejeweiligen Portale Standards bezüglich der Sichtbarkeit und Anordnung vorzugeben.
Listenansichten
Listenansichten werden durch Java-Code im Paket webclient.zkgrid.renderer aus CellRenderern generiert, um neben der Ausgabe im Browser auch Listen im CSV-, XLS(X)- oder JSON-Format ausgeben zu können. Diese Klassen können durch eigene BeanShell-Klassen überschrieben werden. Außerdem bestehen folgende Möglichkeiten der Anpassung oder Erweiterung:
-
Für Maps von Eigenschaften des Typs EntityProperty können Eigenschaftsspalten hinzugefügt werden, indem Parameter wie xyzEntityProperty.columns mit kommagetrennten Listen belegt werden.
Für lokalisierte Überschriften kann das Präfix durch den Parameter xyzEntityProperty.langPrefix festgelegt werden, d.h. der lokalisierte Text für "Präfix.nameDerEigenschaft" wird gezeigt, sofern nichts anderweitiges festgelegt ist.
Durch folgende Parameter können die jeweiligen Spalten (in diesem Beispiel "elnReactionProperty.temperature") weiter angepaßt werden:
- elnReactionProperty.temperature.title: setzen einer statischen Überschrift
- elnReactionProperty.temperature.defaultVisible: Spalte wird standardmäßig angezeigt, sofern "true"
- elnReactionProperty.temperature.width: Ist der Wert < 15, so wird er als hflex-Wert gesetzt, sonst als Spaltenbreite in Pixel. Der Standard ist 2.
-
Parameter von Typ list_customizer_XyzEntity können Dateinamen von Python-Skripten angeben, deren Funktion customizeColumns() vor Ausgabe der Liste aufgerufen wird.
Dabei stehen die Variablen
- colMap (vom Typ Map<String, EnhancedColumn>, interne Namen verweisen auf Spaltendefinitionen),
- columnVisible (Set<String>, interne Namen sichtbarer Spalten) und
- columnOrder (List<String>, Reihenfolge der Spalten, repräsentiert durch deren interne Namen)
- Sie können Standard-Spaltenanordnungen und -sichtbarkeiten auch ohne Programmierung anpassen, indem Sie in der Konfigurationsdatei Parameter des Typs column_order_XyzEntity und visible_columns_XyzEntity mit kommagetrennten Listen von internen Spaltennamen belegen.
Detailansichten
Über die Parameter detail_form_XyzEntity können Standardformulare für die Detailansicht durch eigene ersetzt werden. Dabei können relative Pfade wie "/WEB-INF/clientSpecific/.../xyz.zul" oder absolute wie "file:///home/sciformation/custom/xyz.zul" angegeben werden. Darüber hinaus können die Formulare für
- Analytikdaten (Analytikart, -gerät),
- Analytikgeräte (Analytikart, -gerät),
- Experimente (Experimenttyp) und
- Untersuchungsgegenstände (Art)
Knöpfe und Steuerelemente in der Symbolleiste - sowohl für Detail- als auch für die Listenansicht - werden hauptsächlich durch den jew. Controller auf der Basis von controller.zk.ZkUcGenericController gesteuert. Setzt man den Parameter hide_save_continue auf "true", dann wird der Knopf zum Zwischenspeichern bei weiterhin aktivem Bearbeitungsmodus ausgeblendet.
Menüleiste und weiteren Komponenten
Über die Parameter menu_url bzw. component_form_ können das Menü sowie bestimmte Dialoge wie
- multiEditMenu (Auswählen von Datensätzen zur Mehrfachbearbeitung),
- oeExportMenu (Auswählen von Datensätzen und weiteren Parametern zum Listenexport),
- oeLabelMenu (Auswählen von Datensätzen und weiteren Parametern zum Etikettendruck),
- oePrintMenu (Auswählen von Datensätzen und weiteren Parametern zum Formulardruck),
- oePrintPDFMenu (Auswählen von Datensätzen und weiteren Parametern zur Berichtserstellung),
Forms and lists
The graphical user interface of Sciformation ELN compromises of
- portals,
- search forms,
- list views and
- detail views with child forms as well as
- the menu bar and additional minor components.
Portals
System administrators can set the following parameters in the configuration file:
- component_form_portal: for the general portal page
- component_form_cptWhs: for the ordering system portal
- component_form_cptAnaRequest: for the portal to manage requests for analyses
- component_form_cptWitnessing: for the witnessing portal
- component_form_cptDevice: for device maintenance and checking of chemicals
The complete list of use cases available to users in a portal is defined by the respective ZUL file, by calling ZkPortal.setDefaultTabbedUsecases(..). The user can hide or rearrange the tabs, and save the current status as default by clicking "Save" in the tab menu at the top right (or bottom left if the vertical orientation is active). Hidden tabs can be displayed again using this menu. In the configuration file, administrators can also set a comma-separated list of use cases as default, using parameters "portUc_portal", "portUc_cptWhs", etc. in the configuration file.
Search forms
The default search forms can be replaced by custom ones by setting the parameters search_form_XyzEntity. You can use either relative paths like "/WEB-INF/clientSpecific/.../xyz.zul" or absolute ones like "file:///home/sciformation/custom/xyz.zul". Moreover, the following search forms can be dynamically extended by child forms, which are loaded depending on the chosen type (in parentheses):
- analytical data (type, device),
- experiments (experiment type) and
- objects of investigation (type)
List views
List views are generated by Java code in the webclient.zkgrid.renderer package using CellRenderers, allowing to output the lists not only in the browser, but also in CSV, XLS(X) or JSON format. These classes can be overwritten by custom BeanShell classes. Moreover, it is possible to customize or extend the list views in the following ways:
-
For property Maps of type EntityProperty ,property columns can be added by setting parameters like xyzEntityProperty.columns to comma-separated lists.
For the localized naming, the parameter xyzEntityProperty.langPrefix can be set so that the localized name displayed will be "prefix.propertyName" unless specified further.
The respective columns (in this example, "elnReactionProperty.temperature") can be fine-tuned by the following parameters in the configuration file:
- elnReactionProperty.temperature.title: set a static column title
- elnReactionProperty.temperature.defaultVisible: column should be visible by default if "true"
- elnReactionProperty.temperature.width: values < 15 will be set as hflex, otherwise as column width in pixel. The default value is 2.
-
Parameters like list_customizer_XyzEntity can point to Python scripts, where the function customizeColumns() is called prior to the list rendering.
The variables
- colMap (of type Map<String, EnhancedColumn>, internal names reference column definitions),
- columnVisible (Set<String>, internal names of visible columns) and
- columnOrder (List<String>, left-to-right order of internal column names)
- By setting parameters of type column_order_XyzEntity and visible_columns_XyzEntity using the configuration file to comma-separated lists of internal column names, you can control default column orders and visibilities without programming.
Detail views
The parameters detail_form_XyzEntity allow to replace default forms by custom ones. You can use either relative paths like "/WEB-INF/clientSpecific/.../xyz.zul" or absolute ones like "file:///home/sciformation/custom/xyz.zul". Moreover, the following detail forms can be dynamically extended by child forms, which are loaded depending on the chosen type (in parentheses):
- analytical data (type, device),
- analytical devices (type, device),
- experiments (experiment type) and
- objects of investigation (type)
The buttons and controls in the toolbar of both detail and list view are mainly controlled by the respective detail controller (based on controller.zk.ZkUcGenericController). However, by setting the parameter hide_save_continue to "true", the button which saves a dataset without leaving the editing mode can be hidden.
Menu bar and additional components
The parameter menu_url allows to define a custom menu file, while parameters starting with component_form_ allow to replace certain dialogs by custom versions:
- multiEditMenu (selection of data sets for multi-editing),
- oeExportMenu (selection of data sets and additional options for the list export),
- oeLabelMenu (selection of data sets and additional options for the label printing),
- oePrintMenu (selection of data sets and additional options for printing forms),
- oePrintPDFMenu (selection of data sets and additional options for the report generation),