Change log of this release is available here: https://github.com/genexuslabs/gxui/releases/tag/v2.0.1
- Edit fields with Suggest are now supported.
- Readonly Blob columns are now supported.
- Grouping summaries values were not considering the picture for formating.
- If some columns Visible property was changed in a user event, the grid wouldn't render properly.
- Grid state is now saved when the first change in its state is made, not when it's rendered.
- Column titles couldn't be changed in user events.
- State of expanded nodes was not being stored
- Many fixes to fully support Web User Experience=Smooth objects
- New GeneXus X Evolution 3 property "ColumnClass" is now supported
- Focus on an input field was lost when opening a prompt if the input field was inside a region of a gxui.Layout control.
- Now, if the "Time format" property of the language is "12 hour format", DateTime attributes/variables show AM/PM.
- Fixed automatic paging in GeneXus X Evolution 3, when "Web User Experience" property is Smooth.
- Grids bound to SDTs or BCs weren't working.
- If the browser locale was different from the KB language, numeric fields where rendered with wrong decimal and thousand separators.
- Fixed performance issues when a gxui.TabPanel control had 12 or more tabs pages.
- Node editing is now supported.
- New RevertTablePaddingReset property. If true ExtJS CSS reset of TH and TD elements padding is reverted.
- New RevertTableSpacingReset property. If true ExtJS CSS reset of TABLE elements border-spacing and border-collapse properties is reverted.
- Controls inside an object in a module weren't working
- Fixed issues with popup sizing when outer-most control was a gxui.TabPanel.
- Fixed sizing issues when AutoWidth=True or AutoHeight=True
- Fixed issues with Refresh button.
- Fixed sizing issues when AutoWidth=True or AutoHeight=True
- Added ExtJS 4.2 support.
- An alert box is shown in the browser if ExtJS is not found.
- A defensive control is made when a object using ExtJS is opened, to verify if ExtJS and GxUI are correctly installed. A message is shown in the output tool window if a problem is found.
- A new mechanism for updating fields is introduced. With this new feature, when editing begins, a small floating dialog will be shown for the appropriate row. Each editable column will show a field for editing. There is a button to save or cancel all changes for the edit.
- To enable the new mechanism, change EditModel property to Row.
- ComboBox items are now supported.
- Toolbar Items now have the Width property.
- New SelectNextNode method: selects the node after to the selected one.
- New SelectPreviousNode method: selects the node before the selected one.
- New DeleteNode method: deletes a node from the tree.
- New SetNodePropertyBoolean: Updates a boolean property of a node.
- New SetNodePropertyString: Updates a string property of a node.
- New SetNodePropertyNumber: Updates a numeric property of a node.
- ExtJS CSS reset changed table's cellpadding and cellspacing, altering what the user configured in GeneXus.
- Panel title bars were shown over GeneXus activity feedback mask (grey mask shown when a server side event is executed).
- Toolbar wasn't working inside a gxui.Layout region.
- Height and Width properties were ignored. To make the control calculate its dimensions automatically, use the 'auto' value.
- Regions state wasn't persisted correctly.
- If the first editabled field of the form was inside a gxui.Layout, it wouldn't get focus.
- Grouping wasn't working when the grid was bound to a SDT or BC.
- Grids that were initially rendered empty, were always readonly, even though some columns weren't read only.
- Image column width was ignored.
- Image column events could always be executed, despite the Enabled property value.
- Paging toolbar wouldn't be shown if OnFirsPage, OnPreviousPage, OnNextPage or OnLastPage were defined.
- Changes made on checkbox columns weren't persisted.
- Despite setting UseThemeClass=True, the columns wouldn't get the GeneXus Theme class assigned.
- Drag&drop from a gxui.Treeview control wasn't working properly after the grid was auto-refreshed when filters changed.
- ForceFit property was being ignored.
- OnSortChange event wasn't being fired when RemoteSort=True.
- Empty Dates/DateTimes displayed 12/31/99 instead of empty values. (SAC #34908)
- If header grouping was enabled, the width of the columns would change when a user event was fired.
- When LazyLoading=False, the Reload(node) method always reloaded the whole tree.
- New ToolbarPosition property for selecting the position where the toolbar will be docked (top, right, bottom or left of the panel).
- New StatusText property allows setting a text to be shown at the right side of the paging bar. Useful to show status messages or a text indicating the current page and the page count.
- New OnSortChange event. It is fired when a column's order is changed.
- New Value property for gxuiToolbarItem SDT to initialize Edit items value.
- Methods that where invoked from Start event didn't work.
- An error was shown in IE8 and older versions because of the mechanism used to get GeneXus version.
- If an item of type Text was changed in a user event, the items wasn't refreshed.
- ChangeToolbar method wasn't working properly.
- If AutoWidth or AutoHeight was true, when a user event was fired, there was a flickering effect in the panel.
- Dates weren't correctly formatted when the picture was 99/99/9999.
- Click event in checkbox columns wasn't working.
- Font-weight and Text-decoration where ignored.
- Checkboxes appeared in each node when a user event was fired.
- If href property was specified on a node, the text looked like a default A tag.
- When the Refresh method was called, the values of Width and Height properties were inverted.
• The Pinned property has been removed because it is no longer supported in version ExtJS 4.x.
• The Draggable property has been removed because it was initially included for experimental purposes.
• New HeaderPosition property makes it possible to indicate where the header is drawn (Top, Bottom, Left, Right).
• New CollapseDirection property makes it possible to indicate the direction where the header is drawn (Top, Bottom, Left, Right).
• The control is not migrated to ExtJS4.x and it is removed from the library. gxui.GridExtension (Grid Custom Render) should be used instead.
• New extensibility mechanism is offered in order to add new types of items.
• New: Support has been added to group items (http://dev.sencha.com/deploy/ext-4.1.0-gpl/examples/toolbar/toolbars.html)
• New properties for toolbar items:
o Scale: Button size (small, medium, large)
o RowSpan: Number of rows taken by the item
o ColSpan: Number of columns taken by the item
o IconAlign: Location of the icon within the item
o ArrowAlign: Location of the arrow in items with associated menus.
• The properties NorthDragDropMode, CenterDragDropMode, SouthDragDropMode, EastDragDropMode and WestDragDropMode have been removed because they had been included for experimental purposes.
• The properties NorthCollapseMode, CenterCollapseMode, SouthCollapseMode, EastCollapseMode, WestCollapseMode, NorthCollapsedMargins, CenterCollapsedMargins, SouthCollapsedMargins, EastCollapsedMargins, WestCollapsedMargins, NorthAutoHide, CenterAutoHide, SouthAutoHide, EastAutoHide and WestAutoHide have been removed because they are not supported by ExtJS4.
• The properties CenterWidth, CenterMinWidth and CenterMaxWidth have been removed because they made no sense for the Center region and were confusing. The Center region takes all the available space.
• The Scroll property has been removed because it is no longer supported in version ExtJS 4.x.
• The GridHeight property has been removed because it's no longer necessary. The Height property value is used.
• The AutoHeight property has been removed because the grid’s Autoresize property is now used.
• Improvements to make render more usable for the web form editor.
• The Language property has been added in order to set the language of the standard texts for ExtJS at design time.
- OpenTab method now accepts a parameter indicating if the newly created tab is closable.
- Links can now be specified for tree nodes, using the the href node property.
- New RemoteSort property allows the user to indicate if the column sorting should be done on the client-side or on the server side. When RemoteSort is set to true (default value), the grid is sorted on the server side, by running again the Load event and using conditional order clauses and the SortField and SortOrder properties. When RemoteSort is set to false, the grid is sorted on the client side. Note that when the grid is sorted on the client side, only the current page records are sorted whereas when the grid is sorted on the server side, all the data set is sorted.
- The Menu and SplitButton items Disabled property was ignored.
- Now, if the grid page changes, the row selection is reset.
- The grid wouldn't load if a prompt rule was specified on one of the columns.
- When a column control type was a checkbox, the width was ignored.
- The Refresh button on the bottom of the grid wasn't working when webpanel's "Automatic refresh" property was set to true.
- New CenterWindow() method, centers a panel that is shown as a window (ShowAsWindow=True)
- When the panel didn't have a toolbar and the ChangeToolbar method was called, a runtime error was thrown.
- Frame property was renamed to Border
- Sometimes in IE the text of the column header wasn't visible.
- Combo box control width was ignored.
- Thousands separator of the picture was ignored.
- When a value was selected in a combo box, the user had to press enter or click outside the combo to confirm the selection. Now the selection is completed when the user selects the value.
- Left Fill was ignored.
- If the Reload method was called twice in a short span of time, sometimes the tree would show each item twice in the structure.
- Some support files couldn't be copied to the target environment directory by GeneXus.
- New SetNodeText(id, text) method allows changing the text of a node
- New ClearAllNodes() method allows removing all the tree nodes.
- When changing a cell, if there were hidden columns, the value was incorrectly saved.
- Paging mechanism improvements
- Paging wouldn't work when inside a web component.
- Toolbar items with no type specified couldn't be refreshed with UpdateToolbar method.
- Now it is possible to change the title of a region in runtime.
- Now it is possible to change the border property in runtime.
- Nodes couldn't be edited in Internet Explorer
- Numeric fields with decimal values showed wrong values in languages where the decimal separator was different than "." (e.g. Spanish, Portuguese)
- The Click event attached to a field with control type "Combo box" was fired when the cell was selected. Now it is fired when the user changes a value.
- There were some problems when selecting values from a combo box field when its type was character.
- SelectedNodeChecked property: indicates if the selected node has its checkbox checked (when enableCheckBox = true)
- UncheckedNodes properties: holds the list of the nodes that have not been selected.
- Border property: indicates if the panel border should be drawn. This is helpful when having nested components.
- Border property: indicates if the panel border should be drawn. This is helpful when having nested components.
- When checkboxes are checked, selectedNode property now hold the node id value.
- When right clicking a node it's now selected only if a context menu has been defined
- AutoWidth and AutoHeight property were not working.
- AutoWidth and AutoHeight default value is false from now on (the same default that ExtJs uses).
- OnlineActivate and column events were not working.
- Improvements when grids uses autoresize.
- New UseThemeClasses property lets you specify if the grid and grid columns will use GX Theme classes (default to false)
- New ShowItem, HideItem, EnableItem and DisableItem methods. These methods can be used to show, hide, enable and disable a toolbar item.
- New ShowItem, HideItem, EnableItem and DisableItem methods. These methods can be used to show, hide, enabled and disable a toolbar item.
- Now it's possible to specify if a panel is shown as a modal window (ShowAsWindow = True and Modal = True)
- New OnClose event is fired when a panel shown as a window is closed.
- Refresh property is deprecated. Now setting the Refresh property to true is no longer needed for changes on Width, Height, Title, ToolbarData and Visible properties to take place in a user event.
- New IsTabDirty method allows asking if a tab is in dirty status.
- New CloseTab method allows closing a tab.
- New SetTabTitle method allows changing the title of a tab.
- Now it's possible to associate data (an SDT) to a node. The SDT can be associated while loading the tree by adding the "data" property to gxuiTreeViewNode or using the new SetNodeData method. The data associated to the selected node can be read through the SelectedNodeData property. The gxuiTreeViewNode SDT doesn't have the data property because it can have any type the user wants.
- New StartEdit method starts the editing process and shows the editor.
- New CancelEdit method cancels the editing process and hides the editor without persisting any changes.
- If a grid's stateful property was set to False and a column was initially rendered with Visible = False and after a user event it was set to Visible = True, the column would appear as the last column of the grid, regardless its original position.
- The columns AutoResize property was ignored.
- Submenu items properties changes in runtime were igonred.
- When the Reload method was invoked specifying a node that wasn't loaded in the tree, a reload from the root node was performed.
- The Visible property was ignored when loading the webpanel for the first time.
- New TabClick event. It's fired every time a tab is clicked regardless if it is the active tab or not.
- New BeforeTabClose event. It's fired before a tab is closed. The close operation can be cancelled by setting the CancelEvent property to true.
- New SetTabDirty method. It allows marking a tab as dirty.
- The refresh button at the bottom of the grid wasn't refreshing the grid data.
- The grid cells couldn't be edited if the grid was initially empty.
- The Show() method wasn't showing the menu.
- New property SelectedRow, allows you to set and read the index of the selected row. First selected row has index .
- In IE, the text of the columns was not seen until the mouse is passed over.
- Like a check box column, GX cannot define a width to combo box columns. For that reason, it ignores the width indicated by GX for combos and uses the DefaultColumnWidth.
- Cell tooltips are now shown
- Column locking was not working properly when there was an editable column.
- Row was not properly selected when showing data grouped by a column.
- Click event for Combo and CheckBox was not executed.
- Separator and SeparateAll were not working.
- When the panel is displayed as a window (ShowAsWindow=True), variables in the panel were not sent to the server when a user event was executed.
- An initial value for z-index property is set for gxui.Panels. The value set is lower to the one used by GX popups so gxui.Panels are shown behind GX popups.
- If the check box of the nodes were set in a user event, property CheckedNodes was not updated accordingly to what was set in the user event.
# New User Controls:
- gxui.Menu: These new UC shows a menu and is an implementation of Ext.menu.Menu. Menu items are defined with a collection of gxuiButton. The available menu item types are defined in the gxuiMenuItemTypes domain. When a menu item is clicked, the ItemClick event is fired. The ItemClickedId property has the id of the selected menu item. To show the menu, use the ShowMenu or ShowMenuXY method.
- gxui.EventObject: These new UC has no user interface an its purpose is to let the user know the following things when a user event is fired:
- Which key was pressed (Key property)
- Mouse position (X and Y properties)
- Which mouse button was pressed (MouseButton property)
- If the ALT, CTRL or Shift keys were pressed (AltKey, CtrlKey and ShiftKey properties)
- Tree nodes can show a checkbox to enable users to select nodes. Each node has a "checked" property to set if its checked or not. The "CheckedNodes" property of the user control has the list of checked nodes. Each time a node checkbox is changed, the CheckChange event is fired.
- New event ContextMenu is fired when a node is right clicked.
- New ExpandAllNodes and CollapseAllNodes methods.
- New GetNodeParentId method returns the id of the parent of a given node.
- New event NodeOver is fired when, during a Drag&Drop operation, a tree node is hovered. It lets the user decide if a drop is allowed on the hovered node by setting the DropAllowed property (true by default). This event should be programmed to run on the client side.
- Now grid cells can be edited. The values can be accessed through a For Each Line command. Currently it can only be used in WebPanels and no events are fired when a cell is changed (e.g. IsValid event). Radio button editors are not supported.
- New column property "Hidden" lets the user indicate if the column will be initially rendered hidden.
- New event ContextMenu is fired when a row is right clicked.
- New "PrimaryButtonOnly" property. Set to false to allow drag and drop to start with any mouse click.
- New Collapse and Expand methods.
- Grid columns menu options texts where shown over options icons on IE7
- The value of AllowHovering property was incorrectly ignored.
- If a user event was executed, the state of the grid was lost.
- Title bar was not shown if no title was specified.
- Collapsed property value was not updated when the panel was collapsed or expanded.
- NodeEdit event was always fired, even when the value was not changed.
- Buttons with no icon specified, had an unneeded left margin.
- SelectRow and DeselectRow methods supported numeric and character parameters (if numeric, it was asumed that an index was specified, if character, it was asumed that a row id was specified). This is not allowed by GX anymore, so to select or deselect a row by index, the SelectRowByIndex and DeselectRowByIndex methods should be used.
# This version requires GeneXus X Evolution 1 Upgrade #1. For previous versions of GeneXus, you should use a previous gxui version (you can download previous versions from http://marketplace.genexus.com ).