Smart GWT 4.x / SmartClient 9.x Feature Roadmap

Today we’re pleased to announce the feature roadmap for Smart GWT 4.x and SmartClient 9.x. Many of the new features are already complete, and if you’re comfortable using development builds you can go try them out right now.

If you upgraded or purchased licenses on or after November 21, 2012 then you already have a 4.x license. Otherwise, please contact us for upgrade pricing.

So, without further ado, here are the new features coming soon for Smart GWT 4.x / SmartClient 9.x.

New Features

The following features are committed for Smart GWT 4.0 / SmartClient 9.0.

  • Zoomable Charts

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. This sample is under Charting >> Zoom Charts >> Stock Prices.

Zoomable Charts example showing stock price of Apple, Inc. over a 5-year date range

Zoomable Charts

  • Error Bars

Charts can now display optional error bars for better visualization of datasets that have uncertainty (such as scientific measurements). This sample is under Charting >> Statistics >> Error Bars.

Error Bars for better visualization of datasets with uncertainty

Error Bars

  • Curve-Fitting and Statistics features

Scatter charts can calculate and display either lines or curves that best fit the dataset. This sample is under Charting >> Statistics >> Regression Lines.

Scatter Chart with Curve-Fitting

Scatter Chart with Curve-Fitting

In addition, all charts can now visually show the average value and standard deviation (a measure of how far data points are from the average). This sample is under Charting >> Statistics >> Mean & Deviation.

Column Chart with Average Value and Standard Deviation

Column Chart with Average Value & Standard Deviation

  • Multi-Level Grouping UI

Users can now configure multi-level grouping in any ListGrid via a simple dialog. Just set canMultiGroup to enable this feature on any ListGrid. This sample is in Grids >> Grouping & Summaries >> Multi Grouping.

Multi-Level Grouping User Interface for configuration of any ListGrid.

Multi-Level Grouping UI

  • Selenium TestRunner

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, emails are sent around so the problem can be immediately addressed.

As part of Smart GWT 4.0, we are taking part of the system we use for doing this, called Selenium TestRunner, and making it an official part of the product (for Power Edition licenses and above).

We’ll be covering this in more detail in upcoming blog posts. However, if you already understand the value of this feature, it’s fully documented and ready to use now.

  • Advanced Field Picker

Some grids show a small subset of hundreds of available fields. With this many fields, it becomes awkward to choose and arrange fields by drag-re-ordering of headers and picking fields from a menu. To address this we’ve added an alternative mode for picking fields, enabled by setting useAdvancedFieldPicker. This dual-grid interface allows you to define the visible fields and their order via intuitive drag and drop. This sample is in Grids >> Appearance >> Field Picker.

Advanced Field Picker is a dual-grid interface for definition of visible fields.

Advanced Field Picker

  • Time & Datetime Editing Enhancements

The TimeItem now supports a mode where users can pick from drop-down lists instead of directly typing in times.  The control can be configured to limit choices of minutes or hours, which can be useful for scheduling applications.

TimeItem Enhancement supports drop-down lists.

TimeItem Enhancement

In addition, for “datetime” fields (fields that combine both a date and time value), the DateChooser has been enhanced to allow picking both the date and time.

DateChooser Enhancement for datetime allows picking of both date and time.

DateTime Enhancement

  • Smart GWT AutoChild support

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.

For details, take a look at Canvas/FormItem.setAutoChildProperties(), and Canvas.getCanvasAutoChild().

Upcoming Features

The following features are committed for future Smart GWT 4.x / SmartClient 9.x releases.

  • Server-based SimpleTypes

SimpleTypes enable you to create a custom, reusable field type. This lets you share logic such as validation and formatting rules across different fields in different DataSources that need the same rule.

Smart GWT 4.x / SmartClient 9.x will introduce the ability to declare SimpleTypes server-side, so that the parts of a simple type definition that have a server-side impact (most importantly, validation) can also be shared across server-side DataSource definitions (.ds.xml files).

  • Declarative Grouping & Sums

Smart GWT 4.x / SmartClient 9.x will introduce the ability to declare simple grouping and summing for DataSource requests, right in the DataSource definition.  For example, working with the orderItem sample DataSource, you could declare an operationBinding like so to create a fetch operation that will return the total sales for a set of orderItems:

operationBinding example that returns total sales for a set of orderItems.

This operationBinding will still accept search criteria, sort directions and other normal features of fetch operations, so this simple declaration creates a fully searchable grouping.

You can also programmatically request such queries via new APIs on the DSRequest object (setGroupBy(), setFieldFunction()).

This new capability works with the built-in SQL, Hibernate and JPA DataSources. Note also that a the pre-existing SQL Templating feature of SQLDataSource allows yet more sophisticated grouping and SQL-based calculations for those who need it (see this sample).

  • Selenium WebDriver support

Official WebDriver support is currently planned for the Smart GWT 4.x / SmartClient 9.x series of releases. As we’ve noted in our docs, WebDriver has some pretty serious drawbacks relative to Selenium RC (discussed here), however, for some organizations, none of the drawbacks happen to apply.

We do plan to address WebDriver’s primary drawback, that is, no ability to execute Selenese (or more generally, no ability to execute tests recorded in Selenium IDE without extensive modifications).

If you plan to use WebDriver and you want to make sure official support is available by a specific date or a specific use case is supported, use the Feature Sponsorship program to get involved.

Need something else?

As always, the Feature Sponsorship program is available to help you get more of out of your platform, and spend less time writing and maintaining custom code. Now is a great time to propose a feature as there’s still time for it to be included in upcoming Smart GWT 4.x / SmartClient 9.x releases.


The Isomorphic Team