Smart GWT Release Notes
Release Notes for Smart GWT 3.0
Backwards compatibility notes
Smart GWT upgrades are fully backwards-compatible unless otherwise noted. For all new APIs which replace existing APIs, the older versions will continue to be supported (though marked as deprecated), with the following exceptions:
- Smart GWT 2.5 introduced an erroneously named event and handler pair
com.smartgwt.client.widgets.events.CloseClientEvent and
com.smartgwt.client.widgets.events.CloseClientHandler.
These have been removed, in favor of the correctly named
com.smartgwt.client.widgets.events.CloseClickEvent and
com.smartgwt.client.widgets.events.CloseClickHandler.
- The zero-argument method
DataSource.fetchData() has been removed. This method served no useful purpose and led to a lot of confusion. For application code to meaningfully react to a DataSource.fetchData() call, a DSCallback must be passed to the method.
New features and fixes
- The Drawing module is now open source (added to Smart GWT LGPL). Its API and examples have been greatly extended
- Browser support and skinning
- Numerous improvements for mobile browsers (Android and iOS)
- Show native focus indicators on Chrome and Safari browsers
- Many skin changes
- ScreenReader enhancements and fixes
- ARIA-label support for FormItems, Buttons, and FilterBuilders
- Prompts on form items
- Improved native focus on elements, including ListGrid
- Cross-browser support
- Data binding and related functionality
- Various enhancements around working with AdvancedCriteria
- Support for transaction queueing for RestDataSources
- New attribute
DataSource.dropUnknownCriteria (defaults to true) — if true, client side filtering will ignore criteria for fieldNames not explicitly present in the DataSource
- Fix for an issue where server XML responses are incorrectly parsed as Record objects if an
xsd:type attribute is set in the response
- Miscellaneous Component/UI changes
- Support for new ToolStrip-related components: ToolStripGroup, RibbonBar, RibbonGroup
- Respect minWidth/minHeight specified on a percentage-sized component
- ToolStrip and related components added to Visual Builder
- Various Visual Builder and editMode fixes
- Various improvements to Calendar
- Fix for an issue with Ctrl/Alt key detection in Windows and non-US keyboard mappings
- Tab order fixes
- Fixed some interactions with modal prompts and click masks
- Fix for DateChooser year menu positioning
- Chrome-specific fix for issue where tabSet close click could fail to remove unselected tabs in some skins
- Fixes and updates to dataPath
- Fixes for
dragAppearance:"tracker", dragResize, and dragReposition settings
- Fix a potential memory leak in RestDataSource when serializing requests
- API improvements for Dialog customization
- ListGrid, TileGrid and TreeGrid
- ListGrid reworked to be a VLayout subclass, with support for customizing sub-components via listGrid.gridComponents
- Support for delayed/batched removal of records from a ListGrid (via deferRemoval attribute)
- Support for
ListGridField.multiple
- Support for
TileGrid.recordContextClick
- Better support for cascading selection in TreeGrids with incrementally loaded data
- FilterEditor fixes for field order, sizing, and visibility
- Various fixes around recordComponents' life-cycle management
- Fixed a bug where expansion components and record components could get “lost” on server-side data changes
- Fix for dragging into a grid whose records are all disabled
ListGridField.autoFitWidth logic fixes
- Force a refresh when explicitly recalculating summary values even if data appears unchanged
- Added support for incrementally recalculating grid-level summaries
- When calling setData() on a grouped grid, instead of attempting to apply the current tree open state to the new data, reapply the initial group open state
- When rapidly scrolling through a frozen body, whitespace could be left at the bottom. This is fixed
- Fix for an issue where expansion components could interfere with the positioning of recordComponents
- Fix for an issue where allowFilterExpressions could confuse checkbox-items in the ListGrid filterEditor
- Fix for an issue where hilites could not be applied to a ListGrid before initialization
- Fix for a bug where getBodyScrollLeft() and getBodyScrollTop() would throw an Exception attempting to convert int to Integer
- Forms
- FormItem item vertical alignment support
- Numerous fixes to the
allowExpressions / allowFilterExpressions functionality expression items
FormItem.selectOnFocus won't override actual cursor insertion based on mouse click position
- Various ComboBoxItem stability improvements/fixes around filtering, addUnknownValues false, showHintInField
- DataBoundPicktreeItem — support for initial criteria and invalidating cache
- Fix for possible memory leaks failing to clear up generated dateRangeItem dialog box and related components
- Fix for tabIndex issues around RadioGroupItems
- MultiFileItem now available in Smart GWT
- Fixed some formatting issues with DateItems showing error icons
- Fix for issue where cellHover component fieldNum could be incorrect while frozen fields were showing
- Fix for icon positioning with RelativeDateItems
- Fix for erroneous sorting of null entries in datetime type fields.
- Added workaround for native IE issue whereby assigning certain HTML strings to certain DOM elements' innerHTML at runtime can generate runtime errors. This came up setting StaticTextItem values
- Fixed a case where
SelectItem.fetchData()/ComboBoxItem.fetchData() could fail to drop cached data
- Avoid writing out the title suffix for a form item with no title
- Support for applying “inSet” criteria to AdvancedCriteria via
multiple:true selectItem
- Some enhancements/fixes around FormItems and optionDataSource
- Fixed some issues where RelativeDateItems could show the wrong absolute date value for some shortcuts
- Fix for an issue where dateItems could fire changed more often than necessary
- ComboBoxItem/SelectItem: Fix for an issue where the pickList header could fail to respect the height specified in pickListProperties
- Fix for an issue where ButtonItems could fail to show disabled state properly
- CanvasItem click handler responds to mouse click or Enter keypress as with standard widget click handling
- Fix for an issue where a call to getValues() before draw on a multiple select item could cause an Exception
- New
FilterBuilder.getCriteria() method, which takes a parameter allowing the developer to include null values in the generated criteria
Release Notes for Smart GWT 2.5
- GWT 2.3 compatible
- ARIA Support
- New dataPath Feature
- ListGrid
- Added ListGrid.allowFilterExpressions to support use of expressions when filtering. Allows expressions when producing criteria — for example
<50 or ==99
- Added ListGrid.autoFitWidthApproach
- Added ListGridField.dataPath
- Support for multi line summaries in groups and at the grid level
- New Group Title Column feature, added new showGroupSummaryInHeader attribute
- Added ListGridField.addSummaryFunction() API to allow set up of multiple summary functions per field,
which display as multiple lines in the grid summary or per group summary
- Support for field.summaryTitle and SummaryFunctionType "title"to show arbitrary text in the summary row (or group summary row) for a field in a grid without having to write any code
- Exposed listGrid.getGroupByFields() — always gives back an array of strings
- Augment ListGrid state management such that get/setViewState also preserve hilites and grouping data, along with frozen field information
- New property 'formatOnFocusChange' If set, formatEditorValue re-runs whenever the item receives or loses focus, meaning the developer can show a prettier string while the user isn't actively editing it
- New viewStateChanged event fired from grouping, sorting, fieldState changed
- New sortChanged event fired from setSort() whenever the sorting changes
- Fix for a bug where if the summary row is visible and an h-scrollbar is introduced, a second h-scrollbar would display
- Exposed 'getEditFormItem()' to get the live edit item currently displayed to the user during editing
- Addition of new ListGrid.saveRequestProperties, to allow for customization of the properties sent on the save Request
- Improve performance of saveAllEdits() when processing a large number of edited rows
- Enhance record summaries in grids by providing support for locally held data to be included
- Fixed issue with grid.unsort() not correctly managing a cell selected for edit after a sort
- Fix to remove performance issue with colSpanning incorrectly rendering row cells and causing unnecessary redraws
- Enhanced record double click management
- Fix to updateRollOverCanvas() to only perform necessary ListGrid canvas chnages if there is an associated record or cell being rolled over
- Improved arrow key navigation with grouping by not toggling the group when a group node is selected
- Fix to ListGrid where if type-validation converted from string to number, and stored out the number value, a call to getEditValue() ] could replace the converted value with the original string value
- Fix to resolve an issue where using string values with setWidth(""*"" or “%”) with custom editors in FormItem or ListGrids threw an exception
- Fix for ListGrid.hasChanges() detecting a change in DateItem fields even if the user does not actually make any changes in the cell
- Fix to stop an error when calling setFields for a second time on a ListGrid but with one field less (to remove a field)
- Fix to allow disable of the "configure sort" right-click menu item (in the sorting box at the top-right of the grid) in a ListGrid when multiSort is unavailable
- New selectionUpdated event when ListGrid selections are updated
- New API ListGrid.getSelectedRecords() to return all Records that have been selected in a grid as a recordList
- Added refreshRecordComponent() API
- New setAutoFitFieldWidths method to enable/disable autoFitFieldWidths at runtime
- TreeGrid
- Added TreeGrid.showDisabledSelectionCheckbox
- Fix to check if canCollapseGroup is false on TreeGrids, to avoid having to check open folder state on all folders
- Fix to treegrid dragging of a node from root and dropping it into root (in the white space). Causing an error message about duplicate names
- Calendar
- Correction to rangeInEventRange API to prevent the use case where overlapping events within a day cause all the other events to assume they are also overlapping and render at half width
- Correction to calendar events heights where the events spans the midnight boundary
- Correction to calendar event resizing to prevent horizontal resizing when they shouldn't be
- Fix to timing of calendar refresh to avoid trying to refresh a calendar where the calendar is destroyed or is in mid-destroy
- Fix to Calendar events to correctly return the event details when adding or updating an event
- SectionStack
- Correction to bad printing of nested table components where SectionHeaders did not print correctly
- When destroying sections, if section.controls is specified but hasn't been added to the section as a descendant, explicitly destroy it
- TileGrid
- Fix issue where invalidateCache could inadvertently load all of the data for a datasource
- FilterBuilder
- FilterBuilder reworked to make getValueFieldProperties() a more useful override point
- Added support for filterButtonProperties to customize the actionButton on the filterEditor
- Fixed bug with left align of the last field in filterEditor
- Support for custom SimpleTypes
- Change to filterBuilder to exclude all Datasource fields except the specifically required ones to improve performance
- Correction to FilterBuilder.getEditorType() for correctly attributing field type to operator when defined as using a fieldDataSource rather than a normal DataSource
- Added new Operator "iBetweenInclusive" client and server side — provides case-insensitive range searching for strings (for example: "a...f" in a formItem allows for a case-insensitive search)
- Fix to ensure filterChanged() is fired in all cases when clauses are added and removed from filterBuilder
- Fix to ensure when using FieldValuesAreEqual in filterBuilder dates are compared by type correctly
- Correction to 'inSet' operator in FilterBuilder to handle when null or 0 criteria is returned
- DynamicForm / ValuesManager
- Added FormItem.optionOperationId and operator
- Support for parse / formatEditorValue in DateItems where useTextField is true
- If an item has an explicit validator of type 'required', show the required styling using setRequiredIf
- Fix to avoid a crash if a DynamicForm with no DataSource specified is embedded in a ValuesManager with a dataSource specified, and the
form has explicit fields.
- validateOnEditorExit: For ComboBoxItems where completeOnTab is true, don't validate as part of handleEditorExit if a tab is pending completion, wait for that completion to actually fire, then validate.
- RelativeDateItem inner comboBoxItem width fixed to match that of other selectItems on the form
- Added explicit 'innerTitleOrientation' to DateRangeItem
- ComboBoxItem : On focus, record the element value. On blur, only run mapValueToDisplay and reset the element value if it has changed since focus
- Fix to focus/blur processing to avoid custom parsers firing twice on ComboBoxItems
- Fixes to RelativeDateItem to correctly use getValue()/setValue() methods
- Support for passing a RelativeDate right into setValue() at the form or item level
- Fixes to sporadic ComboBoxItem.completeOnTab failures if the user tabs before data has loaded
- Enhanced FormItem.fetchMissingValues()to also manage optionDataSource events for retrieving a displayField value or selected record. Extended functionality will also maintain updates to these optionDataSource values
- If request.willHandleError:true is passed to save method on a form or valuesManager, allow the callback to fire even if the response returned validation errors.
- Fix for an issue where DateItems wouldn't detect change and therefore wouldn't validateOnExit if the user picked the value from a picker
- Correction to ComboBoxItem.filterData() to ensure all data has been loaded before issuing the filterComplete() API.
- Fix to clear existing errors from an invalid date field in text mode (useTextField) when a valid date is then selected
- Improvements to Picklist positioning by directly looking at the data if the pickList isn't drawn yet
- Correction to remove a specific use case issue in FormItems where Focus/Blur on multiple fields caused a loop
- Correction to Values Manager managed form to remove a failure when the form contains fields that have neither a name of a dataPath reference
- Enhance DateChooser functionality to round to end of day if rangePosition is set to end
- Corrected an error when defining pickListFields to ensure that if the showIf attribute is set to false the pickList Headers for those fields are ignored
- Enhancements to relative date items by using the field type to ensure a date item serializes as a date rather than a dateTime
- Fix to a specific case on ComboBoxItems where a repeat fetch operation was triggered when a fetch was already in operation. Related to rapid data entry use
- Fix to always include times in relative date-range criteria
- Fix to correctly handle mouseOver on icons within form items
- Fix to correctly manage focus on Items within a canvas within a DynamicForm, where clickmasks are specified
- Fix to date logic to correct issue, where in some time zone(s) [seen in Brazil], DST adjustments happen at 00:00 and calling APIs to set a Date value to 00:00 on the day when the DST switch happens returns a Date one day earlier at 23:00
- Fix to setValue() to allow it to manage roundPrecision as well as roundValues
- Improvements to CanvasItems click/double click events when clicking within an embedded canvas
- Improvements to serialization of Date objects being produced by DateItem or RelativeDateItem types to exclude time unless explicitly defined in the field type
- Fix mask validators to not result in a exception if not passed a string, or specifically passed a exceptional value
- Fix of an issue where single DateItem fields in Dynamic/Search forms, can appear as double Date range fields
- Fix tabindex/tabbing behavior of the MiniDateRangeItem popup
- New date range elements improved to $weekAgo and $weekFromNow to allow the new rangePosition API to be usable for setting to beginning or end of day
- RelativeDateItem : New properties 'showPastOptions' and 'showFutureOptions' to disable past or future options if desired
- RelativeDateItem : New rangeRoundingGranularity feature — allows configuration, if selecting N Days Ago whether that's to the nearest day, hour, second etc.
- Added support for overriding the preset options in RelativeDateItem's
- DetailViewer
- Added DetailViewerField.name and DetailViewerField.dataPath
- DetailViewer now respects the new field.dateFormatter, field.timeFormatter, component.dateFormatter, component.datetimeFormatter and component.timeForamtter pattern
- TabSet
- TabSet / Tab — added getTabCanvas() method to get the live tab canvas
- Canvas
- Added "moved" and "parentMoved" event handlers
- DataSource
- Enhancements to serializeFields() to handle nested DataSources
- Fix to DataSource.handleUpdate to clear last update information for ResultSets to ensure the dataChanged API fires correctly
- Correction to datasource.combineCriteria() to specifically mark the component criteria as advanced to stop the criteria being presented as separate criteria, but as one set of advanced criteria
- Fix to ensure that if transformInput modifies an item's value while the user is typing in the field, focus ends up at the end of the field.
- Other
- Various timezone conversion, date-time formatting fixes
- i18n enhancements
- getSelectionRange support added for Opera 11 with Windows to allow text masking to perform properly
- Corrected an issue with setStyleName() not rendering correctly if called after draw() on a Label
- Added support for 'altText' to Img
- Fix to an issue where browsers complain about mixed security content with Flashlets and https is now automatically detected and managed
- Fix to avoid a possible crash during MenuBar draw if we have no menus
- Drag and Drop recording / playback support for Selenium
- Double Click handling support for Selenium
- Several additional enhancements and bug fixes that were logged in tracker
Release Notes for Smart GWT 2.4
- GWT 2.1.1 compatible
- Added Smart GWT QuickStart Guide
- Touch & Mobile support : Support for iPhone, iPad and iPod touch devices with no code changes required
- Offline persistent storage support with seamless integration with DataSource's
- User Defined data highlighting
- Advanced Hover components with built-in hover modes
- New ultralight ‘Simplicity’ skin that is easily customizable and virtually image free
- Performance improvements across the board with significant IE specific performance enhancements
- Several new Showcase samples under the "New Samples" side nav
- ListGrid
- Per field autoFitWidthApproach now supported
- Added ListGrid "Auto Fit All" menu option
- Support for frozen fields and virtual scrolling with record components
- Various fixes related to the display of cell components in a ListGrid
- Support for Header Spans when printing
- Print support for a ListGrid with more than one frozen fields
- Improved support for printing ListGrid's with embedded components
- ListGridField's ChangeHandler event is now cancellable
- Significant performance optimizations to client side Advanced Filtering
- Added support for LinkURLPrefix and LinkURLSuffix on ListGridField
- Added support for handling large number of rows in IE 8 non-strict mode
- Added ListGrid.getCellHoverComponent() to support ListGrid cell hover components
- New ListGrid flag 'autoFitFieldsFillViewport' to enable / disable the autoFitExpandField behavior
- Handle a double-click on the ListGrid header menu context button the same as a double click elsewhere on the header button.
This means basically auto-fit on double click over the menu button
- TreeGrid
- Added TreeGrid.showOpener property to not show opener icons at all
- Fixed TreeGrid.invalidateCache to handle loadDataOnDemand:false trees
- Fixed gridSummaries for databound TreeGrids
- Fixed TreeGrid.setViewState(..) not re-selecting nodes
- Fixed TreeGrid.setSelectionType(MULTIPLE) selection behavior when selectionAppearance is "checkbox"
- For a cascade selection, loadOnDemand TreeGrid, push a full selection from parent down to the children upon load
- Calendar
- Added support for 24h based Calendars
- Calendar fix for issue where two overlapping events less than half an hour in length would be incorrectly rendered
- Fixed issue where Calendar.scrollToToday scrolls too far
- Handle the user selecting 0 hours (midnight) for the end date and ensuring the date doesn't end up incremented by more than one day
- Fixed Calendar issue where events that start and end in the hour starting at 12am caused an error
- SectionStack
- Only show the 'pointer' cursor over canCollapse:true sections in a SectionStack
- TileGrid
- Fixed TileGrid printing to work properly for orientation:vertical
- Fixed TileLayout issue where dragAppearance:'target' was breaking drag and drop
- DynamicForm
- Fix wrapping of multiple Form Item icons in strict mode
- Added support for 'setRequired()' on a FormItem at runtime
- Exposed broswerSpellCheck property on DynamicForm and FormItem for enabling / disabling native browser spell check feature on text boxes
- Added DateItem.defaultDateChooserDate as a way to specify a default to show in the picker without specifying a default value for the item as a whole
- Added DynamicForm.getChangedValues() / getOldValues() -- allows you to get at the values remembered by 'rememberValues()'
- Added FormItem.canFocus property
- Added TextItem.printFullText attribute — if true, expand the text box to fit content
- Exposed textMatchStyle on SelectItem explicitly
- Fixed a DateItem bug whereby everyone in the eastern hemisphere would get off-by-one errors in dateTime items when picking dates from the chooser
- Fix for bug whereby entering dates into a DateTime item when the date crossed the Daylight Savings Time boundary would lead to the hours getting changed on blur
- Added support for specifying DateItem.emptyDisplayValue when in text mode
- Added support for specifying DateItem.showHintInField when in text mode
- Fix IE specific "blinking" of ComboBoxes on initial select
- SelectItem with multipleAppearance:"picklist" now supports comma separated formatted output (eg icons)
- Fixed issue where tabbing into a DateItem in useTextField:true mode caused the value to be saved as null instead of left to default value
- DetailViewer
- Fixed issue if DetailViewer was given just a singular object as data
- TabSet
- Support for Tab title user editing (TabSet.canEditTabTitles and Tab.canEditTitle properties)
- Added TabSet.paneMargin property
- Other
- i18n enhancements
- Improved Selenium support
- Added support for hover components on any Canvas using Canvas.showHoverComponents and overriding getHoverComponent()
- Fixed bug where dates already in UTC would be applied a UTC offset
- 36 additional enhancements and bug fixes that were logged in tracker
Release Notes for Smart GWT 2.2
- Selenium support
- Removed need for setting isomorphicDir variable in host html file
- Support for the prototype pattern where the default attributes of a given Canvas (or subclass) can be user specified by passing a prototypical instance to the static method [Canvas or subclass].setDefaultProperties(Canvas or subclass prototype instance)
- Added DateRangeItem, MiniDateRangeItem and Relative Date support to DynamicForm
- Javadoc enhancements : Over 200 API's now have relevant Showcase example in the @see links
- Several new Showcase samples under the "New Samples" side nav
- ListGrid
- Performance improvements
- Editable grid related fixes
- Added ListGrid.isPartiallySelected(record) API.
- Changed the default recordComponentPoolingMode to "viewport"
- Enhancements to make grouping / editing / autoSaveEdits:false work better
- Setting canFilter:false on an image field now results in no icon in filterEditor
- With multi-level grouping and groupTitleField set, subgroups now shows indentation
- Support for showHintInField for editable ListGrid fields
- Make the "select all" checkbox header be disabled only when all rows aren't cached. As soon as all rows become cached, enable it.
- For a user-created field, offer a "Remove [summary|formula] field" context menu item that removes the field (not just hides it)
- Fixed row-numbering when grouped — now skips group-header rows when counting
- Fixes for unnecessary fetches when scrolling to data provided via an ResultSet initialized with a sparse array
- Fixed show/hideField and freeze/unfreezeField with recordComponents
- Fix of issue where shorter total column length than overall grid length was causing the rolloverCanvas to be misaligned
- Fixed sorting when grouped
- Fix for issue where rollOver styling could get stuck on the first row edited if modal editing was true
- Fix for issue where selectionState wasn't properly re-applied after grouping
- Fixed recordComponentsByCell bug that misaligned controls on scroll
- Fix getSortState() always returned null for the current sort-field
- Fix virtualScrolling and recordComponents in the presence of a frozen body
- Fix for issue where setViewState was not allowing user-shown fields to get passed as visible to the component.
- With checkbox selection and summary rows, summary rows are no longer selectable (no checkbox appear)
- Fix issue where checkbox field hover was wrongly appearing for all rows instead of just the checkbox header
- Fix issue where collapsing a record that also had a recordComponent would remove the first component embedded on the record
- TreeGrid
- Support separateFolders without forcing sorting by title
- New attribute sortFoldersBeforeLeaves
- New property Tree.indexByLevel causes us to maintain an set of indices of nodes, one for each level of the Tree
- New method Tree.getLevelNodes() returns the set of nodes at a particular level of the Tree, or optionally at a particular level below an arbitrary node in the Tree.
- Fixed Tree sort normalizer not handling floats correctly
- Fixes related to reparenting nodes
- FilterBuilder
- Various enhancements
- Fixed occasional bad drawing problem in Chrome/Windows and Chrome/Safari/Mac
- DynamicForm
- Support for FormItem cell height
- DynamicForm editing of AdvancedCriteria now supported
- Fix for validation errors not being displayed properly when a FileItem is included on a form
- Other
- i18n enhancements
- Multi-property sort support for ResultSet and RecordList
- Improved TileView print support
- In Safari / Chrome in strict mode we have to use "pointer" rather than "hand" to get the pointy-finger cursor
- Fixed Development Mode issue with callbacks having a boolean return value
- Fixed timezone bug with dateTime formatting
- Better Transitional Doctype support
- Dev Console Enhancements : Ability to capture Selenium scLocator string for last clicked element
- Support DataSource.cacheAllData which causes a DataSource to load and cache all available data for a DataSource the first time there is a request to fetch data.
- Added DataSource.cacheMaxAge
- Allow reordering of ResultSets: implement the methods on ResultSet necessary to allow client-side reorder
- Error reporting improvements. JS stack traces are logged for non-IE browsers as well
- 20 additional enhancements and bug fixes that were logged in tracker
Release Notes for Smart GWT 2.1
- GWT 2.0.3 compatible
- New Graphite theme
- ListGrid enhancements
- Record RollOver controls
- RollUnder Canvas support
- Background components
- Support for arbitrary widgets in cells
- Ability to display row numbers
- setMaxExpandedRecords(..) to control max. number of simultaneous expanded records
- ListGridField.setCanDragResize(), setCanReorder(), setAutoFreeze(), setShouldPrint() API's
- Checkbox selection with grouping
- MultiColumn sort enhancements
- TreeGrid enhancements
- Support for Checkbox tree with Cascade selection
- Support for tri-state checkboxes (selected, unselected, partial)
- Performance enhancements
- ToolStrip enhancements
- Significant improvement in appearance
- Added ToolStripButton and ToolStripMenuButton classes
- Vertical ToolStrips
- Print support enhancements
- ability to control which components display in print view
- print styling on a per-component basis
- support print window customizations
- API for the number of records displayed in print view (can be different from UI view)
- Browser Plugins as widgets
- Flashlet widget
- Applet widget
- ActiveXControl widget
- SVG widget
- Other Widget enhancements
- Window : support for footer controls
- Calendar : control dragability of events
- New IMenuButton & IPickTreeItem classes with improved appearance
- AdvancedCriteria enhancements and support for programmatic construction
- SectionStack drag reordering support
- FilterBuilder support for working with very large number of fields
- Convenience FormItem.setRequiredMessage(..) API
- TileGrids now automatically relayout if a tile resizes
- Added support for grouping for formula and summary fields
- Performance enhancements
- Snappier TreeGrid expand / collapse
- Faster Canvas resize
- Faster Tab close (deferred destroy)
- Logging of warnings and error to the GWT Developer Console in addition to the Smart GWT Dev. Console.
- Improved exception handling and reporting.
- i18n enhancements
- Showcase enhancements and several new samples under the "New Samples" side nav
- 27 additional enhancements and bug fixes that were logged in tracker
Release Notes for Smart GWT 2.0
- GWT 2.0 support
- New Enterprise Blue theme, and significant improvements to Enterprise Gray Skin. Other skins deprecated and will have replacements in a future release.
- Theme specific collection of standard Window Icons, Picker Icons and Transfer Button icons as part of the core library.
- MS Excel like MultiColumn sort capabilities for ListGrid
- Support for ListGrid row expansions with in built expansion modes like details, editable form, related records as well
as allowing the user to display a custom widget via the override point ListGrid.getExpansionComponent(record)
- Exposed getGridSummary(field) as an override point. This allows you to return an entirely custom summary row value for any field
- Added the following methods to FormItem: setValueFormatter , setEditorValueFormatter and setEditorValueParser. These allow the user to customize the
display and parsing of input in a FormItem.
- Enhancements to DetailViewer and TileGrid so better support working interchangeably with the Records from any other DataBoundComponent
- Disabled state of all components fully supported. Missing media added.
- Various enhancements to support IE8 and Safari strict mode
- Support for "center" Layout alignment setting.
- Added DateTimeItem form field type.
- Support for masking DateItem, DateTimeItem and TimeItem input fields.
- Added Canvas.showClickMask(..) to do an 'auto-dismiss on outside click' type behavior on a component
- Fixed overflow issue with ListGrid.addData() under certain circumstances
- Fixed XSD support regression on Chrome / Safari
- Fixed "Too much recursion" issue with ValuesManager
- Fixed WSDL regression
- Javadoc improvements to link to GWT and JDK Javadoc APIs respectively
- Numerous new samples and improvements to the Showcase demo main page
- Various additional enhancements and bug fixes that were logged in tracker
- See the detailed API Changes document
Release Notes for Smart GWT 1.3
In this release the SmartGwt modules have been slightly refactored so that by default the compile output does not include debug sources, unused resources, developer tools etc.
Some users were getting the wrong impression that the size of the compiled output was the size of their application. Most users are probably using either
com.smartgwt.SmartGwt or com.smartgwt.SmartGwtNoScript and will be unaffected by this refactoring. You will only notice that the compile output is a lot
smaller as it does not include the debug / readable source js files, and the developer console files. The most important change to keep in mind is that in order to use the Developer Console
(ie SC.showConsole() ), you will now need to inherit the following module : <inherits name="com.smartgwt.tools.SmartGwtTools"/>
Users that happen be using com.smartgwt.SmartGwtDebug will need to inherit com.smartgwt.debug.SmartGwtDebug instead.
- Grid Summary support from group and columns
- Masking support for form text fields
- Support for user-defined reusable SimpleTypes for use in DataSources (eg ZipCode type)
- In-field hints support for SelectItem, ComboBoxItem and TextAreaItem
- Support for Finnish locale and other i18n enhancements
- TextAreaItem.getSelectedText() support
- Improved support for use of Smart GWT and MVP pattern
- FilterBuilder fixes
- RPCManager enhancements
- Ability to control order of month day and year selector in DateItem
- Various additional enhancements and bug fixes that were logged in tracker
- New examples including a Grid Summary example in the Smart GWT Showcase (see "New Samples" side nav item in the Showcase)
Release Notes for Smart GWT 1.2
- Significant improvement in integration with core GWT widgets
- Hosted mode performance improvements
- GWT 1.7 support
- Updated Showcase sample to new GWT project structure
- Fully implemented the ResultSet API
- ListGrid performance enhancements
- Full support for Safari 4.0
- I18n enhancements.
- Support for Grid editing with all editors shown
- Auto-loading of dependent XML schema for loadWSDL() and loadXMLSchema()
- Extended WebService APIs to allow simplified input data and allow setting SOAP headers
- Numerous enhancements. See the detailed API Changes document
- enhancements to RPC Tab in Developer Console (shows component that initiated request, if applicable)
- Around 35 additional enhancements and bug fixes that were logged in tracker
- New examples including a mini-app in the Smart GWT Showcase (see "New Samples" side nav item in the Showcase)
Release Notes for Smart GWT 1.1
- Unified DataBoundComponent interface which is implemented by DynamicForm, ListGrid, TreeGrid, Menu, ColumnTree, TileGrid, DetailViewer and Calendar.
- Consistent representation of a Record which can be used by any DataBoundComponent
- Support for GWT-RPC DataSource with DataBoundComponents
- Various component and skin performance improvements
- Formula and Summary fields: built-in wizards for end users to define formula fields that can compute values using other fields, or summary fields
that can combine other fields with intervening / surrounding text. Available in all DataBoundComponents, easy to persist as preferences
- I18n support with resource bundles from 14 locales
- Significant improvements to Javadocs with tons of documentation on various concepts. (over 30MB on disk)
- API's to save and restore the display and selection state of various components to/from the server
- Automatic databound dragging behaviors: grids and trees will now inspect data relations declared in DataSources and automatically “do the right thing” for a databound drag
- Numerous enhancements. See the detailed API Changes document
- Over 50 additional enhancements and bug fixes that were logged in tracker
- Several new events and extension points on various components to allow advanced usage
- A helloworld-1.6 starter project for Smart GWT with GWT 1.6
- Several new examples in the Smart GWT Showcase (see "New Samples" side nav item in the Showcase)
Key API's added
DateUtil
- Ability to globally set the Date input and rendered formats across the application
DataBoundComponent
- ability to select / deselect records, fetch / filter data and carry out various other operations on any DataBoundComponent
DataSource and DataSourceField
- ability to specify custom field value extractor logic for a given DataSourceField
- API's to control http caching and result batch size
- DataSourceField.setCanSortClientOnly
Window
- listeners for minimize, maximize, restore and close
Calendar
- support for customizing event edit dialog fields
- event remove listener
Forms
- convenience constructors for various FormItems
- support for customizing form field and title tooltips
- TextItem : support for character casing and entry restrictions (regexp based)
- TextItem : support for hints displayed in-field
- ComboBoxItem : fetchDelay setting
- AutoFitTextAreaItem: autofits to contained text as the user types
Column Tree (Miller Columns)
- added node selected listener
ListGrid
- Grouping modes: built-in and custom grouping modes, such as the ability to group a date column by week, day, month or year
- added header click listener
- added record drop listener
- ability to customize grid groupings by record values and also group title
- support for adding custom formula and summary fields on the fly
- ability to register custom handler to control visibility of a ListGridField
- added ListGridField.setCanFreeze, ListGridField.setCanSort
SectionStack (Accordion)
- added section header click event
TreeGrid
- added folder drop listener
- ability to override getIcon() / getNodeTitle() to allow users to have custom node icon / title logic
Release Notes for Smart GWT 1.0 b2
- GWT 1.6 M1 and M2 support. GWT 1.5.3 continues to be fully supported.
- New lightweight Enterprise Gray skin
- Performance improvements
- various API enhancements and bug fixes
- complete support for WebServices (WSDL)
- Additional Developer Tools (Inspect DOM and monitor RPC calls from hosted mode)
- Portal support and samples
- HTML based Print Preview support. No longer requires JSP.
- Support for auto-arranging and overlapping Calendar events
- Support for checkbox selection for ListGrids
- improved support for users to wire DataSource's with GWT-RPC calls
- Improved javadocs
- Separated additional skins into a smartgwt-skins.jar
- Chrome, Firefox 3.1, and OSX hosted mode support
Release Notes for Smart GWT 1.0 b1
Initial Release
- GWT 1.5.3 (or greater) required