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.
The following features are committed for Smart GWT 4.0 / SmartClient 9.0.
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.
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.
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.
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.
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.
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.
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.
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.
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().
The following features are committed for future Smart GWT 4.x / SmartClient 9.x releases.
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:
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