Details
-
Task
-
Resolution: Fixed
-
Major
-
5.4.1
-
None
Description
Release notes http://www.smartclient.com/smartgwt/release_notes.html#4_0 :
Release Notes for Smart GWT 4.0 New Features General 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. SpinnerItem Added SpinnerItem.setNextValueHandler() and setPreviousValueHandler(). DataBoundComponent Added support for configuring a DataBoundComponent's hiliteEditor via the AutoChild system. See DataBoundComponent.hiliteEditor. 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 DataSource 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. RestDataSource support for "invalidateCache" flag for RestDataSource added ResultTree Added support for explicitly determining whether open state should be preserved when fresh data arrives within a databound tree via ResultTree.autoPreserveOpenState attribute RPCManager 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() Drawing 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. Date 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". Expose Date.get/setWeekendDays() Tree Added support for "showCollapsedGroupSummary" attribute for showing group summaries even when the group is collapsed. Gauge Added new properties and setters to configure a Gauge's border, and set the list of GaugeSectors. AutoTest 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 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 calendar.scrollToTime() 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 CubeGrid Allow creation of custom method for CubeGrid.makeChart(). DateChooser 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 FacetChart 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. FieldPicker Up/Down buttons added to move visible fields in FieldPicker. ListGrid 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 field. - 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: ListGrid.setFieldHeaderBaseStyle() ListGrid.setFieldHeaderTitleStyle() ListGrid.setFieldButtonProperties() ListGrid.setHeaderSpanButtonProperties() 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. ListGrid TreeGrid 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 ScreenReader Enhanced screenreader support: Added support for setting ariaRole for formItems and setting arbitrary ariaState attributes for both Canvases and FormItems Scrollbar added Scrollbar.showTrackButtons to control visibility of the buttons above/left and below/right of a scrollbar track TabSet 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() TreeGrid Added support for attributes openerIconWidth and openerIconHeight to TreeGrid. This enables opener icons (typically a [+] or [-] symbol) to be non-square. TreeMenuButton added TreeMenuButton (for localization only) TreeMenuButton Menu 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) ComboBoxItem PickList 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 FormItem - 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(). FormItem TextItem Added support for controlling the native HTML "autocorrect" and "autocapitalize" attributes on TextItems via browserAutoCorrect and browserAutoCapitalize SelectItem PickList Added support for arrow key navigation in dataBound SelectItems even before all options are cached. Validators Add the ability to specify "criteriaFields" on the isUnique validator, to reduce the scope of the uniqueness check PdfExport.java ResourceLoader.java 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. DSRequest.java 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. SQLDriver.java 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. SQLTableCreator.java 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. SQLTransform.java 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. BuiltinRPC.java DataSourceTools.java Hibernate data source generation now uses Hibernate configuration internals to acquire complete mapping information. Bug Fixes / Other Changes BmmlImporter 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. DataBoundComponent 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 ValuesManager 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. DataBoundComponent DataSource 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. DataSource Fix issue where certain field types in a DataSource, if present, may cause an error in DataSource.recordsAsText(). 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 all rows. 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. DataSource DataBoundComponent 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. MultiSortDialog Fixed i18n hover prompts for the Level Up and Level Down buttons in the MultiSortDialog RestDataSource 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 ResultSet 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 ResultTree Fixed a problem whereby databound treeGrids with loadDataOnDemand set to true could be confused if passed initial criteria in AdvancedCriteria format Visual Builder Make the DataSource pane of VisualBuilder show a per-project list of DataSources. Browser Enabled CSS3 mode by default in IE 9 standards mode and IE 10 and later when using the Enterprise, EnterpriseBlue, or Graphite skins. Messaging 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. FileLoader Fixed an issue whereby FileLoader.cacheFile() could append an unexpected query parameter onto the URL passed in while attempting to cache images. Developer Console 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 EventHandler 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. Date 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. RelativeDate 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. Selection Don't fire selectionUpdated with selectionType: "single" when re-selecting the same record in a DBC SimpleType 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 Time Fix a date/time formatting issue seen in SGWT Dev Mode with RelativeDateItem Fixed incorrect title for the top-most time-label in Calendars Tree 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 PNG Export 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. Button 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 Button Element 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. Calendar 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 Canvas 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. Canvas ListGrid Optimized _remapEmbeddedComponents() so it checks if a record has changed or moved before searching the data for it Chart Fixed a Javascript error that occurs in the expression `this.facets.length` in Chart.isMultiFacet() when a FacetChart has no data. ColorPicker Fixed a bug where ColorPicker defaultOpacity would not always be respected ComponentEditor Fixes issue in VisualBuilder where the "Events" editor would not maintain values. CubeGrid Fix issue where CubeGrid.getSelectedCells() returns null rather than the proper CellRecord[]. Fixed CubeGrid.hiliteFacetValue() Fixed a JS error in the SGWT wrapper for CubeGrid.hiliteCell() CubeGrid ListGrid Fixed hiliteFacetValue() for column-facets and enhanced to allow hiliting of any facetValue, not just innermost ones, for rows and columns DateChooser 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). DateGrid ListGrid Fixed interactive styling for disabled weekday and weekend fields in the DateGrid DetailViewer Support for DetailViewer setViewState() / getViewState() Fixed a bug where DetailViewer field.height could fail to be respected Drawing 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, and then calling hide() on the draw item caused a JavaScript error in IE. 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. DrawKnob Drawing Fixed a bug that knobs of DrawItems could stop working after DrawPane.zoom(). EdgedCanvas 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. Element 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 unexpectedly. 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. FacetChart Fixed a bug where adding a RangeChangedEventHandler to the zoomChartSlider of a FacetChart prevented the chart from redrawing the data after manipulations of the slider. Added MultiComboBoxItem.getValues() and setValues(Object...) for getting and setting the selected values. Fixed a JavaScript error occurring in multi-facet, zoomable FacetCharts that use labelCollapseMode "time". 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. Fixed a JavaScript error issued on bar/column FacetCharts that have some null data values. Fixed a JavaScript error in FacetChart in IE9 when showValueOnHover is true and 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. Fixed a JavaScript error in FacetCharts with `showValueOnHover: true` occurring 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. FieldPicker 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. FormulaBuilder ListGrid Fix issue where Formula/Summary Editor causes error if opened after field in active formula/summary is removed. GridRenderer 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 Fixed an issue where multiple rapid repeated clicks in the same position on a TreeGrid could cause a JavaScript error 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. HiliteEditor 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 HiliteEditor TileGrid Fixed Hilite handling for TileGrid Layout 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. Layout TabSet Fixed an issue where hidden tabBarControls left a gap in the initial layout of the TabBar controls layout. ListGrid 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 a string. 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 Fixed a JavaScript error in ListGrid.saveEdits() when a new, unsaved row is 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. Fixed a JavaScript error when calling ListGrid.saveAllEdits() on a ListGrid with deferRemoval enabled. 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. Menu Added MenuItem.disabledIcon property to allow a different icon to be used when item is disabled. RecordEditor 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. RichTextCanvas 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 ScreenReader fixed ListGrid aria-posinset accessibility attribute to be 1-based rather than zero-based as mandated by the WAI-ARIA specification SectionStack When trying to remove the expanded section in section stack, only half of it items are removed StatefulCanvas 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) TableResizePolicy 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 TabSet Fixed an issue whereby getTab() would return null for a tabSet defined directly in JavaScript (or via componentXML) 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. TileGrid Fixed a problem where "invalidateCache" was failing to behave correctly on databound TileGrids. TileLayout Fix an issue where TileLayouts that are not TileGrids show hidden tiles. ToolStripGroup Fix stack overflow error during ToolStripMenuButton creation Fix for showing separate Disabled and Over menuIcons for IconButtons that are showMenuIcon:true TreeGrid 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. AutoFitTextAreaItem Fixed vertical autosizing for AutoFitTextAreaItem in css3 mode CanvasItem 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). CanvasItem DynamicForm 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() ComboBoxItem 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 DateItem 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 DynamicForm 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 FilterBuilder 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 FormItem 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. Added FormItem.getValueAsRecordList(). 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. FormItem TextItem 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 MultiFileItem Fix issue in MultiFileItem whereby deleted files are sometimes not removed from the visible list PickList 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 data. 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. PickTreeItem 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. RelationItem Fixed a bug where MultiFileItems would fail to be properly disabled when the disabled attribute is set to true. RelationItem MultiFileItem 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. RelativeDateItem Fixed a problem tabbing through RelativeDateItems when the clickMask is up (For example when embedded in a modal Window) 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. RichTextItem 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 SectionItem Fixed a bug that SectionItem failed to open or close after Space or Enter keypresses. SelectItem Added new attributes SelectItem.openOnSpace and openOnDownArrow TimeItem Fix issue where timeItem.hint is not displayed if timeItem.useTextField is false. Fixed custom parseEditorValue implementations and unexpected behavior while typing in TimeItem DataSourceAnnotations.java Performance optimizations - remove a bottleneck in the getCaller() method when deriving DataSource definitions from annotated classes FileAssembler.java Fix rare and intermittent NullPointerException during FileAssembly TestRunner.java TestRunnerLauncher.java Fix TestRunner alertEmail/repeatEmail functionality for reporting batch results. PdfExport.java Added documentation about how to configure .pdf export to international characters. AdvancedCriteria.java Guard against a NullPointerException in server-side AdvancedCriteria AdvancedCriteria.java Criterion.java Fixed a bug in getFieldCriterion() / getFieldCriterions() where certain Criterion types would not be found (for example, isNull) DataSource.java 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 DataSource.java DataSourceDMI.java Fix over-zealous licensing enforcement that was preventing Pro users from using the "criteria" and "values" properties of an operationBinding SvgImage.java Fixed a bug in the 'exportImage' RPC built-in where padding around the drawn content of a DrawPane was not preserved. DSRequest.java 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. PoolableDataSourceFactory.java Clear out a ThreadLocal variable to prevent Tomcat from issuing a warning during shutdown HibernateDataSource.java Corrected query generation for JPA/HB data sources served from framework pool. Fixed additionalOutputs for pooled data sources (JPA/HB). IJSParser.java Modify RestRequestParser to preserve literal null values passed up from the client. Fixes this issue: http://forums.smartclient.com/showthread.php?t=25492 JPADataSource.java Fixed count query syntax to satisfy JPA/JPA2 specification. JSParser.jj Fixed RESTHandler's ability to handle "postMessage" requests containing Unicode. MessagingServlet.java Fixed an issue with Server-Sent Events not working in Firefox and Chrome depending on the value of the 'encoding' parameter to MessagingServlet. DataExport.java Fixed line breaks when exporting to CSV for unix/mac systems. Fixed export data issue when line break setting was ignored. ExcelDataExport.java 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 RestRequestParser.java Fixed a bug in RESTHandler's handling of DS requests containing Unicode when using the "postMessage" data protocol. ISCJavaCompiler.java Throw a more specific and helpful exception if we cannot find a Java compiler when processing a server-side script where language="java" SQLOrderClause.java SQLServerDriver.java Fix a problem when using sqlPaging:"sqlLimit" with MS SQL Server and sorting by a valueMapped field SQLTableClause.java Fix a bug in SQL generation where includeFrom fields and non-ANSI join style could lead to us generating invalid UPDATE and INSERT queries SQLTransform.java 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. SQLWhereClause.java 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. SQLImport.java Change HSQLDB binary storage strategy to BLOB(1G) Change HSQL binary type from "binary" to "varbinary" DataTools.java String ""false" were converted to Boolean.TRUE instead of "yes". Localization Fixed escaping of single-quote in Dutch localization. Fixed the selectorFormat for the French locale. Skinning 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.