// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Table Component configuration
// Type: Table
//
// This is the main selector when customizing
// a table component. It identifies the
// sub-components that will be addressed in the
// CSS customization. In the Table Component, it
// is possible to customize the view, controller
// and adapter using CSS.
//
// List of available properties:
// - view: boolean
// - interactor: boolean
// - adapter: boolean
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Table {
view: true;
interactor: true;
}
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Table View configuration
// Type: View
//
// The following list shows all possible properties for
// the table component.
// This configuration is set in the IlpTableView.
//
// List of available properties:
// - background: Color
// - gridColor: Color
// - showGrid: boolean
// - showHorizontalLines: boolean
// - showVerticalLines: boolean
// - rowMargin: int
// - columnMargin: int
// - fixedColumnCount: int
// - autoResizeMode: IlpTableResizeMode
// - selectionMode: IlpTableSelectionMode
// - reorderingAllowed: boolean
// - headerRenderer: IlpTableHeaderRenderer
// - defaultRenderer: IlpTableCellRenderer
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
View {
reorderingAllowed : true;
autoResizeMode : AUTO_RESIZE_OFF;
selectionMode : MULTIPLE_OBJECTS_SELECTION;
fixedColumnCount: 1;
}
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Table Controller configuration
// Type: Interactor
//
// The Table Controller provides two different
// interactors for the table. The first one handles
// view events and is configured using property
// viewInteractor. The second one can handle events
// in the table header and is configured using
// property headerInteractor.
//
// You can override the default interactors and
// customize the new interactors to define actions
// associated to gestures or keystrokes. It is
// also possible to configure a popup menu factory.
// All these properties are customized using the
// bean support provided by the CSS customization
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Interactor {
headerInteractor: @=headerInt;
viewInteractor: @=viewInt;
}
#headerInt {
class: 'ilog.cpl.table.interactor.IlpDefaultTableHeaderInteractor';
popupMenuFactory: @=headerPopupMenuFactory;
}
#headerPopupMenuFactory {
class: 'ilog.cpl.table.IlpDefaultTableHeaderMenuFactory';
}
#viewInt {
class: 'ilog.cpl.table.interactor.IlpDefaultTableViewInteractor';
popupMenuFactory: @=viewPopupMenuFactory;
action[0]: @=viewAction0;
}
#viewPopupMenuFactory {
class: 'styling.AlarmPopupMenuFactory';
}
#viewAction0 {
class: 'ilog.cpl.interactor.IlpGestureAction';
gesture: BUTTON1_DOUBLE_CLICKED;
action: @=showDetailsAction;
}
#showDetailsAction {
class: 'styling.ShowDetailsAction';
}
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Style Sheet configuration
// Type: StyleSheet
//
// The following list shows all possible properties for
// the style sheet
//
// List of available properties:
// - styleSheetDebugMask: int
// - funtionList: String
//
// Example:
// StyleSheet {
// styleSheetDebugMask: "DECL_MASK|DECL_VALUE_MASK|FAILED_CONVERSIONS_MASK";
// functionList: "MediaMapFunction, MediaColorFunction";
// }
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Table header configuration
// Type: attribute
// CSS Classes: business class/attribute
//
// List of available declarations:
// - visible : boolean
// - preferredWidth : int
// - index : int
// - labelVisible : boolean
// - label : String
// - labelFont : Font
// - labelPosition : IlvDirection
// - labelSpacing : int
// - labelInsets : int
// - foreground : Color
// - background : Color
// - iconVisible : boolean
// - icon : Image
// - horizontalAlignment : { Center; Left; Right }
// - verticalAlignment : { Center; Top; Bottom }
// - toolTipText : String
// - sortingMode : IlpSortingMode
// - sortingPriority : int
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
attribute."Alarm/identifier" {
label: '@|resource("SampleMessages", "label.alarm.identifier")';
toolTipText: '@|resource("SampleMessages", "desc.alarm.identifier")';
preferredWidth: 200;
horizontalAlignment: Center;
iconVisible: false;
}
attribute."Alarm/creationTime" {
label: '@|resource("SampleMessages", "label.alarm.creationTime")';
toolTipText: '@|resource("SampleMessages", "desc.alarm.creationTime")';
preferredWidth: 250;
sortingMode: DESCENDING;
}
attribute."Alarm/perceivedSeverity" {
label: '@|resource("SampleMessages", "label.alarm.perceivedSeverity")';
toolTipText: '@|resource("SampleMessages", "desc.alarm.perceivedSeverity")';
preferredWidth: 100;
}
attribute."Alarm/acknowledged" {
label: '@|resource("SampleMessages", "label.alarm.acknowledged")';
toolTipText: '@|resource("SampleMessages", "desc.alarm.acknowledged")';
preferredWidth: 30;
}
attribute."Element/throughput" {
label: '@|resource("SampleMessages", "label.element.throughput")';
toolTipText: '@|resource("SampleMessages", "tooltip.element.throughput")';
preferredWidth: 80;
}
// Hide element type column
attribute."Element/type" {
visible: false;
}
// Change default order of columns, set name attribute first
attribute."ilog.tgo.model.IltObject/name" {
index : 0;
preferredWidth : 130;
}
// Hide column for family attribute
attribute."ilog.tgo.model.IltNetworkElement/family" {
visible : false;
}
// Set column width
attribute."ilog.tgo.model.IltNetworkElement/type" {
preferredWidth : 100;
}
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Accepted class configuration
// Type: object
// CSS Classes: business class
//
// List of available declarations:
// - tableColumnOrder: String
// - tableRowHeight: int
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
object."Alarm" {
tableColumnOrder: "identifier, creationTime, acknowledged, perceivedSeverity";
tableRowHeight: 25;
}
object."Element" {
tableColumnOrder: "name, graphicRepresentation, throughput, function, family";
}
object."ilog.tgo.model.IltLink/media" {
iconVisible: true;
labelVisible: false;
}
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Table cell configuration
// Type: object
// CSS Classes: business class/attribute
// Pseudoclasses: :selected and :focus
//
// Please refer to the User's Manual for a complete list
// of properties.
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Highlight name attribute if it is selected or has focus
object."ilog.tgo.model.IltObject/name":selected {
labelForeground: red;
}
object."ilog.tgo.model.IltObject/name":focus {
labelForeground: blue;
}
object."ilog.tgo.model.IltObject/name" {
labelForeground: black;
}
// Define horizontal alignment
object."Element/throughput" {
horizontalAlignment: Center;
}
// Auxiliary maps which associate the perceived severity
// attribute with colors and text
#perceivedSeverityBackgroundMap {
class: 'ilog.cpl.util.IlpOrderedValueMap';
keyClass: 'java.lang.Integer';
valueClass: 'java.awt.Color';
keys: "0, 1, 2, 3, 4, 5";
values: "#FFFFFF, #C0C0C0, #FFCC00, #FFB200, #FF0000, #FF0000";
}
#perceivedSeveritySelectionBackgroundMap {
class: 'ilog.cpl.util.IlpOrderedValueMap';
keyClass: 'java.lang.Integer';
valueClass: 'java.awt.Color';
keys: "0, 1, 2, 3, 4, 5";
values: "null, #DBDBDB, #FFFF99, #FFCC66, #FF9999, #FF9999";
}
#perceivedSeverityLabelMap {
class: 'ilog.cpl.util.IlpIndexedValueMap';
keyClass: 'java.lang.Integer';
valueClass: 'java.lang.String';
keys[0]: 0;
keys[1]: 1;
keys[2]: 2;
keys[3]: 3;
keys[4]: 4;
keys[5]: 5;
values[0]: '@|resource("SampleMessages", "label.alarm.perceivedSeverity.cleared")';
values[1]: '@|resource("SampleMessages", "label.alarm.perceivedSeverity.indeterminate")';
values[2]: '@|resource("SampleMessages", "label.alarm.perceivedSeverity.warning")';
values[3]: '@|resource("SampleMessages", "label.alarm.perceivedSeverity.minor")';
values[4]: '@|resource("SampleMessages", "label.alarm.perceivedSeverity.major")';
values[5]: '@|resource("SampleMessages", "label.alarm.perceivedSeverity.critical")';
}
#perceivedSeverityImageMap {
class: 'ilog.cpl.util.IlpOrderedValueMap';
keyClass: 'java.lang.Integer';
valueClass: 'java.awt.Image';
keys: "0, 1, 2, 3, 4, 5";
values: "cleared.png, indeterminate.png, warning.png, minor.png, major.png, critical.png";
}
// Auxiliary values for date format
#labelDateFormat {
class: 'ilog.cpl.util.text.IlpSimpleDateFormat';
pattern: '@|resource("SampleMessages", "label.pattern.alarm.creationTime")';
}
#toolTipDateFormat {
class: 'ilog.cpl.util.text.IlpSimpleDateFormat';
pattern: '@|resource("SampleMessages", "tooltip.pattern.alarm.creationTime")';
}
// Configuring all table columns to change its background according to the
// perceivedSeverity attribute
object."Alarm/*"[perceivedSeverity] {
labelBackground: '@|valuemap(@=perceivedSeverityBackgroundMap, @perceivedSeverity)';
}
object."Alarm/*"[perceivedSeverity]:selected {
labelBackground: '@|valuemap(@=perceivedSeveritySelectionBackgroundMap, @perceivedSeverity)';
}
// Configuring perceived severity to change its color and label according to
// the severity value.
object."Alarm/perceivedSeverity" {
label: '@|valuemap(@=perceivedSeverityLabelMap, @perceivedSeverity)';
toolTipText: '@|valuemap(@=perceivedSeverityLabelMap, @perceivedSeverity)+" "+@|resource("SampleMessages", "label.alarm")';
}
// Configuring identifier to change its color according to the alarm severity.
object."Alarm/identifier" {
label: @identifier;
labelSpacing: 10;
toolTipText: @identifier;
iconVisible: true;
icon: '@|valuemap(@=perceivedSeverityImageMap, @perceivedSeverity)';
}
// Configuring creationTime to change its color according to the alarm severity.
object."Alarm/creationTime" {
label: '@|format(@=labelDateFormat, @creationTime)';
toolTipText: '@|format(@=toolTipDateFormat, @creationTime)';
}
// Configuring acknowledged to change its color according to the alarm severity
// and to have an icon according to its state
object."Alarm/acknowledged" {
labelVisible: false;
icon: '@|image("ilog/tgo/check.png")';
horizontalAlignment: CENTER;
}
object."Alarm/acknowledged"[acknowledged=true] {
iconVisible: true;
toolTipText: '@|resource("SampleMessages", "label.alarm.acknowledgedState")';
}
object."Alarm/acknowledged"[acknowledged=false] {
iconVisible: false;
toolTipText: '@|resource("SampleMessages", "label.alarm.unacknowledgedState")';
}