The Isomorphic development team is proud to announce the immediate release of Smart GWT 4.0 / SmartClient 9.0. This release includes exciting new enhancements to charts, carefully selected refinements to the user interface, and powerful new features behind the scenes designed to take your web application development to the next level.
The list below only includes the major new features, so please see the changelog.html file in the SDK for a complete rundown of the latest features, bug fixes, and enhancements.
Be the first to try out our newest features.Â DownloadÂ Smart GWT 4.0 / SmartClient 9.0 today!
Charts can now display huge datasets and allow the user to zoom into any portion of the data using an intuitive double-ended slider to define the visible range. (Zoomable Chart examples: SmartClient; Smart GWT)
Scatter charts can calculate and display either lines or curves that best fit the dataset, and all charts can now visually show the average value and standard deviation (a measure of how far data points are from the average). (Regression examples: SmartClient; Smart GWT. Mean & Deviation examples: SmartClient; Smart GWT)
We’ve implemented the “holy grail” ofÂ Continuous Integration (CI): every time a developer makes a change, a massive test suite is run. And, if there are any regressions relative to the last run, then email notifications are sent so the problem can be immediately addressed.
Some grids show a small subset of hundreds of available fields, making it awkward to select and arrange fields from a menu. To address this we’ve added aÂ dual-grid interface allows you to define the visible fields and their order via intuitive drag and drop. (Advanced Field PickerÂ examples: SmartClient; SmartGWT.)
The TimeItem now supports a mode where users can pick from drop-down lists instead of directly typing in times. Â And, for “datetime” fields (fields that combine both a date and time value), the DateChooser has been enhanced to allow picking of both the date and time.Â (TimeItem and DateItem examples: SmartClient; Smart GWT)
AutoChildren are automatically generated subcomponents, like the header that a Window automatically creates. New APIs for Smart GWT enable accessing and configuring these subcomponents purely from Java, which can be useful for advanced skinning and sub-classing scenarios.
You can now take anyÂ FacetChartÂ orÂ DrawPaneÂ and obtain an image in various formats, either in the browser or on the server side. Â This has a variety of applications, such as including images of charts or diagrams in programmatically generated emails, reports, or static web content.Â (Chart Image Export examples: SmartClient; SmartGWT)
TabSetÂ now supports drag-reordering of tabs – just setÂ TabSet.canReorderTabsÂ to enable it. Â This also includes a new APIÂ TabSet.reorderTab()Â which simplifies the process or rearranging tabs (previously anÂ addTab(),Â removeTab()Â cycle was required).
It is now possible to load screens from Component XML without using any global widget IDs, yet still have programmatic access to all the widgets defined in Component XML (through a newÂ getByLocalIdÂ API). Â This avoids the need to have any kind of coordination of ID usage across screens, simplifying management of Component XML. It also allows the same screen to be created multiple times in the same application, so you can createÂ reusableÂ component XML screen definitions for recurring application layouts.
A frequently requested small feature: allow aÂ ComboBoxItemÂ to enforce a minimum length for the search string before a server query is actually attempted, with a configurable message that is displayed when the search string is too short.
Previously announced as a feature that would probably land somewhere in the 4.x / 9.x series, WebDriver support is in fact present in 4.0 and 9.0.Â Take a look at the Automated Testing Overview for details of the new support and how to use it.
You can now optionally apply formatters to editable text fields when they do not have keyboard focus. Â This is particularly useful for a ComboBox that shows related records, because it allows you to reveal additional data from other fields in the selected record. Â Clicking on the search field changes the text back to the search string so the user can do a new search.
SimpleTypesÂ are powerful features that allow you to define reusable atomic types, including; validation rules, formatters, custom editors and other behaviors that can be reused across all components. Â The server framework now supports server-side declarations of SimpleTypes in .type.xml files. Like validators declared on aÂ DataSourceField, validators declared in server-side SimpleTypes are enforced by the server framework.
We’ve created an automated process that verifies that all messages in the system can now be translated via the user-contributed locale files maintained atÂ GetLocalization.com.Â This script picked up some 60 new strings that are part of 4.0 features, or that previously would have required manual coding to set.
Here are a few small-ish features that we didn’t announce before, so we’ll take the time to announce them now:
FormItem Read-only Appearance
There are a few different possible ways you might display aÂ “read-only” form item – as just a value, as a disabled version of theÂ control, or, for some types of FormItems, as a mostly-functionalÂ interface that just rejects changes.
You can now explicitly configure which of these you want (viaÂ FormItem.readOnlyDisplay), and for complex customÂ controls based on CanvasItem, you get a clean notification that willÂ allow you to switch in and out of read-only mode.
RESTHandler Supports File Download
The RESTHandler servlet allows third-party applications to access yourÂ server-side DataSources via a simple REST protocol, so that anyÂ DataSource you declare is automatically accessible from custom mobileÂ applications, native desktop applications, web applications created inÂ a different technology, or even automated systems.
RESTHandler has existed for several releases, but it now supports theÂ ability to download files from binary fields in DataSources, either asÂ Base64-encoded data inside a normal REST response, or as an actualÂ binary download.
Automatic Hovers for Clipped Titles and Data Values
Advanced layouts frequently require labels or data values to beÂ clipped off, but when this occurs, allowing the user to hover to seeÂ the complete value is important. Â Previously, it was necessary toÂ enable hovers pervasively (even for values that are not clipped),Â which can be annoying.
Now, the default behavior is to show a hover for any titles or valuesÂ that are clipped – and this has been applied across grids, forms, tabsÂ and various other controls.
Performance – Lighter DOM, Less Images
Smart GWTÂ 4.0 / SmartClient 9.0 continue the trend of simplifying the DOM and reducing use of images.
- After some heroic workarounds for visual glitches caused by IEÂ bugs, IE9 and IE10 now use the new, lightweight CSS3 modeÂ by default.
- CSS “spriting” has been applied so that, for many different iconsÂ used in the framework, all visual states are downloaded as a singleÂ image file.
- ListGrid headers now use a simplified rendering in most skins thatÂ allows for a much larger number of columns before any slowness isÂ detectable.
- Most components in most modes now use a single <DIV> as theirÂ outermost element instead of requiring two <DIV> tags (for auto-sizingÂ reasons).
- Several more images have been replaced by pure CSS equivalentsÂ (particularly in the scrollbar).
Locale-Sensitive Currency and Number Formatting
You can now use special DataSource FieldTypesÂ “localeInt”, “localeFloat” and “localeCurrency” to getÂ locale-sensitive number and currency formatting. Previously thisÂ required defining your own SimpleTypes and formatting logic.
Double-Ended Slider Widget
The double-ended Slider component used in the mini-chart area of ZoomÂ Charts is also available for direct use as the RangeSliderÂ component.
A Note for customers with Smart GWT 3.x / SmartClient 8.x Licenses:
Smart GWT 4.x / SmartClient 9.x is a paid upgrade for Smart GWT 3.x / SmartClient 8.x license holders. If you upgraded or purchased licensesÂ on or after November 21, 2012Â then you already have a Smart GWT 4.x / SmartClient 9.x license. Otherwise, pleaseÂ contact usÂ for upgrade pricing.Â Upgrade prices are based upon the date of your previous purchase. Get access to the entire Smart GWT 4.x / SmartClient 9.x series by upgrading now!
You can get more details about the new features in Smart GWT 4.0 / SmartClient 9.0 in our previousÂ Feature RoadmapÂ andÂ Final BetaÂ announcements.Â As always, please send us any bug reports or feedback inÂ the Forums. Â Please be clear about what product and version youâ€™re using when reporting issues.
- To order an upgrade from a previous version and for more options, please contactÂ sales.
- For more information about how our licenses work, please see theÂ Product & Licensing FAQ.
DownloadÂ Smart GWT 4.0 orÂ SmartClient 9.0 to get started using our new features today!
The Isomorphic Team