User Guide
  • Introduction
  • Overview
    • About 4WS.Platform
      • Architecture
      • Enterprise Edition
      • Tech specs and requirements
      • Warp SDK
    • Creating a web application
  • Core features
    • Tables
    • SqlTool
    • Definition of Data models and Relations
      • Relations
      • Reverse Engineering
      • Custom Fields
    • Defining business components
      • What are business components
      • Business components to fill-in panels
      • Creating business components
        • By a datastore entity
        • By a MongoDB collection
      • Defining Custom Java Business component
    • Defining the UI
      • App Designer
        • App Designer Menu
        • Definition of additional data sources
        • Panel containers and layouts
          • Tab panel
          • Alternative panel
          • Accordion panel
          • Vertical orientation panel
          • Horizontal orientation panel
          • Columns panel
          • Table panel
          • Generic panel
          • Responsive panel
        • Window content
          • Grid Panel
          • Form Panel
          • Filter Panel
          • Tree Panel
          • Google Map Panel
          • Preview Panel (old Image panel)
          • Tree + Grid Panel
          • Image Gallery
        • Windows list
        • Panel definition
          • Columns properties
          • Controls properties
          • Filter properties
          • Supported components
        • Variables
        • Code selectors
          • When not to use a dynamic combo-box
        • Smart Filter and Advanced Filter
        • Multi Value Combobox Filter
        • Multi Value Tree Filter
        • Buttons
        • Translations
          • Translations about GUI components and internationalization settings
          • Data coming from database
          • Custom code and translations
        • Application Menu
        • Bulk import binded to a grid
        • Range Date Filter
      • Web Interpreter
        • Grid components
        • Detail forms
        • Other components
        • Other features
          • Chat
        • Global variables
          • Client-side global variables
          • Server global variables
        • Forgot Password
    • Working with users and roles
      • Rule for roles
      • Permissions Administrator
    • Wizard
      • How to add a checkbox grid to select one or more rows
      • How to load a second grid when clicking on a row from the first grid
      • How to load a form when clicking on a row of the grid
      • How to open a window when double clicking on a row of the grid
      • How to open a window with right click on the popup menu
      • How to open a window when pressing a button on the grid toolbar
      • How to load a grid after loading a form
      • How to open a window when pressing a button on the form toolbar
      • How to load a grid when clicking on a tree node
      • How to load a form when clicking on a tree node
    • Defining events
      • Panel events
      • Column events
      • Control events
      • Filter events
      • Timer events
      • Start-End event
    • Server-side Javascript & Web Service
      • Server-side Javascript
      • Grid component filled by a server-side JS
      • Detail component filled by a server-side JS
      • How to define a server-side JavaScript action
      • Web service
  • Setting up the environment
    • How to install
    • Application parameters
    • Global parameters
  • Modules
    • Reports & Charts
      • Jasper Report + iReport
      • Online report
      • Docx templating
      • Charts
      • Pivot Grid
      • Multidimensional pivot grid
      • Data Export from SQL query
    • SSO
      • Identity management in Platform
        • Identity management on the internal Platform database
        • Identity management based on Google SSO
      • LDAP
        • LDAP support
        • Identity management based on LDAP and database
        • Identity management based on an embedded LDAP server used by Alfresco and or Activiti
        • Identity management based on a remote LDAP server to connect to Platform on the cloud
        • Connecting an LDAP server to Activiti BPM
        • Connecting an LDAP server to Alfresco ECM
      • Google SSO
        • Google SSO
        • Google OAuth2
        • Identity management based on Google SSO
      • Custom SSO
      • Firebase
    • Mobile
      • Mobile introduction
      • Offline vs Online
        • Server side features
        • Server side functionalities
        • Server side Platform features
        • Mobile app features
      • Mobile side specifics
        • Customizations
          • Custom theme editor
        • App Menu
        • Window content
          • Detail scrollable form
          • Scrollable paginated grid
          • Constraint layout
          • Constraint panel
          • Collection grid view
          • Preview panel (mobile)
        • Form Controls
      • Reference guide
      • Cleaning up data
      • How to
      • App deployment
        • App deployment for the iOS platform
        • App deployment for the Android platform
      • Style properties
      • Appendix : Synchronization flow
      • Translations
    • GSuite
      • Introduction
      • Client-side integration
      • GMail
      • Calendar
      • Drive
      • Contacts
    • Google Cloud Platform
      • Datastore
        • Google Datastore Introduction
        • How to create Datastore entities
      • Google Cloud Storage
    • Scheduler
      • Scheduler Introduction
      • Process settings
        • How to define a sequence of consecutive processes
        • How to define a Custom Java Business component
        • How to define a Grid Data Import
        • How to define a server-side Javascript action
      • Email notifications
      • Process executions
      • Manually start a scheduled process
      • Process input parameters
    • Queue Manager
    • Log & Analysis
      • Application Log
      • Log statistics
      • App analyzer
      • Table log
      • Threads
      • Sessions and heap memory
      • Heap memory analysis
      • Access Log
      • Datastore statistics
      • Total monthly costs with Google Datastore
      • Service Monitoring
        • Introduction
        • Defining a service to monitor
        • Notifications setup
        • Events automatically managed by Platform
        • Remote Platform servers
        • Knowledge base
        • Adding log programatically
        • Searching for logged data
        • Use cases
    • File Management
    • Export and Import of Metadata
      • Application Metadata Management
    • Trigger writing operations
    • Audit
    • BPM
      • BPMN Introduction
      • BPMN main parts
      • Activiti Setup
      • Platform integration
        • Processes
        • Models
        • Process instances
        • To-do list
        • Process history
      • Process Web Modeler
        • Model Creation
          • Start-End Event
          • Gateways
        • Supported objects
        • Start tasks and user tasks
        • Form properties
          • Important notes
          • Property types
        • Service tasks
          • Web service
          • SQL Query
          • SQL statement
        • Mail task
        • Script task
          • Example : how to get a value previously read from a SQL query
          • Example : how to get the current process instance id
        • Timer events
        • Subprocess and Call Activiti
      • Utility methods available in Platform
        • How to start a process from a JavaScript action
        • How to complete a user task from a JavaScript action
      • An example
        • Processes
        • Instances
        • Activities
        • History
    • Embedded CMS
    • ECM
      • Alfresco
        • Alfresco Introduction
        • Integration between 4WS.Platform and Alfresco
          • Integration at GUI level
          • Integration at model level
          • Integration at authentication and authorizations level
          • Additional features
        • How to use 4WS.Platform and Alfresco together
          • Set the same Identity Management system
          • Define document types and aspects in Alfresco
          • Import the document types and aspects definitions in 4WS.Platform
          • Define document types and aspects in 4WS.Platform
          • Reverse engineering of document types or aspects
          • Definition of business components to fill-in panels
          • Definition of the GUI
          • Additional server-side services
        • Requirements
        • Current limits in 4WS.Platform - Alfresco integration
      • Archiflow
        • Setup
        • Archiflow artifacts
        • How to
    • Lotus Notes Migration Tool
    • NoSQL databases
      • MongoDB
        • MongoDB Introduction
        • Setting up the environment
        • How to create collections
        • How to create business components
        • How to create windows filled with data coming from MongoDB collections
        • Design rules
      • Google Datastore
        • Google Datastore Introduction
        • Setting up the environment
        • How to create entities
        • How to create business components
        • How to create windows filled with data coming from Datastore entities
        • Design rules
    • TensorFlow
    • Web Page Development
      • Pure Web Page Development
      • Google Material Design development
      • Appendix A - a complete example without any lib
      • Appendix B - a complete example with Google MD
    • Jira Integration
    • Platform for GAE
    • SQL errors management
    • Multidimensional pivot grid
    • Quality
      • Automated Web Service Testing
      • Automated unit testing
      • Source code static analysis using ESlint
      • Source code static analysis using SonarQube
  • Troubleshootings
  • Best practises
    • Database design
    • Database maintenance
    • Creating a Web app : common use cases
    • Creating a mobile app : common use cases
