Smart GWT 4.1 / SmartClient 9.1 Released

The Isomorphic team is happy to announce the immediate availability of Smart GWT 4.1 / SmartClient 9.1.

This release includes a huge number of new, useful features that have been carefully selected to supercharge your productivity and refine the user interface. For more information about the new features listed below, please see our last three blog posts; New Smart GWT 4.1 / SmartClient 9.1 Features (Part 1 of 3), More Features for Smart GWT 4.1 / SmartClient 9.1 (Part 2 of 3), and Final Features for Smart GWT 3.1 / SmartClient 9.1 (Part 3 of 3).

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.

Don’t delay, Download Smart GWT 4.1 / SmartClient 9.1 today!

Feature List

  • DataSource FormatStrings with Export Support: Declare the visual format for dates and numbers via DataSourceField.format, using “format strings” like Java’s SimpleDateFormat and DecimalFormat. In Pro Edition and above, these same formats are applied for spreadsheet exports (XLS and OOXML).
  • includeFrom with Aggregation: In Power Edition and above, declare that a field is calculated from values in a related DataSource with a single property, includeSummaryFunction.
  • New Data Paging Mode for Trees: Trees have always supported a load-on-demand mode that loads the children of each folder only when the folder is opened. However, some trees have so many children under a single folder that it’s necessary to load those children incrementally, like a ListGrid does.
  • RPC Timings Tool: The Developer Console’s RPC tab now shows a detailed breakdown of where time is spent for DataSource requests, including both client- and server-side contributions. This makes it easy to isolate performance problems to your database, your own custom logic, or to contributions from framework features that have a performance cost.
  • FacetChart API Enhancements: New FacetChart enhancements enable expanded use of our charting engine not just as a fixed rendering of a dataset, but as a foundation for custom data navigation and data visualization features.
  • DataSource Auditing: In Enterprise Edition and above, DataSource Auditing automatically tracks all changes made to a DataSource by saving an audit trail to a second DataSource – so you can just connect it to a grid to instantly get search, sort, filter, grouping and other features for your audit trail.
    DataSource Auditing
  • PortalLayout Enhancements: PortalLayout now has more intelligent behaviors for resizing portlets, designed to eliminate any unused space in the portal layout. Initiating a resize on any portlet will resize adjacent, identically sized portlets in a way that feels natural and avoids gaps. Minimized portlets will free space for use by other portlets.
    Portlet Before

    Portlet example before drag and drop

    Portlet After

    Portlet example after drag and drop

  • Cross Window Drags: Some enterprise applications use multiple browser windows to spread tasks across multiple monitors, or use the task switching interface provided by the operating system to manage multiple parallel tasks. Cross Window Drags enable drag and drop between two different browser windows, including transferring data such as a list of dragged records, or data needed to move a portlet to a second browser window.
    Cross Window Drags
  • Multi-lane Day View: A new mode of the Calendar, enabled via calendar.showDayLanes, allows you to display several “lanes” side by side in the Day View, and events can be dragged between lanes with automatic persistence to a DataSource. This can be used for side-by-side comparison of scheduled for people, conference rooms, vehicles or other scheduled items.
    1-lanes
  • Spreadsheet Export Enhancements: In Pro Edition and above, several enhancements have been added to make spreadsheet exports more WYSIWYG (“what you see is what you get”), including; force column types, support for ledge-style / banded rows, background color, left/right alignment of values, column widths, and header heights. These apply to both XLS (native Excel) and OOXML (open standard) exports.
  • “matchesPattern” Search Operator: The “matchesPattern” operator takes a pattern like “foo*txt”, similar to the patterns you use to match names of files in a command-line interface, or to the pattern allowed for the SQL “LIKE” operator.
  • Selenium and TestRunner Enhancements: Our Selenium extensions have been enhanced so that record & playback of drag-and-drop interactions now work for more scenarios without the need to manually insert events into the script. In addition, a new client-side log category “testReplay” can be enabled when playing back Selenium-recorded scripts to provide detailed information about why Selenese commands are failing. Lastly, for Power Edition and above, the TestRunner tool can now capture and store client- and server-side logs generated during Selenium playback whenever a test fails.
  • Google App Engine CloudSQL Support: Google App Engine (GAE), a cloud hosting service for Java applications, has added true SQL database support with the recent introduction of Google CloudSQL. We’ve added official support for CloudSQL to our SQLDataSource – you can configure and test connection settings for CloudSQL right in the Admin Console, or use database.type:"cloudsql" in your server.properties file.
  • Simple Storage for multiple:true Fields: In Pro Edition and above, a field declared as type="text" multiple="true" contains an Array of simple text values. However, prior versions did not support storing such values to SQL, JPA or Hibernate – partly because this would be considered “denormalization”, which makes using database features like SQL joins more difficult. Sometimes, though, it is exactly what you want, and now it’s supported!
  • <customJQL> for JPA: In Power Edition and above, similar to existing support for Hibernate, you can now add a <customJQL> tag to an <operationBinding> to invoke a hand-coded JPA query, using Velocity templating to inject dynamic values.
  • DynamicScreenGenerator Interface for Component XML: Component XML screen definitions are interpreted at runtime, so they can be; stored in a database, generated from other formats on-the-fly, or even created and modified by end users to create a runtime-extensible UI. The previous release introduced new RPCManager APIs, cacheScreens() and createScreen(), that enable batch loading of several screen definitions at once via the ScreenLoaderServlet. In Pro Edition and above, a new server-side API ScreenLoaderServlet.addDynamicScreenGenerator() allows you to provide screen definitions on the fly to the ScreenLoaderServlet, so you can take advantage of batch loading of screens even if you are loading or generating your screen definitions at runtime.

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!

  • 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.

You can get more details about Smart GWT 4.1 / SmartClient 9.1 in our previous blog posts; New Smart GWT 4.1 / SmartClient 9.1 Features (Part 1 of 3), More Features for Smart GWT 4.1 / SmartClient 9.1 (Part 2 of 3), and Final Features for Smart GWT 3.1 / SmartClient 9.1 (Part 3 of 3).

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, including the exact date of the build.

Download Smart GWT 4.1 or SmartClient 9.1 now to get started using our newest features today!

Enjoy!

The Isomorphic Team