Download New Text Document.txt - Notepad

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts
no text concepts found
Transcript
JavX 1.50, 1.52, 2.00
-------------------------------------------------------------------------------JavX Version 2.0
- README File May 2004
Best Software Canada Ltd.
--------------------------------------------------------------------------------
JAVA RUNTIME ENVIRONMENT
This version of JavX requires a minimum of Java 1.4.2 Runtime Environment (JRE).
Download the latest JRE at http://www.java.com .
PERFORMANCE
This version of JavX focuses on improving the performance of list text controls.
RUNNING JAVX
JavX is written in Java, and can run as a Java applet within a web browser or as
an installed application.
When running as an applet, the web browser will enforce certain security
restrictions on JavX. JavX is not able to access local files or open TCP
connections to a machine other than the server that served up the web page JavX
is embedded on. These restrictions do not apply if the applet is signed or JavX
is running as an application.
JavX Version 2 can be run directly by double-clicking the JavX.jar file.
Previous versions required a command line argument (the "args" string) to be
passed into JavX at runtime. The JavX.jar now includes a Java.properties file.
If JavX is launched as an application without a command line argument, JavX will
read the JavX.properties file and extract the arguments from it.
To edit the properties file, first open the JavX.jar file using WinZip (a jar is
a zip file), then open JavX.properties using any text editor. The layout of this
file is self explanatory. You can change "server=" to a valid server and "port="
to a valid socket number. The default values for server and port in the
JavX.properties file is "server=localhost" and "port=10000". Therefore, if you
double click this version of the JavX.jar, JavX will run and attempt to open a
connection to a ProvideX host running locally on socket 10000.
JAVA LOOKANDFEEL OPTIONS
Previous versions of JavX used the OS LookAndFeel by default. JavX Version 2
starts up running the Sun's Metal LookAndFeel by default. This change was made
because the latest JREs support many different LookAndFeel options, and Metal is
the only one that is available and consistent on ALL platforms. The standard OSspecific LookAndFeel options are still available to JavX applets and
applications (XP LookAndFeel on Windows XP, Aqua on OS X, etc.)
While developers may find other LookAndFeel options to be more attractive,
innovative, or unique, some applications written to run under Windows will not
translate well to platforms running an Aqua or Motif LookAndFeel or vice versa.
Depending on the LookAndFeel, some buttons may appear larger or smaller, and
screen layouts may look more or less cluttered. There will be no loss in
functionality, but some tinkering may be required to achieve the cosmetic
balance. With the Metal LookAndFeel, applications look the same on all
platforms.
The LookAndFeel of an application can be changed at runtime or when launched.
Set LookAndFeel=(Metal, Windows, Aqua, etc) in the Args parameter on your JavX
web page. (Refer to the JavX.pdf section Command Line Reference LookAndFeel=) If
you are using the Web Page Generator program simply select an option from the
LookAndFeel DROP_BOX. Use the 'OPTION' mnemonic to change the LookAndFeel at
runtime. For example, PRINT 'OPTION'("LookAndFeel ", "os default") changes the
LookAndFeel to Windows on an MS Windows machine, Aqua on an Apple, etc.
FACTORY DESIGN PATTERN
There have been major changes to the architecture of JavX. This version of JavX
relies heavily on the Abstract Factory Design Pattern to load resources at
runtime. Internally, we have completely decoupled the core JavX classes (e.g.,
ConnectionControl or SocketUtil) from the classes that provide the JavX GUI
and other resources. Decoupling the core JavX classes and relying more on
interfaces and loading resources at runtime offers a great deal of flexibility.
JavX's functionality can be enhanced or restricted by adding or removing classes
in the JavX.jar. For example, it is now possible to add or remove local file
access and to change the implementing UI classes.
GUI MANAGERS
APIs used by the core JavX classes are restricted to the lowest common
denominator, and GUI classes are loaded at runtime. This allows you to plug in
different GUI Managers (and increase the number of JREs that JavX can run
on). For example, on a PDA where the Java AWT library is available but the Swing
library JavX has historically used is not, JavX could run using an AWT GUI
Manager. The name of the GUI Manager JavX uses is passed in the args string, or
JavX.properties file loaded by JavX at runtime.
If you wish to run JavX in a constrained environment, remove the Swing classes,
file access classes, and images from the JavX jar, leaving the core JavX classes
and the AWT classes. The jar would then be under 100Kb, would run with a much
smaller memory footprint, and would require only a simple Java VM. With Swing
classes, file access classes, and images in the Jar, JavX is closer to 400k and
requires a Java 2 Standard Edition runtime. This architecture will also allow
for greater integration with 3rd party java packages.
JavX Version 2 will load a SwingGUIManager by default that requires a 1.4.2 JRE.
See the GUIManager section in the JavX.pdf for more information on changing the
UI library JavX will use.
LOCAL FILE ACCESS
This version of JavX includes support for local serial file access (security
restrictions may apply). Serial file access support is provided by an Abstract
Factory Design Pattern. The Java class PvxSerialFileFactory is loaded at runtime
the first time a serial file is opened. If you do not intend to use serial file
access, this class and three others (PvxBinaryFile, PvxDirectoryFile, and
PvxTextFile) can be removed from the JavX.jar.
The JavX class PvxBinaryFile provides support for serial files opened in binary
mode (with an isz > 0); e.g., OPEN(CH,ISZ=1)FILE$. The ProvideX utilities
"*tools/unix2dos.wdx" and "*tools/dos2unix.wdx" can now be utilized by JavX
programs to copy files to or from a ProvideX host.
The JavX class PvxDirectoryFile provides support for reading local directories.
The JavX class PvxTextFile provides support for reading, writing, and printing
to local text files.
See the enhancements section for a list of file access directives supported in
this version of JavX.
-------------------------------------------------------------------------------Section 1 - Resolved Issues
-------------------------------------------------------------------------------1.1 - Fixed an error parsing the format in a LIST_BOX format string. For
example, LIST_BOX 100,@(0,0,79,20),FMT="[Name]L15,[Address]L15,[City,
Province]L15". Previous versions of JavX would tokenize based on a space
character (' ') and would not correctly parse the above format.
1.2 - Resolved a scroll region error. In some instances (if the current window
had a menu bar) scroll regions were being calculated incorrectly. This sometimes
resulted in controls near scroll regions being dropped;e.g., when cycling
through tabs.
1.3 - Resolved an issue where the status bar was drawn too high on windows on
some platforms.
1.4 - Resolved an issue on Apple OS X where a double click (instead of a single
click) was required to change tabs.
1.5 - Some MSE values that were not accurate in previous releases have been
corrected.
1.6 - 'TEXT' mnemonic options 'N' or '#' now correctly align numeric data.
1.7 - 'CURSOR' mnemonic now changes the cursor of all visible components.
Previously, the 'CURSOR' mnemonic only affected the text plane.
1.8 - LOCKED multi-lines now appear grayed out.
1.9 - Formatted list boxes with titles (Column Headers) were sometimes truncated
when horizontal scrollbars were used. JavX now allows scrolling of column
headers.
1.10 - Referencing a row in a very large list box would result in an Error #65.
There is no limit on the number of rows in a LIST_BOX in this release.
1.11 - Resolved a problem changing a password in the *CLIENT login dialogue.
1.12 - Fixed a *IT issue. The main EXIT menu item was not working when running
in JavX.
1.13 - When running with Sun's JRE 1.4.1_02, JavX.jar would return an incorrect
DELETE key value. JavX was returning $00002E7F$ and now returns $00002E$ when
the DELETE key is pressed.
1.14 - In NOMADS, after defining fixed values for a DROP_BOX, the 'Values' tab
had an incorrect translation table. All the values of the translation table
appeared on one line as opposed to one value per line. This has been addressed.
1.15 - Corrected text and icon alignment issues.
1.16 - 'S' fields in formatted list boxes are now supported. Columns defined as
'S' with no length are now hidden in JavX.
1.17 - Grid border now looks more like the ProvideX grid border. The border of a
grid in previous JavX releases was an etched 3D border. This version of JavX
uses a line that more closely resembles the ProvideX grid border.
1.18 - The property list (returned by ctl'*) now appears in alphabetical order.
1.19 - DIALOGUE 'h' attribute now supported. The 'h' attribute creates a
DIALOGUE with no title bar.
1.20 - List boxes with columns headers can now be clicked on to sort the
contents of a column.
1.21 - The 'TEXT' mnemonic supports vertical text.
1.22 - List boxes now support multiple row selection.
1.23 - Hot key now works on buttons defined with a height and width of 0.
1.24 - SETTRACE no longer causes an Error #98.
1.25 - Resolved a color mnemonic issue that resulted in an Error #65.
1.26 - Setting the row height of a grid with no rows no longer causes Error #11.
1.27 - The 'BX' and 'B0' parameters are now handled correctly by JavX; e.g.,
EXECUTE "[WDX]SET_PARAM 'B0'
1.28 - SEP and TAB now are handled correctly by MSGBOX.
1.29 - On Linux and Apple OS X, windows created at coordinates 0, 0 were placed
at coordinates 0, 1. This has been resolved.
1.30 - Changed the default text plane font for Linux. The old text plane font
on Linux was dropping pixels along the bottom of each BASIC row.
1.31 - MULTI_LINE "LINES" property would cause an Error #65 when the
MULTI_LINE didn't have a border. This has been resolved.
1.32 - Fixed an issue where the current graphical font was sometimes not
correctly passed to new WINDOWS and DIALOGUES.
1.33 - Resolved an issue where JavX would incorrectly send the CTL value for a
list box that lost focus when AUTO and SIGNAL_ON_EXIT attributes were set.
-------------------------------------------------------------------------------Section 2 - New Functionality:
-------------------------------------------------------------------------------2.1 - Added support for larger mnemonics in ProvideX Version 6.
2.2 - Added support for local file access - specifically, serial local file
access. The following file access directives are supported in this release:
a)
b)
c)
d)
SERIAL creates a serial file on the local file system.
ERASE erases a local file.
OPEN opens a local file. ISZ= option opens a local file in binary mode.
OPEN PURGE opens and clears a local file.
e) OPEN LOCK opens a local serial file for writing. However, locking is
currently not supported. The LOCK indicates that the file will be opened in read
write mode, but the file will not be locked.
f) READ and READ RECORD will read a local file. The IND=, END=, ERR= and SIZ=
options are supported.
g) WRITE, WRITE RECORD, and PRINT will write to a local file. The IND=, END=,
ERR= and SIZ= options are supported.
h) CLOSE closes an opened local file.
2.3 - Added provisions for KEYED file support. This release supports access to
KEYED files through an Abstract Factory that returns a JkioFileFactory (an
implementation of AbstractPvxFileFactory). A class that implements the
AbstractPvxFileFactory will return an AbstractPvxFile. The JKioFileFactory will
create and return a PvxJKIOFile. This is the class that supports reading from a
JNI version of PVKIO. Currently, our JkioFileFactory relies on a JNI version of
PVKIO that will not be released with this version of JavX. However, if you're
familiar with Java programming, you can write a JNI wrapper for PVKIO. JavX
parses the KEY(), KEF(), KEN(), KEP(), etc directives and passes data from the
ProvideX host to any Java class implementing the AbstractPvxFile interface that
is returned by an implementation of the AbstractPvxFileFactory. See the JavX.pdf
for more details.
2.4 - New internal bitmaps. New bitmaps are available for accessing the system
icons typically used in message boxes. These bitmaps will be accessed based on
OS LookAndFeel; therefore, an Aqua Stop icon will be different from a Windows XP
Stop icon. The system icons include:
!SYS_STOP, !SYS_QUESTION, !SYS_EXCLAMATION, !SYS_INFO
The following MISCELLANEOUS internal bitmaps were added:
!AddCol, !AddRow, !Centered, !ClipBoard, !DelCol, !DelRow,!LeftJust, !Preview,
!RightJust, !SaveHTML, !edge1, !edge2,!edge3, !edgeb, !edgegrid, !edgeinner,
!edgel, !edgenone,!edgeonly, !edger, !edget, !Checked, !Unchecked, !Halfchecked,
!XinBox, !DotInBox, !EmptyBox, !CheckedBox, !HalfCheckedBox, !HalfXinBox,
!HalfDotInBox, !HalfEmptyBox, !HalfMinusBox, !HalfPlusBox, !HalfQuestBox,
!MinusBox, !PlusBox, !QuestBox
2.5 - Extended 255 Colour Support functionality to JavX. Support for 255
simultaneous colours from a palette of up to 16 million colours has been added.
For details, refer to the ProvideX Language Reference under 'Colour' & '_Colour'
and 'OPTION' mnemonics.
2.6 - The Gradient Fill feature is now supported in JavX. The 'FILL'() mnemonic
has been enhanced to provide for gradient filling of graphical objects;
Rectangles, circles, pie and polygons. For details, refer to the 'FILL'()
mnemonic in the ProvideX Language Reference.
2.7 - Drag and Drop functionality has been extended to JavX.
2.8 - Added TIM= option to the MSGBOX directive, which allows a message box to
timeout and close automatically.
2.9 - Added the dynamic property 'MenuCTL, which allows a program to set or
get the CTL value generated by a right click on an object.
2.10 - Added Drag and Drop properties ('DraggedColumn, 'DraggedRow,
'DroppedOnColumn, 'DroppedOnRow).
2.11 - Added the Right Mouse Menu Click location properties ('MenuColumn and
'MenuRow).
2.12 - Added the 'BEEP' mnemonic to JavX. This allows an application to play
sounds in a simpler manner than using the MULTI_MEDIA command; e.g., PRINT
'BEEP'("STOP"). However, the ",w" option ("STOP,w") is not currently supported
in JavX.
2.13 - Added support for Multiple Active Windows. Refer to the ProvideX Language
Reference.
2.14 - Extended popup menu functionality to JavX. Refer to the POPUP_MENU
directive in the ProvideX Language Reference.
2.15 - Added a new 'BitmapPosition property that can be set to:
1 Bitmap on Left of text
2 Bitmap on Right of text
The options 3 (bitmap above text) and 4 (bitmap below text) are not supported in
this release of JavX.
2.16 - Added Drop-List Button support.
2.17 - Extended support for Multi-Property Set/Get for Objects. For more
information, refer to the section on "Multi-Property Access" in the ProvideX
Language Reference.
2.18 - Included enhancements to MENU_BAR ON,OFF,ENABLE,DISABLE to allow for
turning ON, OFF, enabling or disabling menu items by their CTL value, rather
than by their accelerator shortcut.
2.19 - 'MODE'() will now recognize the additional colour values as index numbers
0 to 255 for each of the foreground / background colour bytes.
2.20 - CLIP_BOARD read and write. JavX must be running as an application or a
signed applet to access the CLIP_BOARD.
2.21 - MULTI_MEDIA support. JavX supports the MULTI_MEDIA directive if the Java
class MultiMediaPlayer is present in the JavX.jar and the Java Media Frame work
classes (JMF) are available to the JRE (installed on the client machine and in
the %CLASSPATH%).
2.22 - New startup parameters. These are KEY= values passed to JavX in the args
string when JavX is launched. The args string is passed as a parameter on a web
page (when JavX is running as an applet), as a command line argument (when JavX
is running as an application), or JavX reads the "JavX.properties" file located
in the JavX jar to retrieve the args string.
1
"mapfonts" - If mapfonts=true, then JavX will map physical font names to Java
logical font names. For example, the physical font name "MS Sans Serif" would
be mapped to the logical Java font name "SansSerif". The logical font
"SansSerif" is guaranteed to be available in any JRE. The Java JRE will map
the logical font name "SansSerif" to an appropriate physical font on any
platform. For example, on Windows "SansSerif" is mapped back to "MS Sans
Serif".
2
"graphicfontname" - WindX (ProvideX) retrieves the default graphical font
from the Windows OS. JavX has no way of retrieving the OS default graphical
font, so historically, JavX has used the text plane font as the default
graphical font. This font can be changed programmatically for each window
using the 'GF' mnemonic. Applications that do not use the 'GF' mnemonic, but
instead rely on an INI file or the OS default, may look slightly different in
JavX. The graphicfontname parameter allows developers to specify the default
graphical font for all windows.
3
"graphicfontsize" - Used in conjunction with "graphicfontname", allows
developers to specify a default graphical font name and size. The default
graphical font size is 13 points.
2.23 - The 'OPTION'mnemonic has been extended to support:
'OPTION'("LOOKANDFEEL",LookAndFeelName$)
- Sets the LookAndFeel for subsequent controls.
'OPTION'("MAPFONTS","true"[or "false"] )
- Sets font mapping on or off.
'OPTION'("GRAPHICFONTNAME", GraphicFontName$ )
- Sets default graphic font of subsequent windows.
'OPTION'("GRAPHICFONTSIZE", GraphicFontSize$ )
- Sets default graphic font size of subsequent windows.
2.25 - The ProvideX COM interface has been implemented in JavX to enable access
to Java classes and applications. Refer to the document "Automation in ProvideX"
for more information on the ProvideX COM interface.
Accessing Java classes through the ProvideX COM interface in JavX is very
similar to accessing COM objects in WindX. For example, to create an instance of
a Java AWT Button class, execute the following:
DEF OBJECT BTN,@(5,5,5,5),"[WDX]java.awt.Button"
The ProvideX extended object *VARIANT is supported, but the following ProvideX
Extended Objects are not currently: *VARARRAY, *MASTER, *ERROR. *VARARRAY may be
supported in a future release of JavX. Currently JavX supports arrays through a
JavX-specific extended object *ARRAY.
Java is a very tightly-typed language. Therefore, an array type is required when
creating arrays. The size of the array is also required. For example, to create
an array of ten strings:
DEF OBJECT MY_STRING_ARRAY,"[wdx]*ARRAY,java.lang.String,10"
Accessing the array is exactly the same as accessing *VARARRAYs in ProvideX. The
following would set the first element in the array to the string "First" (Note
that Java arrays are 0 based):
STRINGARRAY'VAL.PUT(0,"First")
Event support is exactly the same as COM event support in ProvideX.
JavX can now be used as a gateway to a world of valuable Java classes. For
example, all of the major databases (MySQL, Oracle, SQL Server, etc) have JDBC
drivers. The following program loads a Java JDBC Driver and read a MySQL
Database:
00010
00020
00030
00040
00050
00060
00070
00080
00090
00100
00110
00120
00130
00140
00150
00160
00170
00180
00190
00200
00210
00220
00230
00240
00250
00260
00270
00280
00290
00300
00310
00320
00330
00340
00350
00360
00370
00380
00390
00400
00410
00420
00430
00440
PRINT 'CS
MULTI_LINE 10,@(10,2,50,15
DEF OBJECT Driver,"[wdx]com.mysql.jdbc.Driver
DEF OBJECT DRIVERMANAGER,"[wdx]PvxDriverManager"
LET URL$="jdbc:mysql://10.100.29.247/test"
LET connection=DRIVERMANAGER'getConnection(URL$,user$,password$)
LET M=connection'GETMETADATA()
DEF OBJECT STRINGARRAY,"[wdx]*ARRAY,java.lang.String,1"
STRINGARRAY'VAL.PUT(0,"TABLE")
LET RESULTSET=M'GETTABLES("test",*-1,*-1,*STRINGARRAY)
!
DEF OBJECT b1,"[wdx]*VARIANT"
DEF OBJECT b2,"[wdx]*VARIANT"
LET b1'val=1
LET b2'val=1
LET b1'type$="B"
LET b2'type$="B"
!
LET curItem$="Table and Table Index list"+SEP+SEP
WHILE RESULTSET'NEXT$()="true"
! loop through tables RS
LET tableName$=RESULTSET'GETSTRING$("TABLE_NAME")
LET curItem$+="Table Name: "+tableName$+":"+SEP
LET indxInfo_ResultSet=M'GETINDEXINFO("test",*-1,tableName$,*b1,*b2)
!
LET curItem$+="Index List for "+tableName$+":"+SEP
WHILE indxInfo_ResultSet'NEXT$()="true"
! loop through the tables indxInfo RS
LET curItem$+="
"+indxInfo_ResultSet'GETSTRING$("INDEX_NAME")+SEP
WEND
LET curItem$+=SEP
indxInfo_ResultSet'close()
DROP OBJECT indxInfo_ResultSet
!
WEND
RESULTSET'close()
DROP OBJECT RESULTSET
connection'close()
DROP OBJECT connection
DROP OBJECT DRIVERMANAGER
DROP OBJECT Driver
!
MULTI_LINE WRITE 10,curItem$
OBTAIN a$
2.25 - Added the ability to retrieve the JRE's System Properties via FIN( );
e.g., fin(0,"GETJAVAPROPERTY "+SomePropertyName$) will return the value for the
property specified. To see all of the JRE property names and values, use an '*'
character; e.g., PRINT FIN(0,"GETJAVAPROPERTY *").
2.26 - Fonts can now be added to the JRE, which is helpful on platforms such as
Linux where the number of available fonts is limited. There are two ways to add
fonts to the JRE:
The first method loads fonts at runtime. The parameter "LoadExternalFonts" has
been added to the "args" string and allows specification of a comma-delimited
list of fonts for JavX to load from the JavX.jar file at runtime. For example,
java-jar JavX.jar "server=localhost;port=10000;
LoadExternalFonts=OUTLOOK.TTF,MSMINCHO.TTF".
The fonts specified must exist in the JavX.jar (use WinZip to add fonts to the
Jar).
This method allows an application to load any TrueType font into the JRE at
startup, and immediately use that font. For example, if you specify a font in
the "LoadExternalFonts" parameter and then PRINT 'FONT' (LIST *), the font will
appear in the list of fonts.
There are two problems with this method of adding fonts:
a) The fonts will always remain in the JavX.jar (which is cached) and not be
installed in the JRE fonts directory. This means the "LoadExternalFonts"
parameter must always be present in the args string (invocation string) and the
fonts must be dynamically loaded at start up every time. If you don't specify
"LoadExternalFonts" in the invocation string, JavX will not load the font, even
if it is present in the jar file.
b) Java will only load TrueType fonts at runtime. You can only specify a
TrueType font type in the "LoadExternalFonts" parameter.
The second method for adding fonts to the JRE is to copy the font files into the
JRE's "fonts" directory. Any type of font can be added to the JRE's font
directory. The font file only needs to be copied into the JRE's font directory
once. No changes need to be made to the args string or the JavX.jar. When
running as an Application or a signed applet, JavX can copy the font file
into the fonts directory.
The following ProvideX program will determine where the JRE's font directory
resides and then utilize JavX's local file access ability to copy the font into
the directory (The following example assumes the host contains a font the client
machine requires):
00010
00020
00030
00040
00050
00060
00070
00080
00090
00100
00110
00120
00130
00140
! a font not normally found in the Linux JRE
! Lucida Console is the defTextPlane font when running on windows
LET myfont$="LUCON.TTF"
LET hostSrcDir$="C:\WINDOWS\Fonts"
!
! Get the dir Java (The JRE) is installed in on Client
LET java_home$=FIN(0,"GETJAVAPROPERTY java.home")
! Get the client OS sep char
LET cSep$=FIN(0,"GETJAVAPROPERTY file.separator")
! The Java fonts are always located in JAVA_HOME+"lib/fonts"
LET client_font_dir$=java_home$+cSep$+"lib"+cSep$+"fonts"+cSep$
!
! Now copy the font to the client JRE's font directory
CALL "*tools/Unix2Dos.wdx",hostSrcDir$+myfont$,client_font_dir$+myfont$
There are also two problems with the second method of adding fonts:
a) It requires restarting JavX to utilize the newly-installed fonts.
b) JavX must be running as a signed applet or an application (i.e., must have
access to local files).
2.27 - Added the parameter "IgnoreError". When set this parameter causes the
specified error not to be sent to the host. For example, if "IgnoreError=88"
appears in the args string then no Error #88's will be returned to the host.
2.28 - Added the parameter "defTextPlaneFontName". This will set the text
plane's font. For example, (on Linux) to use a font other then the default
("Monospaced") set this parameter (e.g., defTextPlaneFontName=Courier). However,
it is important to use a fixed-pitched font (avoid proportional fonts) for
the text plane.
------------------------------------------------------------------------------JavX Version 1.52
- README File Oct 2003
Best Software Canada Ltd.
------------------------------------------------------------------------------Java Runtime Environment
This version of JavX will run in any Java 2 Java Runtime Environment
(JRE). JavX will work with any Java 1.2 or newer JRE, however, we
recommend using one of Sun's Java 1.3 JRE for optimum performance.
Applications requiring encryption must use a version 1.4. JRE, Secure
Socket Layer (SSL) support is only available in JRE 1.4. Previous
versions of JavX did not support the 1.4 JRE.
JavX Performance
This version of JavX is faster than version 1.01 and has a smaller
memory footprint. Performance results will vary depending on
applications and the JRE used.
Java LookAndFeel
Apple's OS X Aqua LookAndFeel is attractive, innovative, and very
unique. Developers may find some applications written to run under
Windows do not translate well to platforms running Aqua or Motif
LookAndFeel. Buttons may appear larger or smaller and some screen
layouts may look more or less cluttered. There will be no loss in
functionality, but some tinkering may be required to achieve the
cosmetic balance achieved in the original Windows WindX application.
Unfortunately, the Windows LookAndFeel is only available on machines
running an MS Windows OS. If you are running JavX on a platform that
uses Motif or Aqua, and you are unhappy with the "look" of your
application, set the LookAndFeel to "Metal". This can be done by
setting LookAndFeel=Metal in the Args parameter on your JavX web page.
(see JavX.pdf section Command Line Reference LookAndFeel=), or if you
are using the Web Page Generator Program simply select the "Metal"
option in the LookAndFeel DROP_BOX. The Metal LookAndFeel is very
similar to Windows and it is available on all Platforms. Always using
the Metal LookAndFeel will allow you to deploy applications written for
Windows on any platform without changes, and achieve a consistent
LookAndFeel.
----------------------------------------------------------------------Section 1 - Resolved Issues
----------------------------------------------------------------------1.1
NOMADS Menu Bar definitions would sometimes fail in JavX 1.50 this has
been resolved in this release. All NOMADS Menu Bar definitions are now
supported.
1.2
The 'drop' and 'do' mnemonics miscalculated the scroll region in JavX
1.50. This caused GUI objects that were within 4 pixels of the scroll
region to be dropped. This defect has been resolved in this release.
1.3
Corrected an error reporting issue that caused JavX to report the same
error twice.
1.4
Addressed an issue that was causing JavX not to run on some
international versions of Windows.
-------------------------------------------------------------------------------JavX Version 1.50
- README File July 2003
Best Software Canada Ltd.
-------------------------------------------------------------------------------Java Runtime Environment
This version of JavX will run in any Java 2 Java Runtime Environment
(JRE). JavX will work with any Java 1.2 or newer JRE, however, we
recommend using one of Sun's Java 1.3 JRE for optimum performance.
Applications requiring encryption must use a version 1.4. JRE, Secure
Socket Layer (SSL) support is only available in JRE 1.4. Previous
versions of JavX did not support the 1.4 JRE.
JavX Performance
This version of JavX is faster than version 1.01 and has a smaller memory
footprint. Performance results will vary depending on applications and
the JRE used.
Java LookAndFeel Options
Apple's OS X Aqua LookAndFeel is attractive, innovative, and very unique.
Developers may find some applications written to run under Windows don't
translate well to Platforms running Aqua or Motif LookAndFeels. Buttons
may appear larger or smaller and some screen layouts may look more or
less cluttered. There will be no loss in functionality, but some
tinkering may be required to achieve the cosmetic balance achieved in the
original windows WindX application.
Unfortunately, the Windows LookAndFeel is only available on machines
running a MS Windows OS. If you are running JavX on a Platform that uses
Motif or Aqua, and you are unhappy with the "look" of your application,
set the LookAndFeel to "Metal". This can be done by setting
LookAndFeel=Metal in the Args parameter on your JavX web page. (see
JavX.pdf section Command Line Reference LookAndFeel=), or if you
are using the Web Page Generator Program simply select the "Metal"
option in the LookAndFeel DROP_BOX. The Metal LookAndFeel is very similar
to Windows and it is available on all Platforms. Always using the Metal
LookAndFeel will allow you to deploy applications written for Windows on
any platform without changes, and achieve a consistent LookAndFeel.
----------------------------------------------------------------------Section 1 - Resolved Issues
----------------------------------------------------------------------1.1
WAIT now forces flush of all pending window paint requests:
The WAIT directive now works the same as it does in a pure ProvideX
Character Environment. (Requires ProvideX 5.10 executable on host)
1.2
OnFocusCTL property has been added for all GUI objects.
1.3
Resolved issue with spawning when onApplet = true:
In previous versions of JavX, spawning a second process when using
onApplet = true (to Embed JavX on the browser) drew the "child" process
screen within the applet screen area. This effectively disabled the
original application window. JavX will now put the new (Spawned) window
on the browsers applet screen area, or in a new window on top of the
browser. To spawn JavX on the browser in the applet screen area CALL:
*WINDX.UTL;SPAWN",SOCKET$,[INI_FILE$],[WINDOW_LOCATION$]
If WINDOW_LOCATION$="#embed" the new window will appear embedded on the
web browser (see JavX.pdf section 2.2 Command Line Reference
onapplet=true). Spawn sessions will appear in new windows on top of the
browser by default.
1.4
MULTI_LINE 'LEN=' option is now supported.
1.5
Corrected blue screen flicker when adding controls to child windows. In
previous versions of JavX there was a blue flash when adding controls to
a child window. This is resolved in JavX Version 1.10.
1.6
Issue with child windows below graphical objects resolved. The "c" option
for 'WINDOW' used to display a child window below all other graphical
objects that had been drawn on the screen. This is resolved in JavX
Version 1.10.
1.7
TAB / Shift-TAB now works consistently. The Shift-TAB used to return the
same CTL value as TAB when the focus was on a control.
1.8
Function keys now detectable in text controls. JavX now correctly sets
the high bit of mode$ in a MULTI_LINE READ when a function key is pressed
instead of RETURN or TAB.
1.9
RADIO_BUTTON Discrepancies:
a) Pressing RETURN while focus is on a radio button generates CTL 0 in
WindX, but did not generate a CTL in JavX. This is resolved in JavX
Version 1.10.
b) In WindX, pressing the arrow keys while focus is on a radio button
moves the focus between that radio's different buttons without
generating a CTL. In JavX, focus did not change, and the negative CTL
for an up, down, left or right arrow key was generated. This is
resolved in JavX Version 1.10.
c) RADIO_BUTTON OFF now works in JavX.
1.10
Resolved inconsistency in button handling between WindX and JavX. Buttons
created with 'OPT="S"'. Previously in JavX, when a button (with 'S'
option) was clicked, focus did not move to the button as expected.
However, in WindX, the program is permitted to set focus to the button
using the SET_FOCUS directive, which is sometimes useful. In JavX, a
SET_FOCUS to such a button had no effect. This was resolved in JavX
Version 1.10.
When the user clicks on a disabled scrollbar, WindX either returns CTL 1080 or ignores the click, depending on whether the 'ME' mnemonic is in
effect or not. JavX always returned the CTL assigned to the scrollbar.
This was resolved in JavX Version 1.10.
1.11
Access to properties for GUI objects. Print X'* property will list all
the supported properties of a GUI object in this version of JavX.
1.12
The FNT= option is now supported in multi-lines. The FNT= option was
ignored when creating multi-line objects in previous versions of JavX.
1.13
Ability to disable (turn off) a SET_FOCUS on a multi-line has been added.
1.14
Formatted list box with bitmaps problems resolved in JavX Version 1.10.
LIST_BOX WRITE and LIST_BOX READ did not work properly when the LIST_BOX
contained images.
1.15
Fonted text now wraps when the 'W' options is specified.
1.16
Object types returned in the OBJ by JavX are now accurate.
1.17
All LIST_BOX FIND issues are resolved in JavX Version 1.10.
1.18
JavX now wraps tips that exceed 50 characters. Large control tips ran
off screen in previous releases.
1.19
Formatted LIST_BOX with colours: When a colour was used for a row in a
LIST_BOX, JavX used to 'remember' the colours. JavX will now return to a
default when colour isn't specifically requested.
1.20
Formatted LIST_BOX now returns the ending SEP in this version of JavX.
1.21
The OBJ now returns correct values. In previous versions of JavX, width,
height, column, and line values were sometimes inaccurate when calling
obj(0)..
1.22
This version of JavX supports NOMADS dynamic window and control resizing
1.23
Several defects relating to the definition of Menu bars have been
resolved. All NOMADS defined menu bars now show correctly.
1.24
The 'rs' mnemonic will now call repaint immediately. This mnemonic was
supported in previous JavX releases, but the old logic set repaint to be
called the next time JavX was idle. Repaint is now called immediately.
1.25
A MULTI_LINE with a len= will now accept input when the maximum number of
characters have been entered if the text is highlighted. Previously the
text would have to be deleted first.
1.26
JavX will now produce an audible warning (ring the bell) when the user
exceeds the max len in a multi-line.
1.27
Resolved issue where frames without titles were drawn around the outside
of the column range; i.e., a 'frame' with no title starting at column 1
and spanning 80 columns wide, would appear on the right edge of the frame
outside of the 80th column if it was drawn on a window 80 columns wide.
Thus the right edge of the frame would not appear on the screen. This was
resolved in JavX Version 1.10.
1.28
Resolved Modal window issues. PVX 'windows' are semi modal; e.g., if you
create two windows, you can't move focus to another window by clicking,
but you can click on global controls on other windows and the menu bar on
the main window. Previous versions of JavX 'windows' were not modal. JavX
Version 1.10 now supports this functionality.
1.29
The 'cursor' Mnemonic is now supported.
1.30
The RETURN key now generates a ctl on MULTI_LINEs when using the password
option ($). This was resolved in JavX Version 1.10.
1.31
Fixed message Box defects:
a) The defect that caused JavX to hang when an image was specified on a
message box has been corrected.
b) The option to select the default button is currently ignored in JavX,
the default button will always be the first button on the message box.
1.32
Call "*windx.utl;get_val","who" now returns the OS user name JavX is
running under.
1.33
Call "*windx.utl;get_val","ssn" now returns the JavX version number.
1.34
Call "*windx.utl;get_num","tcp(29)" now returns the JavX version number.
1.35
Shift-Tab and Ctrl-Tab will now cycle through folders
1.36
Resloved issue where MSGBOX options had to be combined in specific order:
MSGBOX "Click yes please","INFO","?,YESNO",X$
-> worked
MSGBOX "Click yes please","INFO","YESNO,?",X$
-> Only displayed an OK
1.37
Caption read no longer results in truncated title.
1.38
Program no longer 'hangs' (when 'TU' is off) and it tries to move a
multi-line object by changing 'col' and 'line' properties.
1.39
Resolved issue where Listview was created with option 'H' (hidden) and it
still appeared.
1.40
JavX <tab> no longer jumps twice as far as a WindX <tab>.
1.41
Fonted text now wraps as it should when the text is longer than the width
of the defined area.
1.42
Dialogue windows no longer too small to display all the existing
controls at the bottom.
1.43
Drop_box write no longer causes ctl to be reported.
1.44
Solved several formatted LIST_BOX LOAD issues.
1.45
Multi_lines now display loaded accented characters.
1.46
Resolved issue where Multi_line On Focus event generated when it
shouldn't be.
1.47
Corrected checkbox cosmetics (Radio, Toggle) where in WindX, checkboxes
overwrote a frame but JavX created them transparent.
1.48
Resolved Nomads Resize error 11.
1.49
Nomads 'Properties' drop_box on the designer windows toolbar no longer
causes JavX/Nomads 'hang' .
1.50
Horizontal 'frame' now shows when height for the 'frame' is 0.
1.51
'font'(list "font") now works as expected in WindX (all sizes for the
specified font are displayed).
1.52
Space at end of internal bitmap name no longer causes error 12.
1.53
<Enter> doesn't cause button to report CTL - problem rectified.
1.54
Corrected Frame repaint issue that caused some frames not to appear.
1.55
List_box WRITEs no longer caused JavX to 'hang'.
1.56
Resolved Listbox item colour issues.
1.57
Arrow keys in multi-line now generate CTL.
1.58
Multi-line signal-on-exit no longer causes double CTL.
1.59
Error 12 no longer occurs on unknown bitmap.
1.60
Resolved issue where List_box find returned err=11 when highlighting last
item in list.
1.61
'BACKCOLOUR$ now understands 'RGB'.
1.62
Resolved unreadable list_box selection and tab problem.
1.63
Bitmap missing in listbox selection - problem rectified.
1.64
*windx.utl;spawn will now spawn JavX in AppServ mode.
1.65
Resolved font mismatch in 'text' and multi-line.
1.66
Multi-line CTL no longer generated when none is expected.
1.67
*viewer* open no longer causes GPF.
1.68
Property change doesn't resolve '&' - problem rectified.
1.69
Folder object doesn't re-appear (err65) - problem rectified.
1.70
Resolved issue with fonted text right align.
1.71
The 'frame' now uses 'FONT' font instead of GF font.
1.72
'FONT'(LIST) will now append ',' to list of sizes.
1.73
Listbox header, colour and events fixed
1.74
Requested black background colour no longer displayed as gray.
1.75
Multiline scrollbar thumb can be moved over a distance that has no
relation to text in multi_line - - now rectified.
1.76
Dropbox no longer generates multiple ctls.
1.77
Fixed Listbox sending focus ctl when on focus logic displays a
messagebox.
1.78
Listbox option resolved.
1.79
OBJ(radio_button) no longer hangs JavX.
1.79
MSE(2) now returns mouse column.
1.80
Fixed issue where horizontal scrollbar that covers the displayed data in
list_box was one row high.
1.81
Text 'wrap' no longer causes missing text.
1.82
SYSTEM_HELP "nosuchfile.hlp" no longer results in an error 11.
1.83
Listbox now returns all data when more columns are loaded in the listbox
than are visible.
1.84
Password panel will now register ctl when changed.
1.85
JavX sometimes not completely loading system imags (i.e. "!stop")
- problem rectified.
1.86
Toolbar objects now removed when created within a window that doesn't
have toolbar.
1.87
*getdir no longer causes JavX to hang.
1.88
Menu_bar clear is now implemented correctly.
1.89
<Enter> as <Tab> no longer causes wrong multi-line CTL.
1.90
Default button now implemented.
1.91
Fixed an issue where some buttons (i.e. Radio_buttons) were not correctly
reporting EOM.
1.92
Fixed font issue when no name or style was specified
(i.e., Font$ = "--14").
1.93
Tree view list_boxes with bmps in the data didn't load correctly
now loads and displays the data with default icons.
1.94
Listbox 'signal all changes' always fires when leaving an object,
problem rectified.
- JavX
----------------------------------------------------------------------Section 2 -New Functionality:
----------------------------------------------------------------------2.1
Support for the ProvideX Application Server. Refer to the JavX manual and
the ProvideX Application Server documentation for a complete list of new
functionality and details on configuring and running the Application
Server. The following new functionality is available when JavX is
deployed with the ProvideX Application Server:
a) SSL - JavX can encrypt communication with the ProvideX host.
b) Reconnect to lost host - JavX can reconnect if communication with the
Application Server is interrupted.
c) Greater Security And Control - JavX and the host can force user
logins, manage passwords, etc.
d) Get and Set Client Information - JavX can return user information such
as user name, OS name, JavX version, etc.
2.2
The ProvideX Grid has been added to JavX. However, the following
properties are not yet supported: DraggedColumn, DraggedRow,
DroppedOnColumn, DroppedOnRow, EnterMode, JoinColumns, JoinRows, Len,
LoadList, LoadIOLIST, LockRows, MenuColumn, MenuCtl, MenuRow,RowHiLight,
SelectColumn, SelectText, SelectValue, ColumnSizeLock, TabMode,
OverlapEnabled, CellHilight, LockColumns, AutoSequence, JoinColumns,
JoinRows, LoadIOList.
2.3
A new ProvideX utility available for creating HTML pages JavX. The JavX
Page Generator (Javxpagegen.pvs) is a convenient, easy-to-use program
that automates the process of embedding JavX in web pages. It uses
*web/merge to add the appropriate HTML tags and JavaScript to a provided
template web page.
2.4
Enhanced documentation. We have greatly improved the documentation
available for JavX.
2.5
Java classes can now be loaded and instantiated (run) by JavX on the
client machine. The class must be located in the classpath of the client;
i.e., call "[wdx][java] myJavaProgram" will load and run a java program
called myJavaProgram.class.
2.6
It is now possible to specify the padding around text in a multi-line. A
parameter called "ml_padding" has been added to the args string. Simply
specify the Distance (in pixels) from top, left, bottom, right in this
variable; i.e., "ml_padding=1,8,1,8" will cause the text to start 8
pixels from the left edge, and end 8 pixels from the right edge of all
multi-line(s).
2.7
JavX displays a messagebox (like *ntslave or *clienta) when JavX can't
connect to the host.
2.8
Added BrowserControl class for launching a web browser with system_help
when running as an application. Previously system_help would only launch
a browser when running as an applet. The BrowserControl class will
identify the OS and then issue the appropriate command to launch the
default web browser.