Powered by GitBook
On this page
  • Files Management
  • Progress bar

Was this helpful?

  1. Core features
  2. Defining the UI
  3. App Designer
  4. Panel definition

Controls properties

PreviousColumns propertiesNextFilter properties

Last updated 3 years ago

Was this helpful?

The controls list is an editable list where the user can refine the controls behavior. The default setting is automatically defined by the Web Designer, when creating the form. During the form definition, the select clause of the binded business component is analyzed: for each field in the select clause, a control is created and added to that list. Control type, linked label, mandatory, length, editability in insert/edit modes are automatically set, according to the settings of the database fields: if a database field is mandatory, the control is mandatory, if a database field is part of a primary key, the related control is not editable in edit, and so forth. There are a great deal of control properties; in order to make it easy the control definition, not all properties are showed, only the most common; it is possible to access to the whole range of properties, by pressing the "Advanced mode" button on the toolbar.

These are all properties defined for a control:

  • To manage – flag used to define if the field must be managed, in terms of make it visible, editable and saved

  • To show – flag used to define if the control is visible; even if it is declared as not visible, the user can always make it visible when interpreting the application, by switching that settings with right click of the mouse on the control header

  • Position – control order in the form

  • X – (optional) in alternative to the position, a label + control can be positioned exactly in a specific location, using x and y coordinates, expressed in pixels

  • Y – (optional) in alternative to the position, a label + control can be positioned exactly in a specific location, using x and y coordinates, expressed in pixels

  • Subpanel title – (optional) if specified, a sub panel will be created inside the form container using this title and including inside it any label + control having this subpanel title; this property makes it possible to group labels/controls in several panels within the form

  • Subtab title – (optional) if specified, a sub tab will be created inside the form container using this title and including inside it any label + control having this subpanel title; this property makes it possible to group labels/controls in several tabbed panes, within the form; tab panes and sub panes can be combined too

  • Width – total width including label + control; note that for each controla label will be always created on its left, except when the label has a zero text length

  • Height – (optional) it can be useful in case of multi-line text controls

  • Label – text label, if it is empty, the label will be omitted

  • Control type – application type to apply for the control; typically this types are preset by the Web Designer when creating the form and are compatible with the database field type; the user can change this application type and refine the control format, for instance by setting a control with a date type for a datetime field. Allowed application types are defined below

  • Code selector – in case the control has a combo-box/lookup type, this additional property must be defined, in order to specify which code selector will manage this control

  • Directory upload – in case the control has a "File upload/download", "File path" or "Image path" type, this property must be defined, in order to specify which is the default directory where saving/loading files

  • Field length – in case of text controls, this attribute defines the maximum characters allowed in edit

  • Integers number – in case of number control, this attribute defines the maximum number of integer digits allowed in edit

  • Decimals number – in case of number control, this attribute defines the maximum number of decimal digits allowed in edit

  • To uppercase – flag used to make the text edited by the user be in uppercase

  • Mandatory – flag used to force the editing of this control, which cannot be empty when saving data

  • Editable in insert mode – flag used to allow the editability of this control when the form is in insert mode

  • Editable in edit mode – flag used to allow the editability of this control when the form is in edit mode

  • Can copy – flag used to allow the copy of the control value, when clicking on the copy button on the form toolbar

  • Right padding – property used to apply the right padding to a text/char control: the number is used to ensure that the final value for the control will have enough spaces on the right so that the final control value will have a length equals to this number

  • To trim – flag used to apply a trim to the text (no spaces on the left and right)

  • Default value in insert mode – value to apply to the cell when the form is in insert mode. You can choose a predefined variable, such as username or current date; as alternative, you can specify a variable having format :VARIABLENAME or a text, such as abc, which will be then automatically surrounded by ‘ ‘: ‘abc’; as alternative, you can also specify a javascript expression, such as: ‘+record.data.attributeName+’ (Pay attention to the use of ‘ and ‘ before and after the javascript expression: that depends on the fact that in detail forms a string is required and it is then surrounded by ‘ ‘, so you have to add ‘ and ‘ to close the string and concatenate something other: ”+record.data.attributeName+”)

  • Default value in edit mode – value to apply to the cell when the form is in edit mode

  • Positive value in check – Value saved for checked checkboxes

  • Negative value in check -Value saved for unchecked checkboxes

  • Currency symbol

  • Data format – format expressed in ExtJS compatible format, to use with numeric values; e.g. 0.000

  • Minimum date – in case of date/datetime type, it is possible to set a minimum date the user can set

  • Maximum date – in case of date/datetime type, it is possible to set a maximum date the user can set

  • Minimum numeric value – in case of number type, it is possible to set a minimum number the user can set

  • Maximum numeric value – in case of number type, it is possible to set a maximum number the user can set

  • Not editable if – boolean expression, expressed in javascript, indicating when the control is editable; this property overrides the default behavior of the control, defined through the combination of the form mode (insert/edit) + can insert/can edit properties. The property is useful when the behavior of the control should change according to a dynamic value, such as "a document state" represented by the value of another attribute of the same record.

  • Icon name – in case of button type, it is possible to select an icon.

  • Additional config - Optionally, it is possibile to define at control level additional settings, which will be injected along with all the others provided by Platform. These settings must be compatible with the ones defined by ExtJS for a Ext.form.Field and subclasses. In order to add these settings, use the advanced property "Additional Config." where you can specify a list of properties. The content of this property will be included in a more general {...} javascript object containing the column properties. Consequently DO NOT append the {} brackets within this property, since they are already provided by Platform. You have simply to append your properties and separate each of them with a comma ,

    For example: for smart controls you can set the grid, the business component and the placeholder text for control

    grid: grid9,
    compId: 1239,
    emptyText: Ext.translate.Cache.getTranslation('text'),

