.
Eloquence JDLG contact contact


JDLG object and attribute reference:
System object

 
.
  Document revision: 2023-02-22
Refers to JDLG version: 2.0.16


Contents


The System object is a hard-coded top-level object. It provides an interface to global JDLG configuration and runtime parameters.

Note: The System object is global, i.e., shared among all sessions.

activate : string, set
Brings the Dialog of a concurrent session into foreground where the Dialog title (caption) matches the specified string argument, similar to clicking an entry in the WindowMenu.

This has no effect if no Dialog with the specified title exists.

Note: Requires JDLG version 1.5.7-110128-1437 or newer.

atom[] : integer or string, get/set
DLG SET "System.atom[NAME]" stores the specified integer or string value associated with NAME in the System object. This is called a global atom.

DLG GET "System.atom[NAME]" may then be used in any session to query the atom value for NAME. An empty string is returned if the atom is not set.

A global atom can be deleted by passing an empty string.

Atoms stored in the System object are accessible to all sessions running in the current JDLG process and stay in memory until the JDLG process ends. They provide a way to pass information to other sessions.

For local atoms, allowing to pass information within the current session, please refer to the Application.atom[] documentation.

Atoms may also be set using the eloquence.config.atom.NAME configuration property.

Program example:

DLG GET "System.atom[sample]",Value$
IF LEN(Value$) THEN
  PRINT "sample atom is present."
ELSE
  PRINT "sample atom is not present"
  DLG SET "System.atom[sample]","TIME="&TIME$
END IF
PRINT "value=";Value$
atoms : string, get
Returns a list of the currently stored global atom names in alphabetical order. The atom names are separated by LF (ASCII 10). An empty string is returned if no global atoms are stored.

See also atom[] above.

baseurl : string, get/set
Specifies the global base URL.

By default, this is the value of the eloquence.config.baseurl configuration property.

A session's base URL is composed by using the global base URL and appending the Application.baseurl, as shown in the example below. Any relative URL, specified in DLG files or with DLG SET, is prepended with the session's base URL.

For example:
 System.baseurl = "http://intranet/jdlg/"
 Application.baseurl = "erp/"
 Dialog.Image.url = "logo.png"

Resulting URL:
 http://intranet/jdlg/erp/logo.png

beep : integer or string, set
Issues a system beep. The argument is ignored.
class : string, get
Returns "System".
clipboard : string, get/set
Sets or queries the contents of the system clipboard.
clipboardcontextmenu : string, get/set
Specifies the global clipboard context menu configuration.

For details, please refer to the documentation of the eloquence.config.clipboardcontextmenu configuration property.

By default, this is the value of the eloquence.config.clipboardcontextmenu configuration property.

Note: Requires JDLG version 1.5.7-110518-1310 or newer.

defaultprinter : string, get
Returns the default printer used on Unix platforms to implement the Eloquence PRINTER 10 functionality.

This is the value of the eloquence.config.defaultprinter configuration property.

If undefined, the print command line option containing the $p token is omitted so that the system should use the configured default printer.

See also printcommand below.

dlgport : string, get
Returns the TCP port number JDLG is configured to listen on.

This is the value of the eloquence.config.dlg.port configuration property. The default TCP port number is 8011.

If eloquence.config.dlg.port is configured to zero, dlgport returns the TCP port number that was chosen by JDLG.

driver : string, get
Returns "JDLG".
editmode : string, get/set
Specifies the current editing mode. Possible values are:
"insert-only"
(default)
  Activates insert mode, user cannot toggle between insert and overwrite mode.
"overwrite-only"  Activates overwrite mode, user cannot toggle between insert and overwrite mode.
"insert"  Activates insert mode, user may use the INSERT key to toggle between insert and overwrite mode.
"overwrite"  Activates overwrite mode, user may use the INSERT key to toggle between insert and overwrite mode.

The initial editing mode is defined by the eloquence.config.editmode configuration property.

In overwrite mode, a blinking block cursor is displayed in EditText and ComboBox objects. When using TAB/ENTER to enter a single-line EditText or ComboBox object, the contents are not selected and the cursor is put on the leftmost position.

The editing mode is a global property. If multiple sessions are opened in JDLG, switching from insert to overwrite mode and vice-versa affects all sessions, not just the current session.

