SmartClient provides an open DHTML/AJAX client engine, rich user interface components, and metadata-driven client-server databinding systems, for rich GUI, zero-install web applications.
Whether you are upgrading from an earlier release, or exploring SmartClient for the first time, these notes will help you to install and use this release more quickly and effectively. Please take a few minutes to review this file.
SmartClient 5.5.1 is a maintenance release with small feature additions and documentation updates.
- added support for unlimited numbers of tabs: a compact scrolling / tab picking interface
will appear automatically if there is not enough room for all tabs
- fixed a new Firefox 2.0-only issue that affected some applications launched via
window.open()
- new top-level Concept docs on Debugging and JSF integration
- fixed an issue with Firefox truncating the value of XML elements if a single element had
more than 4096 bytes of data
- fullscreen examples in the Feature Explorer now launch within the same browser window
- fixed Safari-specific FileLoader issue with order fetching Javascript and CSS files
- fix for a bug where a databound selectItem that also had an explicitly specified valueMap
could JS error
- fixed server logs tab preventing access to other tabs if accessed when ISC server is not
installed
- added a help pane to Visual Builder application
- fixed an issue where if a ListGrid doing inline editing in a modal dialog showed a
pickList, parts of the underlying dialog would no longer be masked
- fix for the bug where checking for row edits would JS error if an edit value had been set
for a fieldName with no field definition
SmartClient 5.5 implements the following themes and features:
1. SmartClient SDK Explorer
This small SmartClient application replaces the old SDK homepage with an interactive, window-based launcher for SmartClient developer resources. To use the SDK Explorer:
- single-click on any icon to open that resource or folder
- click on links below certain icons to view example source code
- click the top-right control in the "SmartClient SDK Explorer" window header to switch between window and tree views
- right-click anywhere on the page for a quick menu to all SDK resources
- double-click on any item in the tree view to open that resource or folder
The source code for this application is located in index.html and docs/resources/, with some comments for the curious.
2. Rich look & feel
SmartClient GUI components and services have been broadly enhanced to support a range of new visual effects and customized themes, including:
- optional image-based skinning of most components
- image-based borders, allowing custom corner and edge effects on any component
- customizable drop shadow effects for any component
- robust support for embedded icons in all action components (buttons, tabs, dialogs, menus, trees, headers)
The "SmartClient" theme has been upgraded to take advantage of these new features. This skin is now applied to the SDK Explorer, Demo Application, and Hello World examples. If you are interested in creating your own rich GUI themes, start by examining load_skin.js and skin_styles.css in isomorphic/skins/SmartClient. Check with technical support for the status of undocumented skinning interfaces.
The skinning interfaces will be documented separately in an upcoming release. For more information on the relevant APIs in this release, search the SmartClient Reference for the terms "edge", "shadow", "icon", or "src".
Note: The old "SmartClient" theme has been renamed "fleet", and is still available in isomorphic/skins/.
3. Animation effects
SmartClient visual components now implement a wide range of animation effects, to increase usability and improve user experience. For live examples of many of these effects, see
SDK Explorer > Examples > Animation. The SDK Explorer itself demonstrates several window animation effects (expand, collapse, flash, and minimize).
To explore all SmartClient APIs related to animation, search for "animat" in the SmartClient Reference.
4. Background resource loading
In addition to background data operations and remote procedure calls, SmartClient provides interfaces for background loading of:
- HTML pages, portlets, tiles, and other fragments
- additional SmartClient components
- additional client-side logic
without reloading your entire application. For more information, see the
SmartClient Reference entries for:
HTMLFlow and HTMLPane components
contentsURL, setContentsURL(), and contentsType interfaces
- the
ViewLoader component
evalResult and evalVars attributes of RPCRequest
Simple usage examples are also provided in
examples/uiLoading/.
5. Client-side XML/WSDL integration
SmartClient now provides easy interfaces to consume and process XML resources directly in the web browser, including:
- XML documents
- XML schema
- XSLT transformations
- WSDL web service definitions
- web service operations
For more information, see the
SmartClient Reference entries for:
Client-Server Integration
Data Binding > Web Service Binding
Data Binding > WebService
Data Binding > Client-side Custom DataBinding
Data Binding > DataSource (group xmlBinding)
Data Binding > DataSource > OperationBinding
Data Binding > XMLTools
Simple usage examples, including client consumption of RSS feeds, are provided in examples/dataBinding/. XML loading and XSLT transformations are also provided directly under the XML tab of the SmartClient Developer Console.
Note: These capabilities are not currently available in MacOS Safari web browsers.
6. Rich form controls
SmartClient 5.5 provides a collection of enhanced form controls, including:
SectionItem - a divider control for "accordion" forms
ComboBoxItem - a dropdown control with filter-on-keypress capability
PickTreeItem - a hierarchical selection control
SpinnerItem - a numeric control with increase/decrease buttons
SliderItem - the draggable Slider component, now supported in forms
ComboBoxItem, PickTreeItem, and SpinnerItem controls are used in the SmartClient Demo App in this package.
Please refer to the SmartClient Reference for more information on these new controls.
7. DataSource operation bindings
SmartClient
DataSource objects now support custom bindings at the operation level. Each DataSource operation (Fetch, Add, Update, Remove) may be bound to a different WSDL operation, XML feed, or server object/method. For detailed documentation, see the
SmartClient Reference entries for:
Client-Server Integration
Data Binding > DataSource > OperationBinding
Data Binding > Client-side Custom DataBinding
Data Binding > XJSONDataSource
For an overview of all DataSource integration options, see the Client-Server Integration topic
8. Direct Method Invocation
SmartClient now provides a direct method invocation (DMI) path for server integration. DMI enables you to bind DataSource operations and RPCRequests directly to methods or attributes of your server objects. For detailed documentation, see
RPC > DMI in the
SmartClient Reference. This documentation also references the DMI code examples in:
examples/server_integration/generic_rpc_operations
examples/server_integration/custom_datasource_operations
Other features
In addition to the core feature areas listed above, SmartClient 5.5 provides an assortment of enhancements including:
- End user application layout with
SectionItem and SectionStack components - see examples/demo_app/demo_app_JS_dragPanes.jsp for example SectionStack usage
- Flexible back button support - see
examples/components/backButton.html for usage
- Deeper Struts integration - see
examples/struts/ for integration of SmartClient AJAX form validation with existing ActionForms
- Modular AJAX client - separate AJAX client modules for independent loading of standard capabilities (Core, Foundation, Containers, Forms, Grids, DataBinding), advanced options (Analytics, FileLoader, RealtimeMessaging) and custom feature packages
- Resource preloading & caching - using the
FileLoader service of the optional SmartClient Network Performance module
Sneak Preview: Visual SmartClient
This release also includes a "sneak preview" of the in-development
Visual SmartClient application builder. You can launch this browser-based development tool from
SDK Explorer > Tools > Visual Builder. This Visual SmartClient preview provides:
- drag & drop creation and editing of your visual component tree (layouts, forms, grids, controls, etc)
- drag & drop binding of pre-defined DataSources to visual components
- property-sheet editing of visual components, with integrated online help (hover over property names)
- real-time WYSIWYG preview of your application
- real-time generation of XML and JS application code
Note: This preview is provided for evaluation only. Licensing and support of the Visual SmartClient tools are not yet formalized.
The SmartClient SDK distribution includes an embedded application server and database engine for rapid, stand-alone development and evaluation. To get started quickly:
- Download and install the Java 2 SDK 1.4+ if necessary. (Mac OS X users note: JDK 1.4 is already installed on your system)
- Start the embedded server by running start_embedded_server.bat (Windows), .command (MacOSX), or .sh (*nix).
- Open the open_ISC_SDK_from_server shortcut (Windows/MacOS) or open a web browser and browse to http://localhost:8080/index.html (all systems).
- Create a bookmark or favorite in your web browser to the URL javascript:isc.showLog(), for easy access to the SmartClient Developer Console and integrated SmartClient Reference.
The SmartClient Quick Start Guide (PDF format) is your best starting point for an overview of the SmartClient SDK, system, and capabilities. This guide also covers common installation and configuration issues.
The SmartClient Reference is the central reference and usage documentation for SmartClient developers.
SmartClient 5.5 applications run in the following standard web browsers:
- Internet Explorer 5.5-7.0 (Windows)
- Netscape 7.2 (Windows/MacOS)
- Mozilla 1.4-1.8 (Windows/MacOS/Linux)
- Firefox 1.0-2.0 (Windows/MacOS/Linux)
- Safari 1.2-2.0 (MacOS)
Limited support is available for earlier browser versions. Please contact Isomorphic for details.
SmartClient 5.5 server-side components require a
Java Servlets 2.3 compatible server (
complete list here).
SmartClient
.zip and
.tar.gz packages include an embedded
Tomcat server for rapid stand-alone development, but SmartClient is
also tested and supported on
BEA WebLogic,
IBM WebSphere,
Oracle iAS,
Sun AS,
Caucho Resin,
Mortbay Jetty, and
JBoss servers. SmartClient
.war and
.ear packages without Tomcat are provided for deployment in existing server environments. See the
Server Installation Notes for server-specific configuration and tested versions.
The SmartClient SDK includes an embedded
HSQL database for rapid prototyping and evaluation using the SmartClient object-relational connector. This connector is also tested against
DB2,
Oracle,
SQL Server,
MySQL, and
PostgreSQL databases. See the
Server Installation Notes for database-specific configuration and tested versions.
Known Issues
Internet Explorer Caching
If the browser cache is disabled, full, or corrupted, application performance will degrade as the
client-side SmartClient engine, UI skin elements, and your application resources are repeatedly
accessed from the server. This problem may be indicated by slow loading of repeated images, e.g.
the node icons in a TreeGrid component.
This problem is most likely to occur in Internet Explorer browsers, due to bugs in the browser's
cache implementation. If you encounter this problem, please take the following steps:
- close all instances of Internet Explorer
- open your Internet Options control panel
- click the Delete Files... button (under Temporary Internet Files)
- when the wait cursor clears (this may take 10 minutes or more on some systems), click the
Delete Files... button again
- reduce your cache size to 200MB or less to avoid this Internet Explorer bug in the future
Mozilla Firefox 2.0 and accessKeys
SmartClient components and form items support an
accessKey attribute which allows
the user to focus on the widget in question via a keyboard shortcut.
As of Mozilla Firefox version 2.0, the key-combination to use is
Shift+Alt+[accessKey].
This differs from all other supported browsers (including earlier versions of Mozilla) where the
key-combination is
Alt+[accessKey].
This is a change to the Firefox web browser that will also apply to any standard HTML elements
with a specified
accessKey attribute.
Sun AS 8.1 - SQLException: The database is already in use by another process
The evaluation SDK provides an in-memory instance of the HSQLDB database to run examples and support
rapid prototyping. Sun Application Server 8.1 does not correctly handle this in-process instance of HSQLDB.
You may deploy the SDK on Sun AS 8.1 with no database, with a different database, or with a stand-alone
instance of HSQLDB.
Real-Time Messaging in Safari
The Real-Time Messaging module (server-push messaging) is not currently supported in Safari
web browsers. You can approximate this capability on Safari with client polling via
isc.Timer.setTimeout()
and
isc.RPCManager.sendRequest().
XML Processing in Safari
Client-side XML loading, binding, parsing, and transformation utilities (primarily implemented in the
XMLTools class) are not available in Safari web browsers. Current alternatives include using Firefox on MacOS, or processing XML on the server. If you require XML processing capabilities in Safari web browsers, please contact Isomorphic.
Developer Console performance impact
The SmartClient Developer Console continuously polls and inspects the running application, which impacts
client-side application performance. If you are profiling your code, or testing an application on a
slow system, you can close the Developer Console to minimize this impact.
Slider component event handling
The
Slider component was enhanced in 5.5b2 to support separate event handling paths for
valueChanged() calls during a drag interaction versus at the end of a drag interaction.
valueChanged() is now called twice (before and after mouseup) with the final value from a drag interaction. To detect whether the value has changed due to an ongoing drag interaction, call the new
slider.valueIsChanging() method inside your
valueChanged() handler. You may choose to execute temporary or partial updates while the slider thumb is dragged,
and final updates or persistence of the value in response to the other events.
Contact Us
If you have any questions, comments, or requests, please feel free to contact the SmartClient product team:
We welcome your feedback, and thank you for choosing SmartClient.
©2006 Isomorphic Software, Inc. All rights reserved. Your use of this software
is subject to the
License Agreement.
Isomorphic Software, SmartClient, and all Isomorphic-based names and logos that appear herein are
trademarks or registered trademarks of Isomorphic Software, Inc. All other product or company names
that appear herein may be claimed as trademarks or registered trademarks of their respective owners.
This product includes software developed by the Apache Software Foundation (http://www.apache.org/).
This product includes Hypersonic SQL.