Allowed application types for controls, according to the related database field type:

Database field type

Application type

Text

Text, Multi-line text, Check-box, Local/Remote Combo-box, Button lookup, Code+Button lookup, Image combo "File upload/download", "Image Path", "File Path", Button, Label

Integer

Number

Decimal

Number

Char

Text, Check-box, Local/Remote Combo-box, Button lookup, Code+Button lookup, Button, Label

Datetime

Date, Datetime, Time

Date

Date, Datetime, Time

Internal Counter

Internal Counter

Counter based on a table

Counter based on a table

Counter based on a custom business component

Counter based on a custom business component

Sequence

Sequence

File identifier

File upload/download

Files Management

There is a difference between File upload/download, Image Path, File Path control types: File upload/download – an upload/download button is showed as graphics control; through that button it is possible to show a dialog window used to download, upload, preview and delete a file; when uploading a file, this will be phisically stored in the server file system starting from the path specified through "directory upload" property in the form controls designer; when saving, the uploaded file will be stored within the following subfolders structure: ///filename.xxx That structure allows to store multiple versions of the file (file versioning). Image Path – this control type does not show a preview of the image, as for the grid it works exactly as the "File path" control type. File Path – an upload/download button is showed inside that column; through that button it is possible to show a dialog window used to download, upload, preview and delete a file; when uploading a file, this will be phisically stored in the server file system starting from the path specified through "directory upload" property in the form controls designer; when saving, the uploaded file will be stored in that path. This column type does not allow to store multiple versions of the file. Note that if you need to show a preview of an image in a detail window , you should follow these steps:

  • create a window containing a form panel, through the windows wizard feature of the web designer

  • add an "Image Panel" to that window, so that the window would contain the form panel in the north and the image panel in the center of the window

  • create an "after loading" event linked to the form panel, used to force the loading of the image in the image panel named loadImagePanelXXX, each time the form panel is loaded; a javascript action should be linked to that event containing the following instruction:

