Eloquence JDLG contact contact

Documentation / Eloquence JDLG / Release notes

JDLG release notes

  Document revision: 2017-11-30
Refers to JDLG version: 1.7.7


  • JDLG 1.7 was released in July 2015.
  • JDLG 1.6 was released in January 2013.
  • JDLG 1.5 was released in July 2009.

Note: New JDLG versions are first released to the beta download directory to encourage public testing of new functionality.

Changes in JDLG beta version 1.7.7 171128 1644:

  • Changed the reference point behavior if the first Dialog a program displays is centered.

    Previously, if the first Dialog a program displays is centered, the reference point was set to this Dialog's x/y position. As a consequence, following Dialogs which are not centered were displayed relative to the first Dialog's position. For example, a Dialog opened afterwards at position 0/0 was displayed at the 0/0 position of the centered first Dialog.

    However, if a program wants to use the reference point to affect the first Dialog's centered position, this did not work.

    For this reason, the behavior was changed. If the first Dialog is centered, the reference point is no longer modified, but the reference point adjusts the Dialog's x/y position. As a consequence, following Dialogs which are not centered are displayed at their x/y position. For example, a Dialog opened afterwards at position 0/0 is now displayed at the 0/0 screen position adjusted by the reference point.

    Please send your feedback to the jdlg@marxmeier.com address if this change does not work with your application. Thank you very much.

  • Using the ListBoxHeader.format attribute with values using HTML content did not work.

  • Setting the ListBoxHeader.autowidth attribute could cause an unexpected column width if HTML content is used.

Changes in JDLG beta version 1.7.7 171023 1553 (superseded):

  • Fixed setting GroupBox.vx and vy attributes did not work as expected under certain conditions.

Changes in JDLG beta version 1.7.7 171012 1221 (superseded):

  • Fixed a regression introduced with the previous JDLG beta version 1.7.7 171011 1527 where attributes of GroupBox child objects were no longer updated as expected.

Changes in JDLG beta version 1.7.7 171011 1527 (superseded):

  • New GroupBox attributes: vx and vy to get/set the scroll bar position of scrollable GroupBox objects.

  • Tree: If no background color is set, a Tree could initially display a white background which disappeared when the Tree gets focued for the first time. This was a side effect of fix #4237 in JDLG version 1.7.6.

  • ComboBox: Fixed a Java 9 compatibility issue where ComboBox objects were not displayed as expected.

Changes in JDLG beta version 1.7.7 170922 1400 (superseded):

  • Fixed a Java 9 compatibility issue.

    On Java 9, JDLG versions 1.7.5 and 1.7.6 fail to start or expose unexpected behavior. An error message like below was logged:
    class com.eloquence.services.jdlg.controls.ESystem$TypeAheadManager ... cannot access class sun.java2d.SunGraphicsEnvironment (in module java.desktop) because module java.desktop does not export sun.java2d to unnamed module ...

    If you encounter further Java 9 compatibility issues, please send your feedback to the jdlg@marxmeier.com address. Thank you very much.

  • Note: To use the JDLG drag & drop functionality with Java 9, access to the javax.swing and javax.swing.plaf.basic Java packages must be allowed.

    If you start JDLG using Java Webstart (JNLP), add the java-vm-args attribute to the <j2se ...> tag, as shown below:

    <j2se version="1.5+"
          java-vm-args="--add-opens=java.desktop/javax.swing=ALL-UNNAMED --add-opens=java.desktop/javax.swing.plaf.basic=ALL-UNNAMED" />

    If you start JDLG using a Java command line, the --add-opens options above must be specified at the beginning of your command line. As a shortcut, you could specify the --permit-illegal-access option instead, as shown below:

    java --permit-illegal-access -jar jdlgS.jar

