Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Class graphomate.ui.tables.RowFormatConfiguration


extends sap.ui.core.Element


Quick Start

Creates a table that can be used in layouts and other container components. The graphomate table is highly customizable due to its large amount of properties and aggregationsRowFormatConfugation object that defines detailed styling of cells depending on data value conditions. Can be applied to row titles and to cells of columns which are instances of graphomate.ui.tables.DataColumn. Deviation columns are currently not affected by RowFormatConfigurations.

Code Block
languagejs
titleUsage Example
collapsetrue
jQuery.sap.require("graphomate/ui/tables/Table");
jQuery.sap.require("graphomate/ui/tables/RowFormatConfiguration");
jQuery.sap.require("graphomate/ui/tables/enums/RowFormatConfigType");
jQuery.sap.require("graphomate/ui/tables/enums/ExceptionShape");
jQuery.sap.require("graphomate/ui/tables/enums/Operator");

var table = new graphomate.ui.tables.Table({
  width: "400px",
  rows: [
    new graphomate.ui.tables.Row({
      title: "Monitors",
      hierarchyLevel: 0,
      dataPerColumn: [74800000, 65400000]
    }),
    new graphomate.ui.tables.Row({
      title: "North",
      hierarchyLevel: 1,
      dataPerColumn: [15400000, 15000000]
    });
FIXME: Bild und Code einfügen.
,
    new graphomate.ui.tables.Row({
      title: "South",
      hierarchyLevel: 1,
      dataPerColumn: [59400000, 50400000]
    }),
    new graphomate.ui.tables.Row({
      title: "Tablets",
      hierarchyLevel: 0,
      dataPerColumn: [117900000, 108400000]
    }),
    new graphomate.ui.tables.Row({
      title: "North",
      hierarchyLevel: 1,
      dataPerColumn: [70100000, 53900000]
    }),
    new graphomate.ui.tables.Row({
      title: "South",
      hierarchyLevel: 1,
      dataPerColumn: [47800000, 54500000]
    })
  ],
  columns: [
    new graphomate.ui.tables.DataColumn("column-act",{title: "ACT"}),
    new graphomate.ui.tables.DataColumn("column-bud",{title: "BUD"})
  ],
  rowFormatConfigurations:[
    new graphomate.ui.tables.RowFormatConfiguration({
      type: graphomate.ui.tables.enums.RowFormatConfigType.Exception,
      exceptionShape: graphomate.ui.tables.enums.ExceptionShape.Rhomb,
      sourceColumnId: "column-act",
      operator: graphomate.ui.tables.enums.Operator.GreaterOrEqual,
      operand1: 100000000
    })
  ]
});




Image Added

Constructor Details

new graphomate.ui.tables.TableRowFormatConfiguration(id?:string, settings?:object)

Accepts an id and a settings object or one or none of them. The settings object defines initial property values as well as aggregated and associated objects. Every setting can also be set using the related setter method. The supported settings are:

Properties:
Display
width : sap.ui.core.CSSSize
General
Condition
  • sourceColumnId : string (default: "800px")
  • height : sap.ui.core.CSSSize targetColumnId : string (default: "300px")
  • rowOrder operator :  graphomate.ui.tables.enums.RowOrder Operator (default: "preOrder"Greater)
  • showDatatypesInCells operand1 : boolean float (default: false0)showDatatypesInHeader
  • operand2 : boolean float (default: true1)
Exception
Aggregations
  • exceptionShape :
NumberFormat
Datatype
  • datatype : string (default: "")
EditableContent
CssClass
  • cssClassName : string (default: null"rowFormatConfig")
CssStatement


Aggregations:




Property Details

Each property "sampleProperty" can be set using the related setter "setSampleProperty". Each setter expects a valid value for the related property as input parameter and throws an exception for invalid values. It returns the "this context" for method chaining. Each property "sampleProperty" can also be gotten using the related getter method "getSampleProperty". It expects no input parameters and returns the current value of the related property. Each property that represents or partially contains indices excepts a 0 based index.

  • setSampleProperty(value) - Sets the property to the passed value if valid and returns this for method chaining.
  • getSampleProperty() - Returns the current value of the property.

The Following Properties are available:


Property NameTypeDescription

width

sap

visible

