|
Document revision: 2024-05-27
Refers to JDLG version: 2.0.18
Contents
System object
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:
- 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.
Obsolete System attributes
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").
Dialog layout backward compatibility
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.
|
|