Changes in JDLG version 1.7.6:

  • Tree: The display of entries was sometimes truncated or otherwise incorrect after font attributes were modified (#4237).

  • Tree: DLG GET content, line or open could return a wrong node expansion state if invoked after the Tree content is modified but before the next DLG DO or DLG DRAW is invoked.

  • Updated the default browser command line on Linux due to changes in recent Firefox versions (#4251).

    The command line is now: xdg-open URL

Changes in JDLG version 1.7.5 (superseded):

  • New functionality: Drag & drop

  • Fixed a problem which could cause a Dialog to stop responding for 10 seconds when holding down the TAB or ENTER key to quickly move forward the focus.

    This was caused by an internal race condition in the typeahead function.

  • Fixed a problem where under certain conditions previous Dialog contents were visible although new contents were set (#4236).

    This could happen if the Dialog is updated while invisible, and after that is made visible.

  • Fixed a problem where in some cases Dialogs were only partially displayed when JDLG is used in a Windows Remote Desktop session where the user disconnects and then reconnects the session (#4226).

    An error message like below was logged:
    Exception in thread "AWT-EventQueue-2" java.lang.NullPointerException at com.sun.java.swing.plaf.windows.WindowsTableHeaderUI$XPDefaultRenderer.paint ...

    Disconnecting and reconnecting a Windows Remote Desktop session may under certain conditions invalidate current renderer objects which JDLG wrongly continued to use.

  • ComboBox, EditText: Under certain conditions it could happen that the content was not left aligned.

  • ListBox: In some cases setting the cy attribute was ignored if the focus attribute is set afterwards.

  • ListBox: DLG GET modelorder[], vieworder[] or vline[] could return wrong results if invoked after the ListBox content is modified but before the next DLG DO or DLG DRAW is invoked.

  • ListBox, PopText: Fixed a problem where the rowdata attribute was not derived from a model (#4227).

  • ListBox, Tree: When selected ListBox or Tree entries are copied to the clipboard (Ctrl-C) any HTML tags are now trimmed so that just the plain text is copied.

  • New Tree attribute: addcy

  • Tree: Setting the sensitive attribute to zero had no effect.

    This problem was introduced with JDLG version 1.7.4.

  • Tree: The display of entries using HTML content was sometimes truncated or otherwise incorrect (#4237).

  • Tree: DLG SET useicons no longer has the side effect that all nodes in the Tree are collapsed (closed).

  • Function keys: If the focused object has the help rule (-1) and a function key is pressed, the help system was unexpectedly invoked.

  • New configuration property: eloquence.config.tray

Changes in JDLG version 1.7.4 (superseded):

  • Fixed a problem where under certain conditions after DLG SET ".async",1 JDLG could return unexpected results on synchronous calls such as DLG GET or DLG DO if one or more previous asynchonous calls such as DLG SET or DLG DEL caused an error condition (#4222).

    For example:

    DLG SET ".async",1
    DLG DEL "object.which.does.not.exist"
    A subsequent DLG DO could then unexpectedly return the status of the previous DLG DEL (ERROR 650 in this example).

  • EditText, ComboBox: If an EditText or ComboBox has the focus and the content is set but the existing content equals the new content, the content could unexpectedly lose its selection under certain conditions (#4217).

  • EditText, ComboBox: The content could be unexpectedly selected although the overwrite editing mode is active.

  • ComboBox: The content could be unexpectedly selected or the caret could be unexpectedly moved if a Dialog issues a timer rule while a ComboBox has the focus.

  • Tree: Fixed a problem where after invoking DLG SET Tree.visible,0 the Tree container could remain visible.

  • Tree: Setting the activeline attribute now scrolls the selected entry into view if necessary.

  • Tree: The line attribute now allows to modify the node/leaf state of an entry.

  • Tree: The openall attribute now allows to specify an entry to expand or collapse including all dependent entries.

Changes in JDLG version 1.7.3 (superseded):

  • Fixed an internal race condition causing the focus not being set as expected in some cases.

  • Fixed a regression where the Java system look-and-feel could not be installed.

Changes in JDLG version 1.7.2 (superseded):

Changes in JDLG version 1.7.1 (superseded):

  • EditText: Fixed a problem where the new autotab, linewrap and wrapmode attributes were not derived from a model.

  • The Java code signing certificate has been renewed.

    Previous JDLG versions were code-signed with a certificate which expired on October 22, 2015.

    The certificate validity, i.e., whether or not a certificate has expired or has been revoked by a certification authority, should be irrelevant because each JDLG version includes a trusted RFC 3161 time stamp, indicating when the particlar JDLG version was created.

    As observed, this might not work as expected under all circumstances. It appears that since the certificate has expired Java Webstart might under certain conditions refuse to execute a previous JDLG version, despite that JDLG is correctly time stamped.

    JDLG version 1.7.1 should solve any issues observed in this context. The new certificate expires on October 22, 2020.

  • Please note if you use the JDLG example plugins:

    The updated jdlg-plugin-examples-151029.zip has been released where all included JAR files are code-signed with the renewed certificate.

    Any previous versions of the JDLG example plugin JAR files might no longer work after updating to JDLG 1.7.1.

    Download directory: http://eloquence.marxmeier.com/download/jdlg/plugin/

Changes in JDLG version 1.7.0 (superseded):

  • A new layout implementation improves display performance and solves Dialog appearance problems observed with previous JDLG versions.

  • The object position and size may be specified in pixel units.

  • The Dialog scaling functionality now covers Image objects, Dialog and GroupBox background images, PushButton icons as well as the POPUP BOX as expected.

  • The EditText class provides a new auto-tab mode and supports line wrapping in various modes for multi-line EditText objects.

  • The Dialog.do Cancel Dialog functionality has been enhanced.

  • The Dialog and GroupBox left/right/top/bottom margins may be selectively enabled.

  • The Java Webstart JNLP configuration has been simplified. All URLs in JNLP files and JDLG configuration files may now be specified relative to the JNLP code base.

  • The typeahead functionality has been enhanced. The TAB/ENTER forward navigation keys are now additionally buffered so that the typeahead function now works across multiple objects.

  • The visual display quality of scaled images has been improved.

  • ListBox: DLG SET columnorder now recognizes the v character to make a column visible.

  • ListBox: The ListBox border now visually indicates whether a ListBox is focused.

  • ListBox: The first line is no longer implicitly selected if no line is selected when a ListBox gets the focus.

  • The Dialog layout behavior can be configured to reproduce the Dialog window area calculation of JDLG versions before 1.7.0.

Changes in JDLG version 1.6.7 (superseded):

  • Fixed a problem where in some cases DLG SET sensitive was not correctly propagated to child objects.

  • ListBox: Fixed a potential IllegalArgumentException when setting the ListBox.resetorder attribute.

  • ListBox: Fixed a potential ClassCastException on DLG GET rowdata if a line is inserted and rowdata is not set on this line.

  • Plugin: Introduced Plugin API version 1.2 which allows a plugin class to implement the standard mouse handling.

  • Plugin: Fixed uninitialized parent during onClone() invocation.

  • Plugin: Added the System.plugin[] attribute to query whether a plugin class is present.

Changes in JDLG version 1.6.6 (superseded):

  • Added the Dialog.dohide and doshow attributes to enhance the Dialog.do Cancel Dialog functionality.

  • Fixed potential NullPointerException when the keyboard focus is moved away from a deleted object.

Changes in JDLG version 1.6.5 (superseded):

  • CheckBox / PushButton / RadioButton: Fixed a problem where button objects were not focused when clicked if tabstop=0 is set. This also caused unexpected behavior if ruleoverride=0 is set.

  • Splitter / GroupBox: Fixed a problem where Splitter child objects were not displayed if they are located in a nested GroupBox having yauto=0.

  • Plugin: Fixed a problem where the ruleoverride attribute was not derived from a model. See also: Plugin.onRuleOverride()

Changes in JDLG version 1.6.4 (superseded):

  • ListBox: Fixed a regression where making trailing invisible columns visible could cause a session to abort with ERROR 684 due to an internal IllegalArgumentException.

Changes in JDLG version 1.6.3 (superseded):

  • Added the Image.scale attribute to reduce memory usage if an image is scaled to a smaller size.
    The default behavior for all images may be specified using the new eloquence.config.imagescale configuration property.

  • ListBox: Fixed a problem where in certain cases dynamically added columns were not displayed correctly if invisible columns were already present.

  • ComboBox: Fixed a regression where setting ComboBox.boxheight had no effect.

  • Added the Show Log Messages menu option to instantly view JDLG runtime errors and warnings, regardless whether an error log file is configured or not.

  • Java Webstart: Accept "jnlp." prefixed property names, for example "jnlp.eloquence.config.url", to overcome a JNLP behavior change introduced with Oracle(TM) Java version 7u45.

  • Oracle(TM) Java version 7u45 and newer: Fixed jdlgS.jar signature and manifest issues so that a Java Web Start security warning message is no longer displayed.

Changes in JDLG version 1.6.2 (superseded):

  • Fixed a problem where printing could fail on Windows 8 (#4120).

Changes in JDLG version 1.6.1 (superseded):

  • Added the Dialog.bgfill and GroupBox.bgfill attributes to specify the Dialog and GroupBox background image fill mode.

  • Fixed a problem introduced with JDLG version 1.6.0 where a Dialog background image was unexpectedly refreshed on each DLG DO and DLG DRAW.

Changes in JDLG version 1.6.0 (superseded):

  • Added the GroupBox.bgimage attribute which allows to specify a GroupBox background image (#4084).

  • Added the System.start attribute which allows to programmatically start a configured application.

  • Added the visible attribute in the application configuration for applications that should only be started programmatically using the System.start attribute.

  • The caching of the login credentials has been improved. If a new session is started where the login credentials are not yet cached, the credentials of another session are used if the other session has the same server and serverport configuration.
    See also: eloquence.config.sessionlogincache

  • PRINTER 10 integration:

    DLG SET Application.printername specifies the printer to be used with subsequent PRINTER 10 invocations.

    DLG SET Application.printers queries the list of installed printers.

    Windows: The 64-bit Java platform is now supported.

  • Fixed a problem where a Dialog background image did not change if the same URL was used to load a different image (#4074).

  • Fixed a problem where the PopText.cy attribute was not derived from a model (#4082). This also affected the activeitem, activeline and topitem attributes.

  • If the DLG protocol buffer size is exceeded on DLG GET, for example when obtaining the EditText or ListBox content, ERROR 685 was returned (Internal error detected by DLG driver). This has been changed to ERROR 683 (DLG driver protocol memory overflow) (#4025).

  • The tray icon display has been improved to support different image resolutions.

Changes in JDLG beta version 1.5.7-120514-1914 (superseded):

  • Fixed a problem where an image did not change if the same URL was used to load a different image (#4074).

Changes in JDLG beta version 1.5.7-110705-1228 (superseded):

  • Fixed a problem related to the GroupBox scroll position if multiple scrollable GroupBoxes are nested.

    Setting the focus to an object located in a nested scrollable GroupBox could set the scroll bars of an outer GroupBox to a wrong position.

Changes in JDLG beta version 1.5.7-110526-1229 (superseded):

  • Fixed an incompatibility with Java versions before 1.6, potentially causing a java.lang.NoSuchMethodError: java/lang/String.isEmpty()Z

Changes in JDLG beta version 1.5.7-110518-1310 (superseded):

Changes in JDLG beta version 1.5.7-110429-1914 (superseded):

  • Added the eloquence.config.keepalive configuration property.

    The eloquence.config.keepalive property specifies the keepalive interval in seconds. If nonzero, JDLG sends keepalive messages in the specified interval during a DLG DO or POPUP BOX invocation.

    This allows eloqcore to detect whether a JDLG connection is still active or was interrupted. The latter case is assumed if eloqcore does not receive any message from JDLG for five times the specified interval during a DLG DO or POPUP BOX invocation. If an interrupted JDLG connection is detected, the connection is closed and ERROR 684 is returned to the program.

    This function may also be useful to solve idle timeout problems caused by network router/firewall configuration. A network router might be configured to close a connection if it has been inactive for some time. To prevent this from affecting JDLG connections, a JDLG keepalive interval could be configured.

    For example, assumed the router idle timeout is 30 minutes, an eloquence.config.keepalive=900 configuration would cause JDLG to send a keepalive message every 15 minutes so that the router idle timeout would not expire.


    • The eloquence.config.keepalive configuration requires an eloqcore version which supports the keepalive functionality, otherwise it has no effect. For Eloquence 8.0 this requires eloqcore patch PE80-1104280 or newer. For Eloquence 8.10 this requires eloqcore patch PE81-1104280 or newer.

    • Instead of configuring the eloquence.config.keepalive property, a program may invoke DLG SET ".keepalive",Seconds to specify the keepalive interval, for example: DLG SET ".keepalive",900

Changes in JDLG beta version 1.5.7-110128-1437 (superseded):

  • Added the System.activate attribute.

    If multiple sessions are active, DLG SET System.activate brings the Dialog of a concurrent session into foreground where the Dialog title matches the specified string argument, similar to clicking an entry in the WindowMenu.

  • On the Linux platform, the space used by the Desktop task bar or the Desktop menu bar may not be properly accounted for. This is caused by a Java Swing limitation, where the necessary information is not available. This should have little consequences besides that JDLG cannot ensure that a Dialog window is not obscured by Desktop elements.

  • On platforms where JDLG runs on top of an X11 window manager, such as Linux, the content of the X11 clipboard may change when the content of an EditText or ComboBox object is selected. This is Java behavior which cannot be affected by JDLG.

  Privacy | Webmaster | Terms of use | Impressum Revision:  2017-11-30  
  Copyright © 2002-2017 Marxmeier Software AG