booleanSets whether the RowFormatConfiguration will be applied or disabled.
rowFormatConfigTypegraphomate.ui.
core
tables.enums.
CSSSizeSets the width of the table. e.g.: "800px"heightsap.ui.core.CSSSizeSets the height of the table.
RowFormatConfigTypeSets the RowFormatConfiguration's type that applies to cells which meet the defined condition. You can select from a range of types which then can be further adjusted by the RowFormatConfiguration's properties. The type NumberFormat, for example, will apply a number format that can be defined using the property basicNumberFormat.
sourceColumnIdstringThis property is part of the condition and defines the ID of the DataColumn that will be used as source for the calculation. The condition will be checked for each value of that column.
targetColumnIdstringThis property is part of the condition and defines the ID of the DataColumn the RowFormatConfiguration gets applied to. The default value (empty string) will apply the RowFormatConfiguration to the RowTitles.
operatorgraphomate.ui.tables.enums.OperatorThe operator is part of the condition and defines the operation that compares each value of the source column with operand1 (for binary operands like source<operand1) and operand2 (for ternary operands like operand1<source<operand2). The calculation's result for each value of the source column determines whether the RowFormatConfiguration will be applied to the target cell.
operand1floatThe operand1 is part of the condition. The result of a calculation based on the source column's value, the operator and operand1 will determine the appliance of the RowFormatConfiguration.
operand2floatThe operand2 is part of the condition and will only be used with ternary operators. The result of a calculation based on operand1, the source column's value and operand2 will determine the appliance of the RowFormatConfiguration.
exceptionColorgraphomate.ui.types.HexColorThis property is part of the exception configuration and defines the color of the exception symbols for rowFormatConfigType "Exception".
exceptionFillTypegraphomate.ui.enums.FillTypeThis property is part of the exception configuration and defines the fill of the exception symbols for rowFormatConfigType "Exception".
exceptionShapegraphomate.ui.tables.enums.ExceptionShapeThis property is part of the exception configuration and defines the shape of the exception symbols for rowFormatConfigType "Exception".
labelFormatModegraphomate.ui.enums.LabelFormatModeThis property is part of the number format configuration and defines the number format mode (Basic or Extended) for rowFormatConfigType "NumberFormat".
basicNumberFormatstringThis property is part of the number format configuration and defines the basic number format for rowFormatConfigType "NumberFormat" and labelFormatMode "Basic".
datatypestringThis property defines the name of a datatype that will be applied to cells when type is set to "Datatype".
editableContentBackgroundColorgraphomate.ui.types.HexColorSets the color that will be applied to the background of cells when type is set to "EditableContent".
cssClassNamestringDefines a CSS class name that will be assigned to cells when row FormatConfigType is set to "CssClass".
cssStatementstringDefines a CSS statement that will be applied to cells when type is set to "CssStatement". A valid value would be "color: red", for example.

IDs in XML

When using the tables in XML views, the view may manipulate the internal Ids of the graphomate objects by prefixing it with something like 'xmlview1–'. Therefore you can't rely on the local Ids you gave the column objects when referencing them in sourceColumnId and targetColumnId. In this case you should use global Ids. You can get them by using the .byId method from the view or the core. Here is a slightly unconvenient but working example of getting the correct global Id from a local one in the controller file to use it with the property sourceColumnId of a RowFormatConfiguration.

Code Block
languagejs
themeEclipse
new graphomate.ui.tables.RowFormatConfiguration({
	sourceColumnId: this.getView().byId("myLocalDataColumnId").getId(),
	...
})




Aggregation Details

We decided to use aggregation over association for all managed items of the graphomate table because they can be bound to a model and associations can't. The disadvantage of using an aggregation is that a managed item can only be part of one aggregation. So the instance of an extendedNumberFormat for example can be part of an aggregation of table 1 but can't be part of an aggregation of table 2 while it is still part of table 1.

Items of an aggregation named "sampleThings" that has a cardinality of 0...n (and a multiplicity of 1:n) can be accessed by using one of the following methods:

indexOfSampeThing(object) - Searches for the provided object in the aggregation and returns its 0-based index if found, or -

1

otherwise

.

  • getSampleThings() - Returns an array with the objects contained in the aggregation or an empty array.
  • addSampleThing(object) - Adds the provided object as last element in the aggregation. Returns this for method chaining.
  • insertSampleThing(object, index) - Inserts the provided object into the aggregation at position i. Returns this for method chaining.
  • removeSampleThing(object) - Removes the provided object from the aggregation. Returns the removed object.
  • removeAllSampleThings() - Removes all objects from the aggregation. Returns an array of all removed objects.
  • destroySampleThings() - Destroys all currently aggregated objects and clears the aggregation. Returns this for method chaining.
  • The Item of an aggregation named "sampleThing" that has a cardinality of 0...1 (and a multiplicity of 1:1) can be accessed by using one of the following methods:

    • getSampleThing() - Returns the current aggregated object or null.
    • setSampleThing(object) - Sets the provided object as the new aggregated object. Returns this for method chaining.
    • destroySampleThing() - Destroys the current aggregated object and clears the aggregation. Returns this for method chaining.


    The following aggregations are available:

    Aggregation NameAggregated Object TypeCardinalityDescription
    rows

    extendedNumberFormat

    graphomate.ui.
    tables.Row
    ExtendedNumberFormat0...
    n
    1
    A list of Row instances which provide information like hierarchy level, row title and the actual data of the row. When using rows of multiple hierarchy levels, the order of rows in this aggregation must be post order or pre order. This is necessary for the table to build a nested hierarchy from the flat aggregation list. For pre order the following order is valid (described schematically, starting at top level node with hierarchy level 0): [0,1,1,0,1,1]. A non valid order would be [1,0,1,1,0,1,1]
    The item of this aggregation allows you to configure the formatting of values. It gets applied to all cells that meet the defined condition when property labelFormatMode is set to Extended and type is set to "NumberFormat".