Note: Modifying the editing mode through the editmode attribute may not affect a currently focused EditText or ComboBox object.

enablemaximize : integer, get/set
Provides the global default value for the Application.enablemaximize attribute, which in turn specifies the session-specific default to enable or disable the Dialog auto-maximize function.

Nonzero: enable the auto-maximize function
Zero: disable the auto-maximize function

If not set, it defaults to the value of the eloquence.config.enablemaximize configuration property. If neither is set, the default value is nonzero (auto-maximize function enabled).

For details, please refer to the documentation of the eloquence.config.enablemaximize configuration property.

Note: Requires JDLG version 1.7.2 or newer.

enablereference : integer, get/set
Provides the global default value for the Application.enablereference attribute, which in turn specifies the session-specific default to enable or disable the Dialog reference point function.

Nonzero: enable the reference point function
Zero: disable the reference point function

If not set, it defaults to the value of the eloquence.config.enablereference configuration property. If neither is set, the default value is nonzero (reference point function enabled).

For details, please refer to the documentation of the eloquence.config.enablereference configuration property.

Note: Requires JDLG version 1.7.2 or newer.

enablescalefactor : integer, get/set
Provides the global default value for the Application.enablescalefactor attribute, which in turn specifies the session-specific default to enable or disable the Dialog auto-scale function.

Nonzero: enable the auto-scale function
Zero: disable the auto-scale function

If not set, it defaults to the value of the eloquence.config.enablescalefactor configuration property. If neither is set, the default value is nonzero (auto-scale function enabled).

For details, please refer to the documentation of the eloquence.config.enablescalefactor configuration property.

Note: Requires JDLG version 1.7.2 or newer.

enablesnap : integer, get/set
Provides the global default value for the Application.enablesnap attribute, which in turn specifies the session-specific default to enable or disable the Dialog auto-snap function.

Nonzero: enable the auto-snap function
Zero: disable the auto-snap function

If not set, it defaults to the value of the eloquence.config.enablesnap configuration property. If neither is set, the default value is zero (auto-snap function disabled).

For details, please refer to the documentation of the eloquence.config.enablesnap configuration property.

Notes:

helpbaseurl : string, get/set
Specifies the global help base URL, used with the help system.

By default, this is the value of the eloquence.config.helpbaseurl configuration property.

Please refer to the documentation of the common help attribute for details.

id : string, get
Returns "system". The id cannot be modified.
javahome : string, get
Returns the Java installation directory. This is the value of the java.home Java property.
javavendor : string, get
Returns information about the vendor of the installed Java version. This is the value of the java.vendor Java property.
javaversion : string, get
Returns information about the installed Java version. This is the value of the java.version Java property.
jdlgversion : string, get
Returns the JDLG version, for example "2.0.8".
lookandfeel : string, get
Returns the name of the active look-and-feel class, which is defined by the eloquence.config.lookandfeel configuration property.
multiscreen : integer, get
If nonzero, JDLG runs in a multi-screen environment.

Usually, the position of a Dialog or POPUP BOX is clipped to the bounds of the primary screen. In a multi-screen environment this clipping is disabled to allow a Dialog or POPUP BOX to be positioned on any screen.

notify[] : string, set
Notifies active Dialogs in other sessions which have a specific notification code.

The notification code is specified in the index.

The example below notifies active Dialogs in other sessions which have Dialog.notify[175] configured:

  DLG SET System.notify[175],Custno$

If such Dialogs are active in other sessions, they submit the configured Dialog.notify[175] rule value, along with path set to the passed Custno$.

Please refer to the "Notifying other sessions" documentation for details.

Notes:

  • The following enhancements are available since JDLG version 2.0.14:

  • If an active Dialog (a topmost and visible Dialog) is not interactive (if the program currently does not wait in DLG DO), or if a POPUP BOX is open, the Dialog was not notified before JDLG version 2.0.14, i.e., the notification was lost.

    This is solved since JDLG version 2.0.14. The Dialog remembers the notification as pending and submits it the next time DLG DO is invoked.

    However, when the Dialog becomes invisible, or when the program invokes DLG DO on a different Dialog, this pending notification is reset and will not be submitted anymore.

    This way, a program can rest assured that System.notify[] only notifies those Dialogs in other sessions which are active.

  • Alternatively, the System.notifyall[] attribute, available since JDLG version 2.0.14, may be used to send notifications to all Dialogs in other sessions, regardless of whether or not they are active (topmost and visible).

    If a Dialog is currently interactive (if the program currently waits in DLG DO), it is notified immediately.

    Otherwise, the notification is submitted the next time DLG DO is invoked on the Dialog. However, please note that this will happen even if the notification was sent a long time ago, and even if the Dialog has never been displayed before.

