You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Wrapped column headers no longer overflow bottom of cell. Overflow is clipped.
Clicking to right of last column no longer throws an error.
Zooming out (e.g., 80%) now properly clears the grid before repainting.
Tree-view plug-in improvements:
Now sorts properly and maintains a sorted state:
On any column sort, applies a group sorter which sorts the column as usual but then automatically stable-sorts each level of group starting with deepest and working up to the top level. (Stable sorting from lowest to highest level grouping is an efficient means of sorting nested data, equivalent to starting with the highest groups and recursing down the tree to each lowest group.)
Because raw data order is assumed to be undefined and grouping structure requires that groups be sorted, automatically applies an initial default sort to the "tree" column (name or index specified in treeColumn option passed to TreeView constructor; defaults to 'name'). If a default sort column is defined (name or index specified in defaultSortColumn option; defaults to the tree column), the initial sort is applied to that column instead.
Automatically reapplies the default sort when user removes the sort. User can change the sort to some other column or columns, but if user removes the current sort (whatever that may be), tree column sort is added back. This guarantees that the groups will always be sorted so the drill-downs work as expected.
Stand-alone tree column. To put the drill-down controls in a column of its own, do all of the following steps:
Add a blank column to your data which will be your tree column to hold just the drill-down controls.
Specify the name of your blank column to the TreeView constructor in options.treeColumn. Alternatively, call it 'name' (the default).
Set the new unsortable property for your tree column to true so it cannot be sorted. As it is all blank, there is nothing to sort.
Set the active column order (via the grid's columnIndexes property). You want your blank column to appear first (i.e., on the left). Exclude the ID and parentID columns (unless you want these to appear).
Make the blank column (now the left-most column) a fixed column (via the grid's fixedColumnCount property).
Specify some other column for the initial sort (in option.defaultSortColumn). This will typically be the column that identifies the group.
Usage, for example: grid.behavior.setHeaders({ lat: 'Coords|Lat.', long: 'Coords|Long.' })
The shared option GroupedHeader.delimiter specifies the delimiter; the default value is the vertical bar character: '|'
setHeaders is a convenience function that simply updates the headers of the named columns while increasing the header row height to accommodate the maximum level of grouping. The above example has only a single level of grouping; the group label is "Coords".
Calculated columns are defined by assigning a "calculator" function to the column's calculator property. All cells in the column become calculated values.
Data for the column's cells may be undefined; but if defined, it is available to the calculator function, but otherwise ignored.
If the cell value is a function, however, legacy behavior is maintained: This function takes priority over the column function.
Upon selecting a new operator from a column filter cell's dropdown, rather than inserting the new operator at the cursor position, the old operator is now replaced by the new one the operator. If the column filter cell contains several expressions (i.e., concatenated with and, or, or nor), the operator in the expression under the cursor is replaced.
Group view
Aggregations and Group View have been added as plug-ins and removed from HyperGrid core.
The aggregations plug-in has the same behavior as before while the Group View is a view of the original columns, with drill downs in the tree cell for expanding the groups provided.
Hypergrid now only loads with the original data source, the filter datasource as defaults, and the sorter data source.