Release Notes for Smart GWT 4.0
Added support for SmartGWT reflection.
Much improved and extended support for configuring AutoChildren
Added classes LogicalDate and LogicalTime to represent SmartClient logical dates and times, respectively.
Added SpinnerItem.setNextValueHandler() and setPreviousValueHandler().
Added support for configuring a DataBoundComponent's hiliteEditor via the AutoChild system.
Added support for databound listGrids reselecting updated records on cache sync via listGrid.reselectOnUpdate
Added support for a databound CubeGrid being updated from its DataSource.
Expose new feature, UserSummary, configurable in ListGridFields.
Exposed DBC Hiliting classes HiliteRule, HiliteEditor and AdvancedHiliteEditor for SGWT
Add new feature, TextExportSettings.nullValueText to allow configurable behavior when
a field value is null. Default settings of "" shows empty string for null field. If
property is set to null, then the default value for the type is used for field value.
Added a public method to DataSource to extract a field value from a record using name or dataPath and respecting
any specified SimpleType method for extracting the atomic value.
Support for specifying multipleValueSeparator string for displaying multiple field values
New framework property datasource.allowClientAdditionalOutputs, which allows or disables additionalOutputs sent in request from the browser.
Added includeFrom + groupFunction feature which allows to have aggregated values from related data source:
- in an "order" DataSource with related orderItem DataSource having an FK to order (many orderItems to one order):
<field name="total" includeFrom="orderItem.price" groupFunction="sum"/>
<field name="lastShipDate" includeFrom="orderItem.shipDate" groupFunction="max"/>
- supports all groupFunctions that are supported for groupBy fieldFunctions, plus:
- "first" - selects first value
- "concat" (SQLDataSource + Oracle only) - combines all values textually via field.joinString, so that you get a display like "Updated by: Roger Parks, Lewis French"
<field name="updaters" includeFrom="user.fullName" groupFunction="concat" joinString=", " joinSuffix="" joinPrefix=""/>
- default value for joinString is ", ". It can also be set to empty String explicitly
- default vlaue for joinPrefix/Suffix is empty string
Fix DataSource reference not being cleaned up after addData() for clientOnly DataSources.
support for "invalidateCache" flag for RestDataSource added
Added support for explicitly determining whether open state should be preserved when fresh data arrives within a
databound tree via ResultTree.autoPreserveOpenState attribute
Added additional RPCManager.exportContent method overloads.
Added the DrawPane.getDataURL() API which converts the DrawPane to a PNG image and calls the given callback with a data URI representing the PNG. In modern browsers and if using <canvas>-type drawing (the default), the data URI is generated without contacting the server.
If a request is configured to block user interactivity a new RPCManager.promptDelay property
controls the delay in milliseconds before a visual indication is shown to the user that
interactivity is blocked.
Added support for RPCManager.exportContent to accept an array of canvases.
Added extra logging categories to the detailed timing measurements
Added RPCManager.exportImage() for exporting SVG graphics in PNG or JPEG format.
Added optional detailed timing data for both client- and server-side DSRequest processing to the Developer Console RPC tab
New API RPCManager::startSQLTransaction()
Added the property DrawItem.keepInParentRect to constrain a DrawItem to the
visible area of its DrawPane. Added DrawItem.dragResizeMove() (for SmartClient)
and DragResizeMoveEvent and DragResizeMoveHandler (for SmartGWT) to respond to
drags of "resize" control knobs.
When parsing a datetime specified in a JSON string, handle an explicit timezone specification in the format "+H:MM" as well as "+HH:MM".
Added showPickerTimeItem flag to DateItem and RelativeDateItem, allowing developers to suppress the time field from
being displayed in the DateChooser popup for fields with data type "datetime".
Added support for "showCollapsedGroupSummary" attribute for showing group summaries even when the group is collapsed.
Added new properties and setters to configure a Gauge's border, and set the list of GaugeSectors.
Add new 'Getting Starting FAQ' section to deal with common issues with using the new TestRunner API/Feature.
Improve AutoTest.isGridDone() to detect more cases of pending loads,
such as from ListGrid.scrollToRow() for unloaded rows.
Add getElements() method to AutoTest. Improve logic in getElement() to allow ListGrid rows to be returned.
Button SectionStack StatefulCanvas
Added support for title clipping to Button, SectionHeader and ImgSectionHeader in the presence of section controls. Enabled by default, if the title is too long to fit in the SectionHeader, the title is clipped by an ellipsis.
If showClippedTitleOnHover is true (the default), then a hover is shown when the user holds the mouse pointer over the component and the title is clipped.
Calendar.getDateLabelText is now a valid override point, allowing customization of the date label text
Added i18n attributes for eventStartDate/EndDate/Description/LaneFieldTitle
Prevent timeline events from being dragged beyond the end of the timeline; have the drag target and event overlapping cater for timelineEventPadding; added support for creating events by clicking in the timeline, and for backgroundMouseDown and backgroundClick
Exposed timelineEventMoved and timelineEventResized and redoc'd eventSnapGap to cover Timelines
Added Timeline support for HeaderLevel.headerWidth (innermost level only) and Lane.height
Added support for customizable, date-specific workday hours
Added Calendar.columnsPerPage, which dictates the number of columns by which a Timeline will scroll when using the next and previous buttons
Allow creation of custom method for CubeGrid.makeChart().
Added an 'Apply' button to DateChoosers that allow editing of the time portion and fixed so that am/pm based TimeItems show hours 1-12, rather than 0-11
Added support for labelling the x-axis of a "Scatter" FacetChart by setting the
title property of the metric facet value of the x-axis. The label properties
are specified using FacetChart.dataAxisLabelProperties.
Deprecated FacetChart.autoRotateLabels in favor of a new property rotateLabels,
which offers the option to always, never, or automatically rotate the X-axis
labels by 90 degrees.
Added x- and y-axis-specific value formatters to FacetChart.
Documented PrintProperties.printForExport and added information about using printForExport when preparing DrawPanes and FacetCharts for export.
Up/Down buttons added to move visible fields in FieldPicker.
Add capability to pass String field name to DBC.getFormulaFieldValue()
and DBC.getSummaryFieldValue() rather than the actual ListGridField.
Access to the GridSummary and GroupSummary functionality on the ListGridField has been exposed through SmartGWT.
Added new API headerSpan.setHeaderButtonProperties(), and modified signature of listGridField.setHeaderButtonProperties() in order to support customization of header buttons for fields / header spans even when the button constructor is
not a subclass of Button.
Added support for ListGrid.booleanBaseStyle, which can be used to apply a CSS
style to checkbox icons displayed for "boolean" fields and the checkbox selection
- Extended ListGrid.booleanTrueImage, ListGrid.booleanFalseImage, and
ListGrid.booleanPartialImage to support the special value "blank", which means
that no image is shown.
Added ListGrid.showClippedHeaderTitlesOnHover to control whether to show a hover if a field title is clipped, and added ListGrid.headerHoverHTML() to customize the HTML displayed in such a hover.
Added support for groupStateChanged notification on ListGrids
New ListGrid API "getDefaultFormattedFieldValue()"
Added support for ListGrid.applyFormulaAfterSummary for determining how userFormula field values are calculated
in summary rows
Added support for additional escapeKeyEditAction - we now support cancelling the edit, exiting the editor and
leaving edit values intact, or quitting the editor and saving the edits on escape keypress.
Added listGrid.isGroupNode() for determining whether a record is a group header node in a grouped listGrid
Added support for record property excluding a record from UI removal.
New APIs to simplify customizing header button appearance:
Added support for custom baseStyle / titleStyle for individual headerSpans via HeaderSpan.headerBaseStyle and HeaderSpan.headerTitleStyle
Added showClippedValuesOnHover, cellValueHover(), and cellValueHoverHTML() to ListGrid
to control displaying a hover for a cell whose value is clipped. Also added a utility
method, ListGrid.cellValueIsClipped(), to determine whether a cell value is clipped.
Added ListGrid support for canDropBelowRecords - set to false to prevent drops in the empty area of a grid's body
* Fixed ListGrid support for showDropLines: false
* Fixes to canDragRecordsOut and canAcceptDroppedRecords implementations for TreeGrid
Enhanced screenreader support: Added support for setting ariaRole for formItems and setting arbitrary ariaState
attributes for both Canvases and FormItems
added Scrollbar.showTrackButtons to control visibility of the buttons above/left and below/right of a scrollbar track
Added two methods to TabSet, setCanCloseTab() for changing a Tab's canClose property
and setCanCloseTabs() for changing the TabSet's canCloseTabs property.
Added support for drag reorder of Tabset tabs.
added TabSet.defaultTabHeight as corollary to defaultTabHeight and improved docs
Notification for tab reordering event: tabsReordered()
Added support for attributes openerIconWidth and openerIconHeight to TreeGrid. This
enables opener icons (typically a [+] or [-] symbol) to be non-square.
added TreeMenuButton (for localization only)
Added PickTreeItem.dataProperties (Tree : null : IR)
For a PickTreeItem that uses a DataSource, these properties will be passed to
the automatically-created ResultTree. This can be used for various customizations such as
modifying the automatically-chosen tree.parentIdField.
BlurbItem DynamicForm FormItem StaticTextItem TextAreaItem
Implemented support for clipping values of FormItems and displaying a hover containing
the full value if the value is clipped. See FormItem.clipValue, FormItem.valueHover(),
and FormItem.valueHoverHTML() for more information.
BlurbItem HeaderItem StaticTextItem
Added support for setting "canSelectText" on StaticTextItems, BlurbItems and HeaderItems
ComboBoxItem FormItem TextAreaItem TextItem
New attribute for TextItem and TextAreaItem: formatOnBlur - if set to true, static formatters will be applied while
the item does not have focus (and cleared when the item receives focus)
Added ComboBoxItem feature to only perform search once a minimum number of characters
have been entered.
ComboBoxItem PickList SelectItem
Added support for explicit "useClientFiltering" attribute for databound SelectItems and ComboBoxItems. Also cleaned up some documentation in this area.
FileItem FormItem UploadItem
Added support for the HTML accept attribute as file/uploadItem.accept - a comma-separated list of valid MIME types that are applied as available filters in the file picker window
- Added support for FormItemIcon.baseStyle to apply a CSS style to the icon, and
which is suffixed according to the state.
- Added support for setting FormItemIcon.src to "blank", which means that no image
is shown for the icon.
Exposed formItem.iconHSpace and formItemIcon.hspace attributes to customize horizontal spacing of FormItem icons.
Added setAutoChildProperties() for FormItem and Canvas, and well as getters to return the autochild for a FormItem or Canvas.
Added changeAutoChildDefaults() for FormItem and Canvas as well as Canvas.setAutoChildConstructor().
Added support for controlling the native HTML "autocorrect" and "autocapitalize" attributes on TextItems via browserAutoCorrect and browserAutoCapitalize
Added support for arrow key navigation in dataBound SelectItems even before all options are cached.
Add the ability to specify "criteriaFields" on the isUnique validator, to reduce the scope of the uniqueness check
PDF Export: added support for automatically downloading and using custom fonts specified in CSS.
This new feature allows the users to declare new font files within a CSS file, which is loaded by the PDF export.
The following extensions are supported: .otf, .ttf and .ttc.
If a font resource is detected, the procces will attempt to look for the font within the fonts directory by default. The fonts directory must be located at the same level as of the .CSS file loaded. If there is no a fonts directory, the font files must be located where the .CSS file is.
Added related updates functionality for JPA and Hibernate data sources.
ISCMessage.java MessagingConnectionHandler.java MessagingServlet.java
Added server-side support for the use of Server-Sent Events with the Real-Time Messaging module.
Introduce new server.properties attribute, defaultTimeFormat, to control the format of the string we use when generating SQL to update "time" fields. Operates in exactly the same fashion as the existing defaultDateFormat and defaultDateTimeFormat properties. Note, if defaultTimeFormat is not set, we fall back to the defaultDateTimeFormat, because this is what was being used before the introduction of this new property.
Fields defined as type="clob" in DataSource definitions will now generate a clob field in the DB when used with the sql generator regardless of the field.length setting.
Previously a field had to have a length > 4000 to auto-generate a clob.
Added support to handle epoch values.The epoch values must be handled in a different way, because an epoch value can't be parsed
as a SimpleDateFormat string directly. Users must set sqlDateFormat="epoch" or sqlDateFormat="epochms"
and sqlStorageStrategy="number" to their fields which will handle epoch values.
Hibernate data source generation now uses Hibernate configuration internals to acquire complete mapping information.
Bug Fixes / Other Changes
Fixed a bug in BMML Importer where a different BMML file from the local disk could not be imported after importing a BMML file from the local disk.
Fixed the "The file is not in BMML format." warning when attempting to import a file from the local disk in BMML Importer.
Fixed an issue where calling "getRecordList()" on a DynamicForm would return a broken RecordList object
Fixed issue where a dropped record on a grouped grid did not receive the correct criteria.
Fixed an issue whereby if a formula field depended on another formula field, an error would occur if the
first field was hidden
Fixed the issue that the titles of a DataBoundComponent's fields were not overriding
the data source's field titles when using the DataBoundComponent.exportData() API.
Fixed the issue that formula and summary fields were not being exported by default
when using the exportClientData() API.
Fixed a server-side IndexOutOfBoundsException when exporting a subset of fields
via the DataBoundComponent.exportClientData() API.
Fixed field availability in HiliteEditor vs AdvancedHiliteEditor
Altered so that Simple field-lists in hilite editors always include fields that are used by visible Summary fields, even those other fields are themselves hidden
Fixed an issue where the presence of a sortField in a databound select item could cause callbacks passed to "fetchData()"
to fire multiple times.
Fixed a bug where 3 or more hilites applied to the same record and field would not all be displayed.
If listGridField.canExport is false, respect this when assembling default list of fields for formatted export using exportClientData()
[Was already respected for standard "exportData()" flow].
Fixed header spans quoting while exporting client data from ListGrid.
Fixed issue on ListGrid where setting canDragSelectText:true still results
in a drag tracker representing the starting record.
Added missing i18n attributes dataBoundComponent_editHilitesDialogTitle and hiliteRule_iconFieldTitle
Fixed the issue that DynamicForm.updateOperation was not honored for implicit saves when using a ValuesManager.
Implement method ValuesManager::getMemberCanvases(), and redoc getMembers() as a convenience method that can only be used if all members are DynamicForms
KeyPressEvent KeyDownEvent KeyUpEvent
isAltKeyPressed, isCtrlKeyPressed and isShiftKeyPressed helper methods added to KeyPressEvent, KeyUpEvent and KeyDownEvent events for FormItems.
Fixed an issue where a ListGrid having an expansion field and the ability to reorder
records would show the arrow image of the expansion field on reordering records
unless an appropriate titleField was set.
Fix issue where certain field types in a DataSource, if present, may cause an error in
Fix error in DataSource with cacheAllData: true set.
Fixed available Operator list for Date fields in FilterBuilders
Documented the special DataSourceField.sqlDateFormat values "epoch" and "epochms".
Added a note to the Java Module Dependencies documentation on how to use iText 2.1.7 with the Server Framework's Content Export module.
Updated the "Java Module Dependencies" documentation to note that the Batik JARs are also needed if RPCManager.exportImage() is to be used.
Updated the "Java Module Dependencies" documentation to note that the xml-commons External Components JAR, xml-apis-ext.jar, is required in order to use the 'exportImage' built-in or for PDF Export of DrawPanes in IE6-8.
Fix a contradictory assertion in the docs that DataSource.useAnsiJoins is the default - it is not
Fixed criteria produced by RelativeDateItem and DateRangeItem
Documentation for DSRequest.generateRelatedUpdates property.
autoCacheAllData will now set cacheAllData:true when a request with no criteria receives
Document that a primaryKey is required for DataSources with a binary field
Mark the "data" parameter of DataSource::performCustomOperation() as optional
Changed module dependency documentation to note that commons-fileupload is a required library of isomorphic_core_rpc.jar, even if you aren't using the upload features of the framework
Fixed a loop-counter bug in validateJSONRecord
Fix DSrequest.getSort() so that exception is not thrown.
Fixed a JS error occurring when DataSource.cacheAllData is set to true.
Fix a bug whereby oldValues are not correctly maintained after a saveData() if the dsRequest was a sparseUpdates request
Modified getSaveOperationType() to handle being passed no requestProperties
Fixed issue with binary metadata fields when the underlying binary field is mapped via nativeName. Also have DynamicForms switch to edit mode after a successful add, even if the form contains a FileItem
Fixed an issue where decimalPad / decimalPrecision, if specified for a field within a .ds.xml file, would fail to be respected within the application.
Resolved an issue using a blank AdvancedCriteria when calling ListGrid.fetchData() would not return any matches and calling it a second time would throw an exception.
Fixed i18n hover prompts for the Level Up and Level Down buttons in the MultiSortDialog
Updated the sample JSON responses in the RestDataSource documentation. JSON responses now strictly follow the JSON standard and no longer include 'Date.parseServerDate()' calls.
Re-doc RestDataSource.dataProtocol, detailing that, to control the format in which inputs are sent to the dataURL, you must specify a replacement OperationBinding
Fix DataBoundComponent.find()/findAll()/findIndex()/findNextIndex(), so that
they return the correct results for datetime fields from the DataSource.
Log warnings on attempts to modify data in (readonly) ResultSets
Fixed a problem whereby databound treeGrids with loadDataOnDemand set to true could be confused if passed
initial criteria in AdvancedCriteria format
Make the DataSource pane of VisualBuilder show a per-project list of DataSources.
Enabled CSS3 mode by default in IE 9 standards mode and IE 10 and later when using
the Enterprise, EnterpriseBlue, or Graphite skins.
Fixed the endless "page loading" indicators in Safari 4 and 5 and Firefox 3 when using Real-Time Messaging.
Fixed Real-Time Messaging in Internet Explorer if ActiveX is disabled.
Fixed the endless "Waiting for" statusbar message and regular "phantom click" sounds when using Real-Time Messaging.
Fixed the continuous loading "throbber" in Chrome when using RTM.
Enabled the use of Server-Sent Events with Real Time Messaging in Firefox and Opera.
Fixed the endless spinning loading indicator ("throbber") when using Real-Time Messaging in Safari 4 and 5.0.x.
Fixed an issue whereby FileLoader.cacheFile() could append an unexpected query parameter onto the URL passed in
while attempting to cache images.
Fixed problem with icon display in the Developer Console's "RPC" tab.
Fixed a problem where the developer console would not show up properly in IE10
Correct processing of extended characters in TextItem when using masking
Fixed an issue with the SGWT application freezing if dialogProperties specifying an ID
were passed to SC.askforValue() or one of the other dialog-showing utility methods.
Fix issue where ListGrid in a modal window may blank out after having
launched a child modal window that calls ListGrid.setFields().
Fixed a bug where the hover of a button would not appear in Internet Explorer if the mouse started on the button's icon.
Fix issue where clicks that start a modal operation can misbehave in
Selenium RC scripts.
Fixed an event handling issue: MouseWheel events were being sent to disabled canvases, allowing the user to scroll
widgets that were marked as being non-interactive.
Fixed some issues causing keyboard-triggered context menu events to fail to be properly handled
Fixed a bug where a DynamicForm with one column and one item at width/height 100%, with no title, but with a prompt, would never show the FormItem prompt in a hover
Fixed a case where Chrome would not react properly (scroll) to small trackpad scroll gestures
Corrected EventHandler.getWheelDelta() - method returns a float rather than an integer.
Fixed updating of Grid-level summaries after a record-removal and altered Date.getWeek() to consider the default firstDayOfWeek from the current locale if one isn't passed
Fixed Date.toSerializeableDate() for datetimes
Fixed RelativeDateItem inputFormat issue when using a custom formatter function
Fixed a JS error from _isDatetimeString() when the inputFormat is a function
Update RelativeDateItem.baseDate accordingly from updateValue as well as setValue and fixed a bug where any value prefixed with a "$" was interpreted as a valid relativeDate
Update types in the DateUtil.createLogicalDate(), createLogicalTime(), getLogicalDateOnly(), and getLogicalTimeOnly() overrides.
Fixed an issue where when a relativeDate was converted to an absolute date due to DataSource.autoConvertRelativeDates
being set to true, you could end up with a datetime rather than a logical date being passed to the server for a field
of type "date"
Fixed firstDayOfWeek support for Timeline
Reworked Timeline.setTimelineRange() and fixed interactions with the DateChooser button and Next/Previous buttons
Added new attribute Calendar.defaultTimelineColumnSpan, default 20 - this is the number of innermost headerLevels (grid columns) we will show if no endDate is provided on creation, o later via setTimelineRange()
Fixed issue where a RelativeDate's rangePosition was getting dropped in the communication bewteen SGWT and SmartClient.
Don't fire selectionUpdated with selectionType: "single" when re-selecting the same record in a DBC
Fixed example link in SimpleType documentation
Fixed display values in group summaries for avg, min and max, when the data contained nulls, or all zeros
Fix a date/time formatting issue seen in SGWT Dev Mode with RelativeDateItem
Fixed incorrect title for the top-most time-label in Calendars
Fix sorting of Grouped ListGrids with multiple GroupBy fields.
Fixed single/multi sorting on fields that are also involved in a multi-grouping situation, with and without rowSummaries of either type.
Removed logWarn() from inside the script of the internal sort-normalizer for Trees
Fixed ListGrid sorting behavior when the grid is both grouped and sorted on the same field
Fixed the translation of <canvas>-style radial gradients to SVG <radialGradient>s.
Built In Types
Fixed warning for 'image' data type.
Removed warning message generated for type="link" DataSource fields.
Fixed a bug where in pages running with strict or HTML5 doctype, specified Label padding would not be displayed.
Fix for an issue that would cause buttons containing icons to intermittently render poorly in Firefox 18
Button Canvas ImgButton ListGrid StatefulCanvas StretchImgButton
Added to Button, ImgButton, and StretchImgButton support for the showClippedTitleOnHover attribute to control whether a hover containing the full button title is enabled if clipTitle is true.
Button DateGrid FormulaBuilder
Fixed an issue where the body of DateChoosers in the Simplicity skin would size wrongly in Chrome and show unwanted scrollbars
Fixed a bug in Button.showClippedTitleOnHover support. In IE 9 Strict Mode, the
hover could be displayed even if the title was not clipped. This affected Button
and all classes derived from Button such as ImgSectionHeader.
Improved mouse-based event creation for timelines by having the start and end dates rounded to the eventSnapGap
Fixed JS errors in getDateFromPoint() (monthView only) and dateIsWorkday() and corrected bad style used for event-windows when showEventDescriptions is false
Fixed the date being passed to calendar.getDateCSSText()
Fixed a bug where styling was not being correctly updated after creation when an EventWindow was reused for events with different baseStyles
Fixed a couple of redraw issues for overlapping events in Calendar
Fixed bugs that caused getActiveTime() to return the wrong value and Calendar-level drag events to be incorrectly fired by eventWindow movements
Fixed timeline event rendering for timelineGranularities greater than "day"
Added Calendar.canReorderLanes, fixed so that timeline events don't show the description in the header when showEventDescriptions is true, and fixed so that removeEvent(), setLanes() and addLane() properly refresh events
Fixed a bug where events could render a column-width beyond the end of Timelines.
Fixed a drag-repositioning bug in Timeline
Fixed an issue where events that ended before 1am would be extended to 11:59pm
Fixed custom workday styling in Day and Week views by ensuring that dateIsWorkday() is passed the correct date
Fixed handling of null startDate and startDate > endDate for Timeliine
Fixed a bug where when a long event is overlapped in its very last unit (30 mins by default) by another event which is exactly that long, both events would render at full width, but one after the other, partly obscuring the next column in the grid
* fixed a bug where dragging an overlapping event into a different column did not correctly render the original column because the event being dragged was still being taken into account
Fixed placement of overlapping calendar events when one or more ends at 00:00.
* Fixed JS error when showing event hovers in the MonthView
Fixed JS error when showing the quick event editor in non-timeline views
Fixes: timeline event drag-drop in all cases, events drawing past the end of the timeline, column rebuilding after selecting a date with the picker, bubbling of dragReposition events for timeline events - also adds two optimizations and fixes two JS errors
Fixed Canvas.enforceScrollSize() in Firefox.
Exposed the canvas "showShadow" property as being settable at runtime
Fixed an issue whereby Firefox version 18 would incorrectly size elements containing images when those images are first loaded and not present in the browser cache.
Defered generation of automatic widget IDs for SGWT widgets until the JS object is actually created.
Optimized _remapEmbeddedComponents() so it checks if a record has changed or moved before searching the data for it
Chart.isMultiFacet() when a FacetChart has no data.
Fixed a bug where ColorPicker defaultOpacity would not always be respected
Fixes issue in VisualBuilder where the "Events" editor would not maintain values.
Fix issue where CubeGrid.getSelectedCells() returns null rather than the proper CellRecord.
Fixed a JS error in the SGWT wrapper for CubeGrid.hiliteCell()
Fixed hiliteFacetValue() for column-facets and enhanced to allow hiliting of any facetValue, not just innermost ones, for rows and columns
Added new feature - DynamicForm/FormItem.readOnlyDisplay - supports different modes of rendering for items that are canEdit: false
Fix issue where DateChooser for dateTimeItem doesn't show time picker widget(s).
Fixed interactive styling for disabled weekday and weekend fields in the DateGrid
Support for DetailViewer setViewState() / getViewState()
Fixed a bug where DetailViewer field.height could fail to be respected
Fixed a bug that DrawLabel.getBoundingBox() can fail to return the correct
coordinates if the method is called after DrawPane.destroyItems() or after
getBoundingBox() is called on another DrawLabel.
Fixed an issue with FacetCharts possibly not drawing when used in a TabSet.
Fixed the translation of <canvas>-style linear gradients to SVG <linearGradient>s.
Fixed a bug that calling DrawPane.erase(), adding a DrawItem to the draw pane,
Included the data record in the DrawnValue objects returned by FacetChart's
getDrawnValue() and getNearestDrawnValue().
Fixed a bug in DrawPane that, after changing the zoomLevel, the screen area over
which the mouseover handlers were active did not match the locations of the
DrawItems handling the mouseover.
Fixed a bug that knobs of DrawItems could stop working after DrawPane.zoom().
Fixed the appearance of large gaps in the rendering of canvas shadows in Firefox.
Fixed the background-size CSS applied to EdgedCanvas edge cells in IE9.
Fixed the background size and display of bottom edge in IE9 strict mode when canvas
size is less than 100px.
Fix issue where widgets may not respond to clicks in Firefox when
Standards Mode is active.
Fix issue in Firefox Standards Mode where grid borders may disappear
Fixed FormItem.showIcon() and showAllIcons() in IE.
Fixed a display issue in Opera 12.x where the DateRangeItem's form was not visible
in the date range selection dialog of a ListGrid filter editor.
Fixed a bug where adding a RangeChangedEventHandler to the zoomChartSlider of a
FacetChart prevented the chart from redrawing the data after manipulations of
Added MultiComboBoxItem.getValues() and setValues(Object...) for getting and setting the selected values.
Fixed a bug in single-facet "Pie" and "Dougnnut" FacetCharts that data value
labels for the biggest pie slices might not be displayed.
Fixed a bug in stacked "Bar" and "Column" FacetCharts with showValueOnHover
enabled that the hover could appear on a bar even while the mouse is hovering
over the next bar.
Fixed a bug in FacetChart where swapping the facets can cause the zoom chart to
display the wrong data labels.
Fixed a bug where a column FacetChart with `showDataValues: true` failed to
display the data value labels after the chartType was switched to "Pie" and
then switched back to "Column".
Fixed a bug that the context menu of a FacetChart is not destroyed when the
chart is destroyed.
Fixed a bug that the zoom (selection) chart was not automatically cleared when
the chartType of a FacetChart is switched to "Pie", "Doughnut", "Radar", or
"Bar" (which chart types, along with "Scatter", do not support zooming).
Fixed a bug that FacetCharts that have zero values for all of their data points
draw gradations lines at +/-0.01 instead of simply showing a gradation at zero.
Fixed a bug where FacetChart.getNearestDrawnValue() would return the wrong
data point in the presense of null-valued data.
Fixed a bug that the record argument of FacetChart.getPointHoverHTML() is always
null when hovers are enabled for the "Measurement Data" zoom chart sample.
Implemented FacetChart.labelCollapseMode "time" for column charts.
Fixed a bug that "Area" and "Line" FacetCharts could fail to draw all of the
data points, while showing labels for the missing points in the top-left corner,
in a case of all numeric data-axis values.
Fixed a bug that switching the chartType of a FacetChart from "Column" to
"Pie" and then back to "Column" causes extra space at the bottom of the chart.
Fixed a bug that the bars in a column FacetChart with all negative values could
be drawn over the chart title.
the chart is changed to the "Column" chartType and is made unstacked.
Fixed a bug that the legend in multi-facet pie FacetCharts could display values
of the wrong facet.
when the chartType, stacked, filled, or data properties are changed in IE9.
Fixed a bug that FacetChart pie charts could be drawn inconsistent with their
legend and that non-stacked column/bar charts could have overlapping clusters.
Fixed a bug that the scale on an extra axis of a FacetChart might not be
updated after changing the data.
Fixed FacetChart.getNearestDrawnValue() for clustered bar and column charts.
Fixed a bug that FacetChart may fail to update the scale on the value axis after
the stacked property is changed.
Fixed a bug that radar FacetCharts with gradient fill might be only partially filled when drawn on an HTML5 canvas.
Fix issue where record (field) in FieldPicker can't be expanded to access
editing of a summary/formula field if DBC.fieldPickerFieldProperties is
null or an empty list.
Add ability to delete a user summary or formula field in FieldPicker.
Enable focus styling for FieldPicker transport buttons.
Fix issue where Formula/Summary Editor causes error if opened after field in
active formula/summary is removed.
Firefox version 17 changed how heights are applied to TD elements in HTML5 rendering mode. Fixed an issue that
caused our listGrid cells to render too tall, causing unnecessary scrollbars in CubeGrids.
Fix CSS styling for rollovers/selection in TreeGrids in IE8/IE9 Standards Mode.
Fix issue in IE8 in Standards Mode where ListGrid cells are wrapped even though
wrapCells: true is not set.
Fix case where autoFitFieldWidths yields widths that are too narrow for certain
fields for a ListGrid where autoFitData is "vertical" or "both".
Fixed vertical centering of text in ListGrid cells in IE 7+.
Fixed an issue where print/export to PDF of ListGrids with canExpandRecords: true and sparse data would generate an empty document
Clean up grid column sizer after use. Removes surplus (off screen) DOM elements
Fixed an issue where cells would start to wrap, and expand their rows on rollover in IE8/IE9, with strict doctype set even if wrapCells was set to false.
Fixed a JS error in HiliteRule.getHilite() that occurred if the value of the criterion
was left blank.
Exposed the DBC Hiliting classes - HiliteRule, HiliteEditor and AdvancedHiliteEditor
Fixed Hilite handling for TileGrid
Fixed a sizing bug where layouts with shadows were not properly resized down if set to fill 100% of a parent and the parent was made smaller.
Fixed an issue where hidden tabBarControls left a gap in the initial layout of
the TabBar controls layout.
Fix for a bug where response to dataChanged would fail to update a grouped tree if grouped by primary key.
Optimized the code for remapping recordComponents when data changes and recordComponentPoolingMode is not "data" - significant improvement when removing a record or fetch-scrolling
Fixed a bug where ListGrid.removeData() would be ineffective - altered the type of the 'data' parameter from "Object" to "Record"
Fixed the issue that the ListGrid.dateFormatter was not applied if the record value was
Fix issue where ListGrid header context menu button press shows info from wrong column.
Fixed issue where trying to hide or unhide ListGrid columns may hang the browser with 100% CPU.
Fix issue where freezing or unfreezing ListGrid columns with autoFitData set to
"horizontal" or "both" can lead to an infinite loop.
Fixed initialSort for ListGrids with a DataSource but no specified fields array
Performance improvements for ListGrid autoFitFields behavior
Fixed redraw issue with paged grids following a page-changing scroll and an export to PDF
Fixed a case where focus could be dropped from the filterEditor while filtering in Mozilla FF only.
Improved the placement and sizing of SelectItem and ComboBoxItem dropdowns so
that the form item is not covered by it.
Fix for an issue where when cell selection is enabled and the visible columns in a grid change,
interactions such as drag selection could fail.
Fixed a bug whereby headerBaseStyle was not being properly applied to header buttons in some cases.
When alwaysShowEditors is true, render out the error icon for cells with validation errors
edited and then marked for removal.
Fix functions LG.getSummaryFieldValue() and LG.getFormulaFieldValue().
Fixed issue with ListGrid corner sort button not showing the correct sort state.
Add new API ListGrid.configureGrouping() for configuring multi-grouping mode.
Fixed a JS crash that could happen if expandRecord() was called before the grid was drawn
Fixed a JS crash with multiple-grouping and groupSummaries
Fixed a stack overflow when attempting to view/download a file from a record in a grouped ListGrid
Correctly flag the result of ListGrid.getFilterEditorCriteria() with a _constructor if its an AdvancedCriteria
Re-Introduced removeRecordClick(int rowNum). This may be called to programmatically simulate a user clicking the remove icon for a row.
Added MenuItem.disabledIcon property to allow a different icon to be used when item is disabled.
When showing the filterEditor for a listGrid, suppress the checkbox image from appearing in the filter editor of
boolean type fields marked as canFilter:false. This is a more obvious UI for a non-interactive field than an
unchecked (and non-interactive) checkbox image.
Fixed an issue filtering a tree grid with a substring search.
Fixed the Font and Font Size rich text editor controls in Chrome.
Fixed a sizing issue for RichTextItem that resulted in perpetual redrawing of scrollbars in Chrome
Fixed mouse-initiated focus/editing for RichTextCanvas in Chrome
Fixed RichTextItem editability in Opera
Fixed key handlers in RichTextEditor in Chrome
fixed ListGrid aria-posinset accessibility attribute to be 1-based rather than zero-based as mandated by the WAI-ARIA specification
When trying to remove the expanded section in section stack, only half
of it items are removed
ScreenReader fix - ensure that if a Button or subclass has its title changed, the new title shows up as the aria-label
and is read by ScreenReaders.
Ensure that a custom mouseOver implementation of a StatefulCanvas subclass (like button) only prevents standard
showRollOver styling behavior if the implementation explicitly cancels the event (returns false)
Resolved an issue where certain FormItems, including SectionItems, could render too wide, causing the DynamicForm to overflow its specified size unnecessarily.
Fixed rendered widths for FormItems that span multiple columns
once referenced in Java
Fixed an issue where if a tabBar control is made visible after having been hidden,
the newly-visible tabBar control was placed incorrectly beneath the first tab.
Fixed a stack overflow occurring when an invisible widget is added to a TabSet's
list of tabBarControls.
Fixed an issue where tabSet.tabDefaultWidth could impact width of left/right positioned tabs and tabDefaultHeight
could impact height of top/bottom positioned tabs, contrary to documentation. Now these propertes effect the
"length" of the tab-buttons but not the "breadth" of them, as intended.
Handle selecting a tabset tab whose pane has been destroyed.
Fixed a problem where "invalidateCache" was failing to behave correctly on databound TileGrids.
Fix an issue where TileLayouts that are not TileGrids show hidden tiles.
Fix stack overflow error during ToolStripMenuButton creation
Fix for showing separate Disabled and Over menuIcons for IconButtons that are showMenuIcon:true
Implemented clipping of TreeNode titles by ellipses if the text is too long to fit within the tree field column.
Fixed bug where TreeGrid.getNodeTitle() performs sometimes failed to properly format content in the tree-field.
Fixed vertical autosizing for AutoFitTextAreaItem in css3 mode
Fix problem where with CanvasItem, arguments were not passed to createCanvas().
Resolved some issues around Tab-index handling of CanvasItems [especially visible within modal windows]
Modified CanvasItem so that if showTitle is true and titleOrientation is "top" we now render the canvas at the
specified size rather than shrinking it to accomodate the title text. This matches the behavior of other form items
- the form item element doesn't shrink in order to leave more space for the title - and was reported as
a bug on the forums.
Changed the behavior of CanvasItem.storeValue(Object) to be more like FormItem.setValue(Object).
Fixed the orphaning of an externally created canvas used as the canvas of a CanvasItem and then reused in another CanvasItem passed directly into DF.setFields()
Rename ComboBoxItem.setSort() as ComboBoxItem.setPickListSort() to match the
SelectItem API, and mark the original API name as deprecated.
Fix for a bug where if you show a ComboBoxItem with a filter-editor on its picklist, certain interactions with
that pickList filter editor would inappropriately dismiss the entire pickList
Fixed pick list on ComboBoxItem with filter not allowing mouse click into filter.
Fix class reference in SelectItem/ComboBoxItem.setPickListSort() effecting dev mode.
ComboBoxItem FormItem NativeSelectItem SelectItem SpinnerItem StaticTextItem
Fixed so that FormItems do not show icons or pickers and largely render with TextItem.texBoxStyle when printing
Fixed a bug where DateItems would map one/two digit years to 1900
Fixed an issue where a DateItem's textBox could render too wide, obscuring or shifting the date-picker icon
Fixed the issue that DynamicForms were spacing form items apart so as to take up the entire height.
Fixed so that a DynamicForm initialized with a string valuesManager auto-creates a global VM instance
Fixed an issue where validateOnChange could cause focus to be removed from the field the user is currently editing
Fixed a JS error from item-event handling code when, for instance, a form-item has a click-handler that removes its item from the form, via form.setItems(), partway through the event chain
FileItem FormItem MultiFileItem
Inhibit multiple selections in the native file selector window shown when the user clicks a "Browse" button in a MultiFileItem component
Fixed a bug where a "between" operation on a date field in FilterBuilders would not properly set the time on the end-range date to 23:59
Fixed sortFields: false for FilterBuilder
Fixed a problem with a char array being set as a form item's value if the FormItem#setValue(Object) method is used.
Fixed an `UnsupportedOperationException' thrown by FormItem.setValue() when passing serializable objects.
Fixed FormItem.getValue() by having it return a List if the value of the form item is an array (also, if the value was set to a List).
Fixed FormItem.getValue() so that it returns a Java List object only if the form item accepts multiple values.
Altered the behavior of FormItem.getValue(). If the FormItem has multiple:true, there are some cases where the return type is now RecordList.
Wrapped the StretchItem type, which allows the StretchImg.items array to be set in Smart GWT.
Fixed a bug where SpinnerItems with no default value would fail to react to clicking on the spinner in some cases.
Fixed show/hide cycle for formItemIcons in IE
Fixed a bug with characterCasing:"upper" in IE 10 where spaces would disappear.
Fixed the "Unknown runtime error" thrown in IE 8-10 when FormItem.hideIcon() or hideAllIcons() was called.
Fix issue where setting icon.neverDisabled: true has no effect for icons
associated with a Formitem.
Allow validateOnExit FormItems to perform validation on a standalone form without
the value being changed. This primarily affects the required validator.
Updated the Javadoc of FormItem.getValue() with additional information pertaining to the case where the form item has multiple:true.
Exposed the TextItem.browserInputType attribute.
Fixed value hovers over TextItems in Firefox when the value is clipped.
Fixed a bug where pasting a value into a masked TextItem sometimes caused characters
to be lost.
FormItem TextItem TextAreaItem
write out aria-readonly flag for non editable form items with screenReader support enabled
Fix issue in MultiFileItem whereby deleted files are sometimes not removed from the visible list
Fixed an issue with the pickList of a SelectItem not moving with its SelectItem
if the SelectItem is moved (for example, if the browser window is resized and the
containing form is moved).
Fixed a bug where a databound PickList for a FormItem with an explicitly
specified sortField shows horizontal scrollbars instead of expanding to fit the
Removed spurious Combobox/SelectItem warning "fields and completeFields are null and there is no DataSource"
Fixed a case where a dataBound pickList with custom optionOperationId, and a
specified sort field, could cause 2 fetches - one with the wrong operation ID.
Fixed the widths of PickTreeItems with icons when displayed in FilterEditors
Fixed a bug that a menu item of a context menu on a form containing a PickTreeItem could draw menu icons twice on redraw in IE9.
Fixed race condition during initialization resulting in a crash that can occur if a PickTreeItem has a TreeMenuButton as its canvas.
Fixed a bug where MultiFileItems would fail to be properly disabled when the disabled attribute is set to true.
Modified MultiFileItem to always show the picker modally (so click outside the picker will not dismiss it).
Previous behavior would show the picker modally only if the user was editing an existing record - not when
editing a new record.
Fixed a problem tabbing through RelativeDateItems when the clickMask is up (For example when embedded in a modal
Fixed 'Now' preset option when selected from the list
Altered RelativeDateItem to reset it's baseDate from setValue() - fixes a bug where calling setValue("$now") after init would have no apparent effect
Fixed availability of the dateChooser icon in RelativeDateItems across enable/disable cycles
Altered RelativeDateItem.setValue() so that, when called with an actual date string, it parses the value and stores the date itself - fixes a bug where getDate() would return an unformatted date-string
Improved consistency of behavior within a RelativeDateItem when 'type' is not explicitly specified as either date or datetime.
Fixed the RelativeDateItem's display of the selected date in certain locales (e.g. ru_RU), which also fixes the date range picker used by the ListGrid filter editor in those locales.
Prevent RichTextItem from firing an unnecesaary changed event during initialization, and thus prevent forms including its value from getChangedValues() when it hasn't really been changed
Fixed a bug that SectionItem failed to open or close after Space or Enter
Added new attributes SelectItem.openOnSpace and openOnDownArrow
Fix issue where timeItem.hint is not displayed if timeItem.useTextField is false.
Fixed custom parseEditorValue implementations and unexpected behavior while typing in TimeItem
Performance optimizations - remove a bottleneck in the getCaller() method when deriving DataSource definitions from annotated classes
Fix rare and intermittent NullPointerException during FileAssembly
Fix TestRunner alertEmail/repeatEmail functionality for reporting batch results.
Added documentation about how to configure .pdf export to international characters.
Guard against a NullPointerException in server-side AdvancedCriteria
Fixed a bug in getFieldCriterion() / getFieldCriterions() where certain Criterion types would not be found (for example, isNull)
Fix a bug where fields of type "creatorTimestamp" were having their time elements stripped
Strip "serverObject" and "serverCondition" elements of validators defined in .ds.xml files out of the version of the DS that is delivered to clients
Fix a problem where database connections are remaining open until GC for a DSRequest that is executed multiple times
Fixed i18n support in a Component XML that uses <dataSource> tag in between <fmt:message> tags.
Fix ClassCastException arising when a SQLDataSource autoDerives from metadata derived from an unannotated Java class
Enable the Export options (XML, Excel, etc) and streaming responses when the response's data model is a JSONFilter
Only check operation-level security for related DataSources for fetch requests - it is inappropriate to do so for updates because we are never updating anything in the related DataSource
Switch DataSource pooling on by default
Fix over-zealous licensing enforcement that was preventing Pro users from using the "criteria" and "values" properties of an operationBinding
Fixed a bug in the 'exportImage' RPC built-in where padding around the drawn content of a DrawPane was not preserved.
Do not complain about missing primaryKey values for fields that declare a customInsertExpression, because we can assume that the point of the custom expression is to provide the missing value...
Fixed in-memory relations with composite FK issues.
Fixed in-memory relations. If FK field declares joinType="outer" records with null value for FK will be removed from dataSet, otherwise "outer" joinType logic will be applied and record will stay in dataSet.
Clear out a ThreadLocal variable to prevent Tomcat from issuing a warning during shutdown
Corrected query generation for JPA/HB data sources served from framework pool.
Fixed additionalOutputs for pooled data sources (JPA/HB).
Modify RestRequestParser to preserve literal null values passed up from the client. Fixes this issue: http://forums.smartclient.com/showthread.php?t=25492
Fixed count query syntax to satisfy JPA/JPA2 specification.
Fixed RESTHandler's ability to handle "postMessage" requests containing Unicode.
Fixed an issue with Server-Sent Events not working in Firefox and Chrome depending
on the value of the 'encoding' parameter to MessagingServlet.
Fixed line breaks when exporting to CSV for unix/mac systems.
Fixed export data issue when line break setting was ignored.
Fixed an issue with Excel exports via exportClientData() where the field names were
shown instead of the titles.
Fixed background colors when exporting to Excel.
Fix issue with the header row sometimes being blank in Excel exports, due to an apparent bug in POI
In Excel export, do not attempt to parse a value that ends with an alphabetic character as a number, to avoid a quirk of the Java number parser which treats a trailing "f" or "d" as a designator of precision (float or double) that should be ignored
Fixed a bug in RESTHandler's handling of DS requests containing Unicode when using the "postMessage" data protocol.
Throw a more specific and helpful exception if we cannot find a Java compiler when processing a server-side script where language="java"
Fix a problem when using sqlPaging:"sqlLimit" with MS SQL Server and sorting by a valueMapped field
Fix a bug in SQL generation where includeFrom fields and non-ANSI join style could lead to us generating invalid UPDATE and INSERT queries
Declaring SQLDataSource field type as text always converts value to string.
Declaring DSField type as text forces conversion to String for decimal/numeric DB types.
Extend the RESTHandler wire format so that datetime values may be specified as
JSON strings in three additional formats: "yyyy-MM-dd'T'HH:mm:ss", "yyyy-MM-dd kk:mm:ss",
and "'$$DATE$$':yyyy-MM-dd'T'HH:mm:ss". Additionally, date values may be specified
in "yyyy-MM-dd" format and time values may be specified in "HH:mm:ss" format.
Change HSQLDB binary storage strategy to BLOB(1G)
Change HSQL binary type from "binary" to "varbinary"
String ""false" were converted to Boolean.TRUE instead of "yes".
Fixed escaping of single-quote in Dutch localization.
Fixed the selectorFormat for the French locale.
Added the pickListCellDisabledDark and tallPickListCellDisabledDark styles to the
Enterprise, EnterpriseBlue, Graphite, and Simplicity skins.
Set an explicit defaultTabHeight of 22px for TabSets in Enterprise, Graphite and EnterpriseBlue
(applied to browsers that support css3 and those that don't). This resolves a difference in height of left/right
oriented tabs in tabsets between browsers.