notifyall[] : string, set
Similar to the notify attribute above, all existing Dialogs in other sessions are notified, including currently inactive or invisible Dialogs.

If a Dialog is currently interactive, i.e., if the program currently waits in DLG DO, it is notified immediately. Otherwise, the notification is submitted the next time DLG DO is invoked. This happens even if the Dialog has never been displayed before, and even if the notification was sent a long time ago.

Please refer to the "Notifying other sessions" documentation for details.

Note: Requires JDLG version 2.0.14 or newer.

notifybusy : integer, get/set
If nonzero, a beep notification is issued on any mouse or key event that is dropped while a Dialog is not interactive, i.e., not the active Dialog or currently outside DLG DO.

By default, this is the value of the eloquence.config.notifybusy configuration property. If not configured, the default value is nonzero (notification enabled).

Note: Before JDLG version 1.5.7-110518-1310 the default value was zero (notification disabled).

osarch : string, get
Returns information about the operating system architecture. This is the value of the os.arch Java property.
osname : string, get
Returns the operating system platform name. This is the value of the os.name Java property.

For example:
 "Linux"
 "Mac OS X"
 "Windows 7"
 "Windows Vista"
 "Windows XP"

osversion : string, get
Returns information about the operating system version. This is the value of the os.version Java property.
plugin[] : integer, get
Returns nonzero if the specified JDLG plugin class is present or zero if not.

The plugin class is specified without the "plugin." namespace prefix, for example:

! X1 will be nonzero if the plugin.Datepicker class is present
DLG GET "System.plugin[datepicker]",X1

! X2 will be nonzero if the plugin.charts.Pie class is present
DLG GET "System.plugin[charts.pie]",X2
printcommand : string, get
Returns the print command used on Unix platforms to implement the Eloquence PRINTER 10 functionality.

This is the value of the eloquence.config.printcommand configuration property.

The default print command is: lp -d$p -oraw
The $p token is replaced by the printer name.

See also defaultprinter above.

printerscommand : string, get
Returns the command used on Unix platforms to obtain the list of installed printers.

This is the value of the eloquence.config.printerscommand configuration property.

The default printers command is: lpstat -a

printersfilter : string, get
Returns the regular expression used to filter the printer name from the output of the printers command.

This is the value of the eloquence.config.printersfilter configuration property.

The default printers filter expression is: ^(\\S+)

This matches the first word of each output line, i.e., each sequence of non-whitespace characters starting at the first column.

screenheight : integer, get
Returns the screen height in pixel units.

Note: In a multi-screen environment, this usually returns the height of the primary screen.

screenresolution : integer, get
Returns the screen resolution in dpi (dots per inch) units.

Note: In a multi-screen environment, this usually returns the resolution of the primary screen.

screenwidth : integer, get
Returns the screen width in pixel units.

Note: In a multi-screen environment, this usually returns the width of the primary screen.

snapadjustsize : integer, get/set
Provides the global default value for the Application.snapadjustsize attribute, which in turn specifies the session-specific default to enable or disable the Dialog auto-snap adjust size function.

Nonzero: enable the auto-snap adjust size function
Zero: disable the auto-snap adjust size function

If not set, it defaults to the value of the eloquence.config.snapadjustsize configuration property. If neither is set, the default value is zero (auto-snap adjust size function disabled).

For details, please refer to the documentation of the eloquence.config.enablesnap and eloquence.config.snapadjustsize configuration properties.

Notes:

snapmargin : string, get/set
Specifies the auto-snap screen margin.

The Dialog auto-snap function detects whether a Dialog is snapped by tracking whether at least two adjacent Dialog edges touch at least two adjacent screen/desktop edges. Depending on the desktop manager and the screen configuration, the edges might not align exactly, therefore the auto-snap screen margin allows for a tolerance.

