AdapTable Rx (Version 9) was released on 14 July 2021.
AdapTable Rx is a major release containing many improvements both to core functionality and to how AdapTable is accessed by developers.
AdapTable Rx includes some breaking changes which are listed below
The changes in AdapTable Rx can be summarised as follows (full details are provided below):
Predefined Config now contains only objects which can change during Application run-time
Adaptable Options contains behaviour and functionality that will never change post-creation
Many new Events have been added to improve the ability to react to changes in Adaptable and AG Grid
These include the new Adaptable State Changed Event which replaces - and improves on - Audit Log
The User Functions section has been removed, as all the functionality it contained is now available in Adaptable Options
The Adaptable Parser has had significant improvements, including:
Team Sharing has been enhanced:
- Offers Active Sharing where Shared Entities remain linked between users
- When a Shared Entity referencse other objects, these too will be (automatically) shared
Instantiating the Angular Wrapper has been simplified and improved
Signficant enhancements to key UI objects to ensure a better usability experience, including:
- Improvements to the Wizard and new common, re-usable UI objects (e.g.
- Cell Editors - Numeric Editor / Date Picker provided automatically when editing relevant cells
- Read-Only Cells so that editability can be set at individual cell level
- Use of Infinite Table - a 3rd party React Grid - for rendering tabular data inside AdapTable
2 Enhancements to the Finance Plugin:
Auto Generated Primary Keys are now available - but only to be used if absolutely necessary
Core functionality in AdapTable remains divided into discrete sets called Modules (previously called 'Functions').
As before, these can have Entitlements set, in order to manage user accessibility.
As part of the move from 'Functions' to 'Modules', some Modules have significantly new functionality - these are listed below.
Other Modules have been merged. These include:
|Old Module||Merged Into|
|Gradient Column||Format Column|
|Percent Bars||Format Column|
Alerts have received a number of major enhancements in AdapTable Rx including:
- Alerts can be triggered by Observable and Aggregation Expressions
- Flashing Cells and Updated Rows have been merged into Alerts as Flashing Alerts
- Cell Validation has been moved into Alerts as Prevent Edit Alerts
- Improved Alert Wizard makes it easier to create and manage Alert Definitions
- An Adaptable Form can be displayed in an Alert Notification
- Alert Notification can contain Adaptable Buttons that perform actions when clicked
- Actions can be provided by Adaptable (e.g. undo, highlight cell, jump to cell) or by user
Conditional Style has these enhancements:
- A new Rule property to determine whether the Style should be displayed. It consists of either:
- Improved Wizard so creating Conditional Styles is much easier
The Dashboard has received some modifications:
- The 'VisibleButtons' property in Dashboard Config has been renamed to
- Custom Toolbars are now provided via Dashboard Options (and no longer require Framework Components)
- Custom Dashboard Buttons are now provided via Dashboard Options
The Tool Panel has received some minor changes:
- The 'VisibleButtons' property in Tool Panel Config has been renamed to
- The 'VisibleToolPanels' property in Tool Panel Config has been renamed to
- The 'AvailableToolPanels' property in Tool Panel Config has been removed
- All other properties in Tool Panel Config have been moved to Tool Panel Options
These changes to Tool Panels are contained in version 9.0.5 published a few days after the main release
Export has received some minor improvements:
Visual Data report has been renamed Current Data; it exports whatever data is in the Grid (ie. filtered)
The new Visual Data report will export all data in the grid with full styling and grouping
This report can only be exported to Excel
Export Destinations now appear in a separate dropdown, allowing you to select a 'default' destination
Devs are able to stipulate in Export Options whether to export the formatted value or the raw data value - either for whole grid or by Column data type (with special provision for dates)
A timestamp can be appended to the exported file for easy identification purposes
Format Column has many new features including:
- Gradient Style - previously a separate Module but now a Numeric Cell Style option
- Percent Bar Style - previously a separate Module but now a Numeric Cell Style option
- Checkbox Columns - boolean columns can be displayed as a CheckBox
- Presets for common Display Formats
Free Text Column
Free Text Columns now have a
Possible values are 'String' (the default), 'Number', 'Boolean' or 'Date'
AdapTable provides a cell editor that is suitable for the data type (e.g. it's Date Picker for 'Date' columns)
The Shortcut module now only operates on numeric columns.
The previous date-input functionality is available via the
datepickerButtons property in the Date Picker
One of the most exciting new features in AdapTable Rx is to Queries and Expressions.
As the name implices, in AdapTable Rx the parser is now able to run reactive-type Expressions, which provide users with a very powerful range of querying functionality.
Reactive Expressions can be written at design-time or run-time, either by hand or using the Expression Editor
There are 2 types of Reactive Expressions: Observable and Aggregation.
Observable Expressions react to changes (or lack of changes) in data, either per row or for whole grid.
This allows you to create expressions (and show alerts) for questions like:
- has this cell changed 3 times?
- is this the highest value its been today?
- has this not changed in the last 3 hours?
Aggregation Expressions provide a way to sum numeric columns and then perform queries against them.
For instance you can run a query (with an Alert) to say tell me if the total for the PnL column exceeds 50M in rows where Status is Active.
The Adaptable Parser continually offers additional functions - in response to new functionality and user requests.
Some of the new functions in AdapTable Rx include:
- QUERY - enables you to provide a Named Query as an argument in an Expression
- WHERE - used in Observable and Aggregtion Expressions to limit the Data Set used
- String manipulation functions - LEN, UPPER, LOWER, CONCAT
Team Sharing has some useful new features notably:
A key focus is AdapTable Rx is to move settings that will only be configured at design-time into Adaptable Options, leaving Predefined Config containing just objects that can change at run-time.
To this end a number of new sections have been added, a few removed, and some have important new properties.
The new and renamed Adaptable Options sections are:
|Alert Options||Manages Alerts Notification settings and Flashing Alerts default properties|
|Dashboard Options||Replaces properties from Dashboard section in Predefined Config|
|Entitlements Options||Replaces Entitlements section in Predefined Config with identical functionality|
|Menu Options||Replaces Menu-related section in Predefined Config with improved functionality|
|System Status Options||Option for managing System Status Module|
|Search Options||Now contains all properties from the previously separate Query and Filter Options|
|Tool Panel Options||Replaces properties from Tool Panel section in Predefined Config|
Merged / Removed Options
These sections in Adaptable Options are now no longer required or have been merged into a common section:
|Audit Options||Audit Log is replaced by the superior Adaptable State Changed Event|
|Filter Options||Merged into Search Options - all functionality remains the same|
|Query Options||Merged into Search Options - all functionality remains the same|
|Framework Components||Replaced by Custom Toolbars in Dashboard Options|
Some Adaptable Options sections have important new properties that have been moved from Predefined Config. These include:
|Options Section||Property||Previous Predefined Config Section|
|User Interface||User Interface|
|User Interface||User Interface|
|User Interface||Action Column|
Action Columns now wrap an Adaptable Button and have been much simplified
As stated above some sections in Predefined Config have been removed for 2 reasons:
- Some sections which never change at run-time have been merged into Adaptable Options
- Some sections have been consolidated to reduce complexity and improve the user experience
Removed Config Sections
The full list of sections removed from Predefined Config is:
|Action Column||Now set in User Interface Options|
|Calendar||Now set in General Options|
|Cell Summary||Now set in General Options|
|Entitlements||Now set in Entitlements Options|
|Flashing Cell||Merged into Alerts Module|
|Gradient Column||Merged into Format Column Module|
|Percent Bar||Merged into Format Column Module|
|System Status||Now set in System Status Options|
|Updated Row||Merged into Alerts Module|
|User Interface||Primarily ported to User Interface Options|
Updated Config Properties
Some properties in Predefined Config sections have been moved:
|Filter / ||Search Options|
AdapTable automatically updates those sections of Predefined Config likely to have been created or edited at run-time to be compatible with the new objects in AdapTable Rx. These include:
|Old Config||How Updated by AdapTable|
|Conditional Style||Merges 'Predicate' & 'Expression' properties into Conditional Style |
|Calculated Column||Changes 'ColumnExpression' to Calculated Column |
|Export||Changes 'Expression' into new Report |
|Percent Bar||Updates them into Format Column |
|Gradient Column||Updates them into Format Column |
|Alert||Updates old Alerts to use new Alert objects|
|Flashing Cell||Creates new Flashing Alerts objects|
|Updated Row||Creates new Flashing Alerts objects|
Events have been improved significantly in AdapTable Rx both in terms of syntax and use cases supported.
The previous FDC3-type messaging has been removed, along with the 'xxxArgs' class for each Event.
In its place there is a single
xxxInfo class fired for each Event containing all relevant data.
Many Events have been added (or renamed) while others, which are now longer relevent, have been removed:
The new and renamed Events are:
|Adaptable State Changed||Any state changes in Adaptable: Replaces Audit Log|
|Cell Changed||Any cell in AdapTable is updated (either by user or ticking data)|
|Dashboard Changed||Any change is made to Dashboard toolbars, visibility, or mode|
|Flashing Alert Fired||a Flashing Alert is triggered|
|Grid Data Changed||The rows collection is changed in the Grid's Data Source|
|Layout Changed||A Layout changes (previously 'LayoutUpdated')|
|System Status Message Displayed||A System Status message is shown|
|Team Shared Entity Changed||An Active Shared Entity in Team Sharing has changed|
The removed Events are:
|Action Column Clicked||Action Column now uses Adaptable Buttons which has an `onClick' function|
|Layout Updated||Replaced by new Layout Changed Event|
|Dashboard Button Clicked||Dashboard now uses Adaptable Buttons which has an `onClick' function|
|Toolbar Button Clicked||Toolbars now contain Adaptable Buttons which has an `onClick' function|
|Toolbar Visibility Changed||Merged into Dashboard Changed Event|
|Validation Failed||Merged into Alert Fired Event|
State Changed Event
Perhaps the most significant new Event is the Adaptable State Changed Event.
This fires whenever any State changes in Adaptable, and provides full details of the change, specifies the action which triggered the change and contains 'before and after' state objects.
This event replaces - and vastly improves on - Audit Log which has been removed
This allows users to specify which changes to listen to, and to get full details of everything that has happened in the grid, whether user actions, cell edits, ticking data changes etc.
It is trivial to subscribe to this event and stream relevant changes to a destination of your choice giving you full, comprehesive Audit capability
One welcome consequence of the consolidation and refactorign of Modules (see above) is that the 'UserFunctions' section of Adaptable Options is no longer required.
This is a beneficial outcome as User Functions required splitting code messily betweeen Predefined Config and Adaptable Options
All the functionality previously in User Functions is now available elsewhere in AdapTable as follows:
|Old User Function||Notes|
|Action Column Render||Action Column uses standard Adaptable Buttons|
|Action Column Should Render||Action Column uses standard Adaptable Buttons|
|Alert Button||Alert uses standard Adaptable Buttons|
|Cell Summary Operation||Cell Summaries are now provided in General Options|
|Custom Export Destination||Export Module now uses an Adaptable Form for Custom Destinations|
|Custom Report||Export Options has a |
|Custom Sort Comparer||Managed by the |
|Entitlement LookUp||Entitlements are now set in Entitlements Options|
|Get Column Values||Distinct column values can now be provided in User Interface Options|
|User Menu Item Clicked||Menu Options contains all functions used to manage user menu items|
|User Menu Item Label||Menu Options contains all functions used to manage user menu items|
|User Menu Item Show Predicate||Menu Options contains all functions used to manage user menu items|
AdapTable Rx simplifies the instantiation of AdapTable when using the Angular Wrapper.
Instead of 2 components being required, just the standard
ag-grid-angular component should be provided.
This should be supplied with the
adaptableOptions property which extends the grid with AdapTable features
AdapTable Rx requires the use of Angular 10 or higher.
The User Interface in Adaptable has been simplified in AdapTable Rx together with more common components.
There is a new Adaptable Form which is dynamically generated when required.
It can contain fields (of various types - e.g. dropdown, numeric editor, checkbox etc.), default values, buttons, descriptions and full validation.
The Adaptable Form is currently used in these Modules (with more to follow in the coming months):
- Custom Destination in Export displays a form allowing additional information to be provided
- Alert can contain a Form with Buttons to allow edits to be overriden or undone
The many previous ad-hoc button implementations in Adaptable have been consolidated to use a new, more powerful Adaptable Button object.
It is used in these Modules and Options:
Buttons contain 5 functions to be provided by users and invoked by AdapTable when required:
- onClick - what happens when the Button is clicked
- hidden - whether or not to display the Button
- disabled - whether or not the Button is enabled
- buttonStyle - what style to give the Button (can alternatively be a hard-coded value)
- label - caption to display in the Button (can alternatively be a hard-coded value)
The standard Wizard used in many Module Popups has had a makeover with a number of enhancements:
- now runs vertically (rather than horizontally), making better use of screen estate
- allows you to navigate between steps using the mouse
- provides context-sensitive instructions
- explains in each step what is required to enable the wizard to move to the next step or finish
- contains an intuitive summary screen with buttons to edit each section of the object
This is Work In Progress so any feedback on how the Wizard can be futher improved is appreciated
AdapTable now provides 2 cell editors which will be automatically used when the cell is in edit mode:
If a cell editor is provided in Grid Options then, naturally, that will be used and not the AdapTable one
- Numeric Editor - only allows numbers and has arrows to move up and down
- Date Picker - a Date Picker providing a very full list of features which is heavily stylable
Editability can now be defined at the individual cell level via user-provided functions.
This new functionality combines nicely with the 2 new
readOnlyCellStyle properties in User Interface Options
Finance Plugin Columns
The Finance Plugin has 2 new Column types in AdapTable Rx which can be provided at Design Time if required:
Weighted Average Columns
Weighted Average Columns will perform a Weighted Average aggregation - both when the Row is grouped or in Pivot Mode
It requires that the user provides a 2nd column which will also be used to perform the aggregation calculation
FDC3 Instrument Columns
Instrument Columns show a 'Broadcast Instrument' Menu Item which, when clicked, will broadcast an FDC3 Instrument message.