Ultra Light Client Guide and Reference


What's new in ULC for Version 5.5 and Version 5.5.1

The ULC feature of VisualAge Smalltalk Version 5.5 changed fromVersion 5.0. VisualAge Smalltalk Version 5.0 supported ULC 1.5. VisualAge Smalltalk Version 5.5 supported ULC 3.0. Here is a list of what was new:

UI Engine
  • FormModels now preload all data for their clients reducing the number of round trips required to populate the view.
  • The UI Engine now supports Swing 1.1.1 and JRE 1.2.2.
  • Most widgets now support a BlockInputTrigger action. This trigger displays the busy cursor and blocks further user input till an answer has been received from the ULC server.
  • The Table widget supports edit navigation using the keyboard.
  • The Date validator allows multiple date formats (eg: dd:MM;dd:MM:yy;dd:MM:yyyy) which allows partial inputs of dates to be correctly interpreted.
  • A new ULCTreeTable widget has been added as well as a corresponding ULCTreeTableModel.
  • A new ULCContainer widget has been added.
  • Labels now support multi line text.
  • The ULCShell now supports a destroy on close flag that causes the shell to be released from the UI when it is closed.
  • FormModels now preload all data for their clients reducing the number of round trips required to populate the view.
  • Concatenated enablers are supported allowing simple boolean logic (AND, OR, NOT, XOR) to be used directly in the UI to enable or disable a widget. Wherever a enabler was supported a concatenated enabler can be used in its place and each concatenated enabler can be linked to other concatenated enablers and multiple widgets as input sources simultaneously.
  • Mandatory input support allowing a widget to be highlighted whenever input is mandatory. The Mandatory input enabler also functions as an AND Enabler allowing for example a button to be enabled once all the source widgets have input.
  • Table and Column supports a sortRequest API.
  • The ULCIcon now supports a isCachedOnUI property and can now be cached in the UI persistently across sessions.
    Note:
    The caching support is currently not available when the UI is running as an Applet.
  • RowModel and TreeRowModel proxy have been added allowing any Form widget to access its data from a row in a TableModel or a TreeModel.
  • Menus can now be linked to a Form model allowing the menu to be displayed when the fo rm model has a specific value.This allows dynamic context menus to be supported.
  • Batching of requests to the UI is supported using the startBatchingRequests/stopBatchingRequests API.
  • Table, List and ComboBox support an ItemList API that allows multiple widgets to share the same TableModel but have different sort orders.
  • The Column allows a header renderer to be specified.
  • A HelpBrowserContext proxy has been added to provide simple F1/Help key support for all widgets.
  • TableModel and TreeModel support a preloadAttributes API that forces the specified attributes to be uploaded to the UI whenever the row is uploaded for the first time.
  • All widgets that support tooltips now support multi-line tooltips.
  • All widgets that support mnemonics now support automatic mnemonic parsing from the label string (eg: ~File indicates the mnemonic F).
  • Label supports the horizontalTextPosition attribute.
  • The ComboBox is now closed whenever a mouse click is made outside the ComboBox popup area.
  • The Shell supports a defaultButton API that specifies a Button that is triggered whenever the user hits enter within a Shell.
  • The Date validator rolls partially specified years into the the 20th century or 21st century based on a 70 year window using standard Y2K rules. (eg: 00= 2000, 98=1998)
  • The CheckBoxMenuItem and the RadioButtonMenuItem can now be linked to a ButtonGroup.
  • The Page supports a setIcon API that allows the notebook page icon to be changed dynamically. Table and List now display an empty string on receiving a null value instead of "null".
  • Table Columns now support validation at the keystroke level similar to fields as well as maintaining the last input for an editable column.
  • The StringValidator allows -1 as a string length indicating unlimited length.
  • The TreeModel supports inserting children before or after a specific node.
  • The TreeModel supports changing the icon or label of a node dynamically.
  • The ULCTransport.properties file has been moved into the ulc.jar file as well as the uiengine.jar. Customers that implement their own transports can override the default file by placing their modified version of the ULCTransport.properties file in the root of their classpath. If such a file is found it will be used in place of the default file provided with the ULC release.

ULC Smalltalk API
  • The NLS support for ULC has been enhanced to show the difference between local code page on the server and application strings (Unicode).
  • A new UlcDataModel has been added that when used in conjunction with a ULCTreeItemList can be shared among Trees, Tables and List widgets.
  • The IBM ULC VisualAge Server ULC feature is a prerequisite. (IBM ULC R1.5).
  • The ULC Smalltalk API supports the ULC Filter API as well which allows the ULC Java UI Engine based record/playback tools to be used to test ULC Smalltalk applications as well.
  • Support for ENVY/Stats has been added.
  • Pagebooks signal the optional pageChanged event.

Web Integration
The UI Engine code is no longer packaged along with the HTTP Server. The environment variable ULCUIHOME must point to the root directory of the UI Engine.


[ Top of Page | Previous Page | Next Page | Table of Contents | Index ]