The auto-snap screen margin starts with an initial value and is adjusted automatically when the Dialog auto-snap function detects that a Dialog is snapped.

The margin is specified as comma-separated list of the top/right/bottom/left width/height values in pixel units. If a value is nonzero, the associated margin is outside the screen.

The default initial value is: "8,8,8,8" (8 pixel top/right/bottom/left margin)

For details, please refer to the documentation of the eloquence.config.enablesnap configuration property.

Notes:

sound : string, set
Submits the URL referring to an audio clip to be played once.

Note: The Java Sound engine supports only linear PCM audio clips. Compressed audio does not work. Using one of the linear (uncompressed) wav, au or aif file formats should work.

If a relative URL is specified, the value of the Application.baseurl or baseurl attribute or eloquence.config.baseurl configuration property is prepended.

start or start[] : string, set
Allows to programmatically start an application specified by its application identifier.

Notes:

  • ERROR 660 is returned if the specified identifier does not exist in the application configuration.

  • Since JDLG version 2.0.14, the Application.start attribute may be used as an alternative. Like System.start, this starts a secondary session and, in addition, allows to pass specific information as start atoms which the new session can obtain with DLG GET Application.atom[].

  • Since JDLG version 2.0.16 an index may be specified, for example:
    DLG SET "System.start[popup]",App$
    
    This is a WEBDLG2 compatibility option, JDLG ignores the index. WEBDLG2 recognizes an optional index as window features, to specify that the application should start in a separate browser window having specific windowFeatures (1).
typeahead : integer, get/set
If nonzero, the typeahead function is enabled.

By default, this is the value of the eloquence.config.typeahead configuration property. If not configured, the default value is nonzero (typeahead function enabled).

For details, please refer to the typeahead documentation.

Note: Requires JDLG version 1.5.7-110518-1310 or newer. JDLG version 1.7.0 or newer provides an enhanced typeahead implementation.

userdir : string, get
Returns the home directory of the user who runs the JDLG process. This is the value of the user.home Java property.
username : string, get
Returns the name of the user who runs the JDLG process. This is the value of the user.name Java property.


The attributes listed below were documented for previous JDLG versions and are no longer supported or should no longer be used.

alwaysontop : integer, get/set
No longer supported.
dnsname : integer, get
Deprecated, use Application.dnsname instead.
ipaddress : integer, get
Deprecated, use Application.ipaddress instead.
version : string, get
Obsolete, no function (currently returns "Eloquence JDLG").
workingdir : string, get
Obsolete, no function (currently returns "workingdir").


JDLG version 1.7.0 or newer allows to configure the Dialog layout behavior to reproduce the Dialog window area calculation of previous JDLG versions.

For details, please refer to the layout compatibility section in the Dialog documentation.

dialog_w_overlap : integer, get/set
Provides the global default value for the Application.dialog_w_overlap attribute.

If not set, it defaults to the value of the eloquence.config.dialog.w_overlap configuration property. If neither is set, the default value is zero.

Notes:

  • Setting this to 3 should reproduce the effects of the wrong window area calculation in JDLG versions before 1.7.0.

  • Requires JDLG version 1.7.0 or newer.
dialog_h_overlap : integer, get/set
Provides the global default value for the Application.dialog_h_overlap attribute.

If not set, it defaults to the value of the eloquence.config.dialog.h_overlap configuration property. If neither is set, the default value is zero.

Notes:

  • Setting this to 3 should reproduce the effects of the wrong window area calculation in JDLG versions before 1.7.0.

  • Requires JDLG version 1.7.0 or newer.
dialog_scroll : integer, get/set
Provides the global default value for the Application.dialog_scroll attribute.

If not set, it defaults to the value of the eloquence.config.dialog.scroll configuration property. If neither is set, the default value is nonzero (Dialog scroll bars are displayed if necessary).

Notes:

  • Displaying Dialog scroll bars if necessary is new behavior introduced with JDLG version 1.7.0.

  • Requires JDLG version 1.7.0 or newer.


 
 
 
  Privacy | Webmaster | Terms of use | Impressum Revision: 2023-02-22  
  Copyright © 1995-2021 Marxmeier Software AG