Modules

Most of the functionality in AdapTable is organised through 'Modules'.

A Module is essentially a set of discrete functionality e.g. 'CustomSort', 'Filter', 'SmartEdit' etc. which users will interact with as required.

note

Many Modules contain an array of AdaptableObjects that users can create, edit or delete (if their Entitlements allow), e.g. ConditionalStyle, Layouts etc.

tip

Use Entitlements to set Modules you don't need to 'Hidden' or don't want users to touch to 'ReadOnly'

AdapTable Modules

The full list of Modules in AdapTable is:

ModuleDescription
AlertsGet notified when things happen in Adaptable that you need to know about
Bulk UpdateUpdate multiple cell simultaneously with a new or existing value
Calculated ColumnCreate bespoke columns whose cell value is derived dynamically from an Expression
Cell SummarySee summary information on a group of cells using multiple summary operations
Change HistoryShow a list of recent Cell Edits and Ticking Data changes with option to undo
Conditional StyleStyle columns and rows dynamically based on rules and cell values
Custom SortProvide bespoke sorting information for Columns (in place of alphabetical sorting)
Data SourceUpdate the entire data set in AdapTable using pre-populated data sources
ExportExport data from the Grid to numerous locations in numerous formats
FilterAdvanced filtering capability allows users to see precisely the data they want
Format ColumnCreate a column style, display format or cell alignment
FreeText ColumnDynamic column showing custom content (stored in state and not with grid data)
Grid InfoDisplay information about the Grid, the Options selected and all columns
LayoutNamed sets of column visibility, order, groupings, aggregation, pivots etc.
Plus MinusConfigure how a cell value will edit when the + or - keys are pressed
QueryRun real-time text-based queries using a wealth of powerful functions and operators
Quick SearchQuickly highlight all cells in the grid that contain matching query text
ScheduleSchedule AdapTable functionality to run at times of your choosing (e.g. run reports)
ShortcutSet up rules so cells update mathematically when keys are pressed in numeric cells
Smart EditEdit groups of numeric cells using mathematical operations (e.g. Multiply by 10)
State ManagementManages Adaptable State, User State and Predefined Config
System StatusProvide messages about the Status of your application
ThemeTheme AdapTable with a colour configuration set of your choosing

Modules UI

There are numerous ways in which end-Users can interact with AdapTable Modulea in the AdapTable UI:

  • Most Modules have a dedicated Popup Screen. Modules that contain an array of items (e.g. ConditionalStyle) will typically display these in a table with buttons to add / edit. These items are created / edited via a Wizard which provides step-by-step way to edit the sometimes complex objects that can be created.

    Modules which perform actions (e.g SmartEdit, BulkUpdate) will contain UI controls to allow the Module to be used.

  • Some Modules - e.g. Layouts, Reports, Quick Search - provide Dashboard Toolbars which offer easy access to required functionality.

  • AdapTable Modules can also provide ToolPanels to be hosted in the AdapTable ToolPanel (at the side of the grid). Like toolbars, these provide ready access to common functionality (the same Modules generally provide both).

  • Many Modules also provide Menu Entries for both the Column Menu (available through clicking a Column Header) and Context Menu (available through right-clicking on a grid cell, or group of cells).

This table lists all the Modules and which UI elements they support.

AdapTable Modules UI Components

Adaptable ModuleWizardToolbarTool PanelColumn MenuContext Menu
Alertsโœ…โœ…โœ…โœ…
Bulk Updateโœ…โœ…โœ…
Calculated Columnโœ…โœ…
Cell Summaryโœ…โœ…โœ…
Change Historyโœ…โœ…
Conditional Styleโœ…โœ…
Custom Sortโœ…โœ…
Data Sourceโœ…โœ…โœ…
Exportโœ…โœ…โœ…
Filterโœ…โœ…โœ…โœ…
Format Columnโœ…โœ…
FreeText Columnโœ…โœ…
Grid Infoโœ…โœ…
Layoutโœ…โœ…โœ…
Plus Minusโœ…โœ…
Queryโœ…โœ…โœ…
Quick Searchโœ…โœ…
Scheduleโœ…
Shortcutโœ…
Smart Editโœ…โœ…โœ…
State Managementโœ…
System Statusโœ…โœ…โœ…โœ…
Themeโœ…โœ…

Plugin-based Modules

ModuleWizardToolbarTool PanelColumn MenuContext Menu
Chartโœ…โœ…
ipushpullโœ…โœ…
Glue42โœ…โœ…
OpenFinโœ…โœ…
Finsemble

Entitlements

All Modules are subject to Entitlements (aka permissions).

This means that end-users will only be able to access a Module according to whether it has been given an Entitlement of Full, ReadOnly or Hidden.

Predefined Config / State

