Papyrus Banner

Metamodel Description

CellEditorDeclaration

This enumeration allows to describe the way to declare the cell editor in the table :

AxisIndexStyle

This enumeration allows to describe how to display the index of the axis :

TableNamedElement

abstract object used when an element need to have a name and a description

TableConfiguration

this object is used to configure the table

Fields

????rowAxisProviderConfiguration -> a la bonne place ? -> peut-etre sur un (local)AbstractAxisProvider?
????columnAxisProviderConfiguration -> a la bonne place? -> peut-etre sur un (local)AbstractAxisProvider?

Constraints

the field defaultRowAxisProvider must references an axis owned by rowAxisProviders
the field defaultColumnAxisProvider must references an axis owned by columnAxisProviders

Table

This object represents the model of the table used in Papyrus

Fields

Constraints

??? localTableConfiguration : must be here?

??? add header in the name of the label configuration????

AbstractLabelConfiguration

This object allows to store the configuration for the label provider.

Fields

ObjectLabelProviderConfiguration

This label provider can be used for all element displayed in a table

Fields

FeatureLabelProviderConfiguration

The label provider used for object representing properties/features of others objects

Fields

AbstractAxisProvider

This class stores in an ordered list the IAxis displayed in rows or in columns

Table Refresh

There are 2 kinds of refresh in the tables :
  1. a refresh of the appearance of the table
    This refresh is done after each command executed in the command stack.
  2. a refresh of the rows and columns of the table
    This refresh needs to recalculate the rows and the columns to display before to refresh the table. This refresh is called thanks to listen which listen specific modifications on the model :
    1. add/remove/move/... IAxis inside the model of the table, if the table is not synchronized
    2. add/remove/move/... elements in the display feature if the table is synchronized

Refresh Rows/Columns to display

A table is managed by 2 CompositeAxisManager one for Rows and one for Columns. These managers refers one or several Axis Manager, identified in the model by an id (AxisManager#managerId). The CompositeAxisManager is used to update the list of the element to display as rows/columns. Here, we need to distinguish 2 kinds of AxisManager

  1. the axis manager which provides a contents stored in the model of the table
    the user can reorder and 'mix'/reoder the elements provided by this kind of AxisManager.
    The CompositeAxisManager reads the table model to update the list of the elements to display.
  2. the axis manager which provides a contents derived of the (UML) model. These one are dynamic, because they doesn't contribute to the table model.
    the elements can't be mixed with the elements managed by the non-dynamic AxisManager, but they can be reorder 'inside' the Axismanager
    in case of dynamic and non-dynamic AxisManager used on the same axis, the dynamic will always be displayed at the end of the axis.

The distinction between them is done by a boolean 'isDynamic' stored in the AxisManager class