Eloquence B.07.10 Release Notes - JDLG
Enhancements and Fixed Problems
Enhancements and Fixed Problems
This document lists recent enhancements and fixed problems in JDLG 1.3.
Contents:
2006-06-21: JDLG 1.3.0.0 060621 1017
- JDLG ignores any numeric color values used with the .fgc and .bgc
attributes. However, the implementation was slightly changed so that
the values are now stored internally so that DLG GET returns the values
previously set.
2006-06-09: JDLG 1.3.0.0 060609 1359
- The toplevel .first and .next attributes (for eample: DLG GET ".first",A$)
caused JDLG to hang if there was no dialog present.
2006-03-16: JDLG 1.3.0.0 060316 1220
- The PopText delln attribute did not work as expected (#3035).
2006-03-15: JDLG 1.3.0.0 060315 1324
- The System.beep attribute was added (#3037). DLG SET "System.beep",0
issues a system-defined beep. The provided value (0 in this example)
currently does not have any meaning. We recommend to use 0 to reserve
any nonzero value for future enhancements.
- The System.sound attribute was added. It expects an URL argument
referring to a sound file to be played. This allows to customize
an application's acoustical user notification.
The supported sound file formats are: AIFF, ALAW, MIDI (type 1 and 2),
ULAW and WAV.
For example:
DLG SET "System.sound","http://mattsbits.com/2001humanerror.wav"
2006-02-27: JDLG 1.3.0.0 060227 1339
2006-02-10: JDLG 1.3.0.0 060210 1043
- DLG DEL did not always delete all objects contained in a dialog (#2876).
These objects were no longer visible but could still be accessed with
DLG GET and DLG SET. Also, if a dialog with the same name was afterwards
created, these objects either showed up unexpectedly or their attributes
were merged with objects of the same id.
- Setting the sensitive attribute of a container object affected all
child objects so that their sensitive status could change (#2879, #2970).
In addition, setting a TabBox insensitive caused the first tab to
become selected.
- In a TabBox, if a tab was set insensitive it could still be selected
with the associated accelerator key (#2992).
- Setting the ListBox vactiveline attribute did not always work as
expected.
- Setting the ListBox hlines and vlines attributes did not always work
as expected.
- Setting the ListBoxHeader title attribute did not always work as
expected.
- The HtmlView.visible attribute had no effect (#2699).
- The ListBox.spacing attribute unfortunately has side effects that
cannot be solved at the moment ((a) it affects the width of the
ListBoxHeader, (b) it causes a gap in the highlighting of the
active line). As this affects the visual appearance of the ListBox
we advise against using the ListBox.spacing attribute. It is still
functional but now considered undocumented and unsupported (#2983).
2006-01-18: JDLG 1.3.0.0 060120 1502
New functionality:
Fixed problems:
- Although setting the StaticText textpos attribute worked it issued
a 667 error code in Eloquence.
- ListBoxHeader objects did not honor the fontface, fontsize and
fontstyle attributes.
2006-01-18: JDLG 1.3.0.0 060118 1811
- The Dialog logoicon attribute did not work anymore. This problem was
introduced with the previous JDLG 1.3.0.0 060117 1309 release.
- The StaticText textpos attribute did not work anymore. This problem was
introduced with the previous JDLG 1.3.0.0 060117 1309 release.
- The ListBox bgcolor and fgcolor are now correctly reset if set to an
empty string.
- After DLG SET ListBox.clear the sortable state of a ListBox column
was reset. This affected the sortsequence attribute (and consequently
the status attribute as well).
2006-01-17: JDLG 1.3.0.0 060117 1530
- The width and height attributes did not work anymore. This problem was
introduced with the previous JDLG 1.3.0.0 060117 1309 release.
2006-01-17: JDLG 1.3.0.0 060117 1309
New functionality:
Fixed problems:
- ListBoxHeader objects did not honor the fgcolor and bgcolor attributes.
- The ListBox columnorder and sortsequence attributes (and consequently the
status attribute as well) did not always work as expected (#2971).
2006-01-06: JDLG 1.3.0.0 060106 1654
New functionality:
Fixed problems:
- If empty columns were specified when setting ListBox add, ins and line
the first empty column was removed if a superfluous column separator
was present at the end of the DLG SET argument.
2005-12-30: JDLG 1.3.0.0 051230 1737
New functionality:
- The new ListBox.rowheight
attribute allows to specify the minimum row height. This is useful
in combination with HTML content.
- The new ListBox.spacing
attribute allows to specify an additional horizontal cell spacing
in pixel units.
Fixed problems:
- Setting the ListBox.status attribute for a nonmatching number of
columns could cause JDLG to hang due to an internal
ArrayIndexOutOfBoundsException.
2005-12-23: JDLG 1.3.0.0 051223 1057
- If the selected line in a ListBox was modified the selection
(highlighting) disappeared.
- DLG GET ListBox.columns now returns 0 if a ListBox does not contain
any ListBoxHeader objects.
- Setting both the ListBox columnorder and sortsequence attributes did
not work as expected because the sortsequence was implicitly reset
when the columnorder was set.
- DLG SET ListBox.sortsequence no longer resets the horizontal scroll
position when the sort sequence of a column is changed which is currently
scrolled outside the ListBox view.
- Setting the ListBox.sortsequence attribute in a DLG file now works as
expected. Please note that in a ListBox definition the sortsequence
attribute must be defined after the definition of the
ListBoxHeader objects.
2005-12-16: JDLG 1.3.0.0 051216 1409
- Setting the ComboBox.content attribute had no effect (#2880).
- Setting the columnorder immediately after loading the dialog (i.e.,
before any DLG DRAW or DLG DO was executed) did not work as expected.
If the ! character was used to hide a column the referred column was
not always hidden.
- The ListBoxHeader.autowidth calculation still did not always calculate
a sufficient width. The resulting width could be too narrow.
2005-12-13: JDLG 1.3.0.0 051213 1145
New functionality:
- The new System.clipboard attribute allows to exchange string values
with the system clipboard. This enables a program using JDLG to
copy/paste string data to/from other applications.
Fixed problems:
- The ListBox.fontface attribute was not inherited from a ListBox
model.
- The ListBoxHeader.autowidth attribute had no effect if defined in
a dialog file. The documentation
has been updated to describe the autowidth functionality in detail.
2005-12-12: JDLG 1.3.0.0 051212 1740
- Specifying a ListBox font (.fontface, .fontsize, .fontstyle attributes)
did not result in the expected behavior: The font was not displayed,
deriving a font from a model did not work and all ListBox objects
shared the same font.
- Using the ListBoxHeader.resizable attribute could cause JDLG to hang
due to an internal ArrayIndexOutOfBoundsException.
- Depending on the font size being used, the ListBoxHeader.autowidth
attribute did not correctly calculate the column width. The resulting
width could be too narrow.
2005-12-09: JDLG 1.3.0.0 051209 1912
New functionality:
- The ListBox implementation is now feature complete.
Please refer to the separate ListBox
documentation for a complete attribute reference including
examples.
Any feedback on this new ListBox implementation is highly appreciated.
Please mail your suggestions or problem reports to
support@marxmeier.com.
- The new RDLG protocol has been implemented which enables JDLG to be
used in a NAT (network address translation) environment.
To activate the RDLG protocol, a session's protocol parameter is
set to "rdlg" in the session configuration file:
SESSIONNAME.protocol = rdlg
The previous implementation of the DLG protocol requires that a
remote eloqcore process can connect the JDLG, with either the
DLG SET ".driver" statement or the -dlg command line option.
If the PC running JDLG connects from a network behind a NAT
router this does not work because from the perspective of the
eloqsd process the PC is invisible.
The new RDLG protocol passes the existing eloqsd connection to
the eloqcore process which in turn uses it for the DLG protocol.
Please note: This requires Eloquence B.07.10 on the remote server
side. The Eloquence B.07.10 eloqsd and eloqcore binaries support
the new RDLG protocol.
Fixed problems:
- The Application.ipaddress, Application.dnsname, System.ipaddress and
System.dnsname attributes returned the remote addres and host name
instead of the local address and host name.
- Creating a dialog named System or Application caused JDLG to hang (#2683).
2005-11-16: JDLG 1.3.0.0 051116 1634
-
The ListBox.line, PopText.line, PopText.text and EditText.line attributes
did not work when used without an index, i.e. to get/set the current line
(#2909). This problem was introduced in the last release (051115 1704).
-
DLG SET ListBoxHeader.title did not immediately update the column header
(#2272).
-
The new Application.ipaddress and Application.dnsname attributes return the
local ip address and host name used in the session's DLG network connection.
The System.ipaddress and System.dnsname attributes are now deprecated and
should no longer be used. For backwards compatibility, they return the local
ip address and host name used in the DLG network connection of the most
recent session (i.e., the session which was most recently started).
2005-11-15: JDLG 1.3.0.0 051115 1704
-
For backwards compatibility reasons, DLG SET ListBox.activeline,0 does
no longer affect ListBox.cy (#2883).
2005-11-11: JDLG 1.3.0.0 051111 1200
-
DLG SET TabBox.selectedtab could cause JDLG to abort with a
NullPointerException (#2871).
2005-11-10: JDLG 1.3.0.0 051110 1524
-
DLG SET ListBox.line incremented the .cy position (#2865).
-
DLG SET TabBox.selectedtab did not work if an object in a tab different
from the tab which was selected had the focus (#2871).
2005-07-15: JDLG 1.3.0.0 050715 1404
-
When using nested TabBoxes, a wrong rule could be triggered. This was
caused by Java Swing which intermediately set the focus to the first
control outside the topmost TabBox. JDLG noticed this focus gain and
triggered the control's rule the next time DLG DO was invoked which
likely led to wrong application behavior.
-
The ListBox attributes .add, .delln, .ins, .line and .topitem did not
behave correctly when the content was sorted.
-
DLG GET did not work with ListBoxHeader attributes.
-
If multiple applications are active, an internal race condition could
cause two or more dialogs to struggle for the topmost display position.
-
JDLG could abort with a NullPointerException when an undefined object
was addressed with DLG GET (#2768).
-
JDLG could abort with a NullPointerException when a wrong data type was
used with DLG SET (e.g.: DLG SET "EditText.content",0) (#2720)
-
The eloquence.config.errorlog configuration has been introduced to log
any Java exceptions and runtime errors into a file. Previously, JDLG had
to run in a terminal/console, otherwise the Java standard error output
was not output.
-
In a session configuration file, if the session name contained HTML code
this code became visible in the progess indicator when the session was
started.
-
In a session configuration file, the $host macro is now replaced with the
local address of the established eloqsd connection. This avoids that on
systems with multiple network interfaces the IP address of the wrong
interface is choosen (#2764).
2005-05-23: JDLG 1.3.0.0 050523 1030
New functionality:
-
The EditText and ComboBox objects now support Undo with the standardized
keyboard shortcuts (Ctrl+Z or Meta+Z).
-
The EditText and ComboBox objects now have a configurable clipboard
context menu which is activated with the right mouse button. It offers
the common edit functions Undo, Cut, Copy, Paste, Delete and Select All.
The menu text can be configured in the JDLG configuration file with:
eloquence.config.clipboardcontextmenu = value
Possible values are:
-
List of menu items, separated with the pipe character '|'.
The accelerator character of each item is prefixed as usual with
the '&' ampersand character.
Exactly six items should be provided in the following order:
&Undo|Cu&t|&Copy|&Paste|&Delete|Select &All
For example, the following configures a German clipboard context
menu (must be put in a single line):
eloquence.config.clipboardcontextmenu =
Rü&ckgängig|&Ausschneiden|&Kopieren|Ein&fügen|&Löschen|Alles &markieren
-
off
Disables the clipboard context menu:
eloquence.config.clipboardcontextmenu = off
If eloquence.config.clipboardcontextmenu is not specified, the default
value '&Undo|Cu&t|&Copy|&Paste|&Delete|Select &All' is used.
-
In the session start menu, a session's start process is now visualized
with an indeterminate progress indicator. This indicator remains active
either until the first DLG DO or DLG DRAW is executed or until an error
is encountered.
If the started application silently aborts (i.e. never connects to JDLG)
the start progress indicator times out after 30 seconds.
-
A session can be given the autostart status so that it will be started
automatically when JDLG is started:
SESSIONNAME.autostart = yes (or true or on or 1)
If multiple sessions have the .autostart attribute set they will all
be started simultaneously when JDLG is started.
-
JDLG can now be configured so that it automatically terminates when
the last session has ended:
eloquence.config.exitonlastsession = yes (or true or on or 1)
This is especially useful in combination with the session autostart
feature. In addition, the JDLG window can be set to iconified state
so that JDLG will stay 'in background':
eloquence.config.syswin = iconified
-
The caching of the session login credentials can now be disabled:
eloquence.config.sessionlogincache = off (or false or no or 0)
If this is set, JDLG does not cache the login credentials so that
each time a session is started, the user must login again.
-
The new .path attribute can be used to resolve the absolute path of
an object. This is especially useful in combination with wildcard
path specifications, for example:
DLG GET "test.*.whereisit.path",Buf$
would return:
test.tb.tab1.whereisit
Please note that in combination with a wildcard path, DLG GET
only addresses the first object it finds, even if the wildcard
specification would match multiple objects in a dialog.
Fixed problems:
-
All known focus problems have been fixed, especially with TabBox and
ComboBox objects. The focus was not always set correctly. DLG DRAW could
have the side effect that it affected the focus.
-
All previous JDLG 1.2 ListBox attributes are now functional in the new
JDLG 1.3 ListBox. In particular, the .content, .delln, .ins, .length
and .topitem attributes now work as expected.
-
The Listbox width is now correctly calculated. Previously, the vertical
scroll bar was not always taken into account so that a horizontal scroll
bar was sometimes displayed after a Listbox was filled for the first
time.
-
On a multicolumn Listbox, the titles order could be wrong after a column
was moved.
-
Java version 1.5 and above is now correctly recognized. However,
please note that JDLG has not entirely been tested against Java
version 1.5.
-
EditText and ComboBox rules were not always triggered when accelerator
keys were used. The ComboBox keyboard navigation and rule handling did
not always work as expected (#2618).
-
When the up/down keys were used to select a PopText entry, each key
stroke triggered the PopText rule (#2507). The current version fixes
this problem if JDLG is run under Java 1.4 or newer.
-
With .resizepolicy = scale, a rounding error could occur which could
cause a wrong font size to be calculated (#2273).
2004-08-30: JDLG 1.3.0.0 040830 1211
-
JDLG could abort with an ArrayIndexOutOfBoundsException when certain
Unicode punctation characters were input (#2020). This was already fixed
in version 1.2.0.9 but had to be re-integrated into the current version.
2004-08-24: JDLG 1.3.0.0 040824 1612
-
On a multicolumn ListBox, DLG GET ".line[n]" did only return the first
column. This was a side effect introduced with JDLG 1.3.0.0 040823 1708.
-
DLG DRAW caused the addressed dialog to come into foreground. If another
dialog was executing DLG DO at the same time it lost its keyboard focus
(#2444).
2004-08-23: JDLG 1.3.0.0 040823 1708
-
DLG SET ".add" on a ListBox did not add multiple lines at once when
newline-separated text was passed. This worked correctly in JDLG 1.2 and
has now been fixed in JDLG 1.3 for ListBox, PopText and ComboBox objects
(#2440).
-
For DLGSRV compatibility, the PopText .text attribute has been introduced
which is an alias for the .line attribute and behaves identically (#2438).
-
DLG GET ".line[n]" on a PopText did not indicate whether a line exists or
not. This has been fixed. Error 660 (invalid value) is now returned
whenever a nonexisting line is addressed (#2436).
-
CheckBoxes and RadioButtons did not always display the complete text if
their width was automatically calculated based on the text width (#1516,
#2153).
-
The .ruleoverride = 0 attribute did not always work as expected due to a
race condition (#2435).
2004-08-16: JDLG 1.3.0.0 040816 1533
-
If the width of a StaticText, PushButton, CheckBox or RadioButton is 0,
DLG SET ".text" sets it to the width of the text. The new width is now
based on the underlying font, ensuring that the entire text is visible.
Previously, the new width was calculated based on the character raster
which caused the text to be clipped if a font was used which was wider
than the raster width. Also, the CheckBoxes and RadioButtons were often
wider than necessary (#1516, #2153).
-
The .line[n] ComboBox attribute has been introduced. It allows to set or
change a particular combobox line. Previously, only the .add attribute was
available to append new lines (#1690).
-
The .editable ComboBox attribute has been introduced.
-
If the wildcard '*' was used in DLG SET as last path component to set the
content (as in DLG SET "MainDialog.*.content",""), StaticText objects were
affected as well (#2389).
-
DLG SET ".activeline",1 on an empty PopText caused the session to become
unresponsive due to an OutOfBoundsException (#2408).
-
If DLG SET ".async",1 was used during DLG LOAD, JDLG could silently abort
due to an incomplete network receive (#2413).
-
DLG GET ".content" on a ComboBox could return an empty string unless the
ENTER key was pressed in the combobox edittext (#2417).
© 2005-2006 Marxmeier Software AG - 2006-06-21