Design-time Users are able to pre-populate AdapTable with Predefined Config - this is the AdapTable State that will be available when the application first loads.

Nearly every Module has its own section / property in PredefinedConfig which will be the same as the ModuleName (e.g. 'CustomSort').

note

There are many sections in Predefined Config most which are Module-related.

Module Name

Each AdapTable Module has a ModuleName property.

note

This allows you to easily reference Adaptable Modules when creating Predefined Config as they will appear in a dropdown as you type.

An Adaptable Module also a FriendlyName property which is how the Module is referred to in AdapTable menus and toolbars.

tip

The Friendly Name can be changed via the alternativeModuleNames property in General Options

Module Scope

Scope specifies where an Adaptable Object in a Module can be applied.

It has 3 main values:

  • All - This will include every Column in a Row
  • Column(s) - An array of ColumnIds
  • DataType(s) - An array of Data Types (available values are: 'Boolean', 'Number', 'Date', 'String')

Modules Using Scope

The Scope object has been included in a number of Modules including:

This means that it is now possible to create a Conditional Style for all Numeric columns (e.g. Green Font for Positive values) with a single step.

It is very straightforward to set Scope in Predefined Config:

Scope: All

To set a Scope of All you need to set 'All' to true as follows:

Scope: {
All: true,
},
tip

This is typically done when using a Query rather than a Predicate and essentially will work on the whole row rather than individual columns.

Scope: ColumnIds

To set a Scope on one or more ColumnIds, simply provide an array of values:

Scope: {
ColumnIds: ['ItemCost', 'Package Cost', 'OrderCost'],
},

Scope: Data Types

To set a Scope of one or more Data Types, provide an array of values:

Scope: {
DataTypes: ['Number'],
},

Scope: Multiple Sections

It is possible - albeit rare - to include both DataType and ColumnIds in Scope.

For instance if you wanted a Conditional Style to paint all Date Columns plus 3 string columns you could do:

Scope: {
DataTypes: ['Date'],
ColumnIds: ['Country', 'Currency', 'Counterparty']
},

Scope API

This section of Adaptable API contains a number of methods for managing Scope.

MethodDescription
createCellColorRangesForScope(scope)Creates Cell Color Ranges (used in Format Column) for given Scope
getColumnIdsInScope(scope)Returns all the ColumnIds in the Scope
getColumnsForScope(scope)Returns list of all Columns in the given Scope
getDataTypesInScope(scope)Returns all the DataTypes in the Scope
getScopeDescription(scope)Provides a description for the Scope
getScopeToString(scope)Gets string representation of the Scope
getSingleColumnInScope(scope)Gets the only Column in given Scope
isColumnInDateScope(column, scope)True if Scope has Data DataType which contains Column
isColumnInNumericScope(column, scope)True if Scope has Numeric DataType containing Column
isColumnInScope(column, scope)True if Column is in given Scope
isColumnInScopeColumns(column, scope)True if Column is in Scope's 'ColumnIds' section
isColumnInStringsScope(column, scope)True if Scope has String DataType containing Column
isPrimaryKeyColumnInScopeColumns(scope)Whether PK column is included in Scope's column section
isScopeInScope(scopeA, scopeB)True if first scope is in second Scope
isSingleBooleanColumnScope(scope)True if Scope contains just 1 boolean Column
isSingleColumnScope(scope)True if Scope contains just 1 ColumnId
isSingleNumericColumnScope(scope)True if Scope contains just 1 numeric Column
scopeHasColumns(scope)True if Scope contains ColumnIds
scopeHasDataType(scope)True if Scope contains DataTypes
scopeIsAll(scope)True if Scope is 'All'
scopeIsEmpty(scope)True if Scope is empty

Suspending Modules

AdapTable Objects created in Modules operate, and are available, immediately after they are created.

tip

This applies whether they're provided at design-time via Predefined Config or created at run-time in the UI

And - depending on Entitlements - they can be edited and deleted.

Some Modules also support suspendeding objects; e.g. an Alert can stop firing for a while, or a Conditional Style can be temporarily removing. The full list is:

note

All API classes that deal with Suspendable Objects have suspend and unSuspend methods - e.g. suspendCustomSort and unSuspendCustomSort in Custom Sort Api

FAQ

Can we hide particular Modules from our users as they are not relevant (i.e. we are a readonly grid so don't require Smart Edit or Shortcuts Modules)?

Yes, you can use Entitlements to set which Modules are available to each user, and whether they are hidden, editable or readonly.

Do you plan to add more Modules?

Yes, we continually add more Modules, primarily in response to suggestions and ideas submitted by our Users.

Can I change the Name of the Dashboard Module as we already have a Dashboard section in our application?

Yes, use the the alternativeModuleNames property in General Options which allows you provide an alternative name for a Module and will used whenever the Module name is displayed.