loadImagePanelXXX(vo);

Note that it is allowed to insert/delete "virtual" controls in this list for added controls to form. This controls are not saved. Not "virtual" controls are automatically synchronized with the fields defined in the select clause of the bounded business component, which are automatically synchronized with the data fields defined in the bounded data model.

Progress bar

In case the control type has "progress bar" type, such a control is always readonly and allows to show a rounded progress bar, starting from:

  • a min value - which must be specified through the corresponding control property; if not specified, it is assumed it is zero

  • a max value - which must be specified through the corresponding control property

  • the current value for the form panel vo's attribute

The progress bar is shown with this default rendering:

In the app.css file there is this default setting:

/* progress bar */
.x-progress-inner {
	border-radius: 8px;
}
.x-progress-bar {
  border-radius: 8px;
}

/* light green background color for the progress bar container */
.x-progress-inner {
  background-color: #e3f5e3;
}

/* green background color for the current value */
.x-progress-bar {
    background-color: #47ae46;
    background-image: none;
    border-top-color: #47ae46;
    border-bottom-color: #47ae46;
    border-right-color: #47ae46;
}

Optionally, it is possible to change the bar background color from green/yellow/red, according to the current value and two limits:

  1. green: an integer value representing the interval [0..green] where the bar is green colored

  2. red: an integer value representing the interval [green..red] boundaries excluded, where the bar is yellow colored

  3. from the the "red" integer value, the bar is red colored

Moreover, the current value and max value are reported below the bar.

In order to activate the 3 color bar and current/max value labels, 3 additional properties must be set in the "additional config" property of the graphics control:

red: 40,
green: 10,

In this example, the bar is green colored in the range [0..10], yellow colored in the range [11..39] and red colored in the range [40...]