| Graphic Components > Table Component > Configuring the Table Component > Configuring the Table Component through a CSS File |
Configuring the Table Component through a CSS File |
INDEX
PREVIOUS
NEXT
|
You can customize the following features in a CSS file:
The table configuration can be split accross several CSS files that you can load by:
<tgo xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation = "ilog/cpl/schema/project.xsd" style="configurationFile1.css,configurationFile2.css">
The following example shows you how you can customize the table component itself. It is based on the CSS file located in
<installdir>/samples/table/styling/srchtml/table.css.html
where <installdir> is the directory where you have installed JViews TGO.
The configuration in CSS is organized as a set of rules that define properties.
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// 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;
}
This rule specifies the elements of the table component that will be customized. It contains Boolean flags that indicate whether some specific customizable properties are present. For example, the customization of the property adapter is not taken into account unless adapter: true is declared in the Table rule.
This feature provides powerful cascading possibilities. You can define adapter customizations in a default CSS file and turn them on or off in another CSS file.
The following CSS properties affect the table component:
This rule specifies the properties that are applied to the table view.
The following CSS properties affect the appearance of the table view:
Prior to configuring the table view, you need to configure the table component so that the view configuration is enabled:
Table {
view: true;
}
Then, you can customize the view properties in the View rule as illustrated by the following code extract. Refer to The CSS Specification in the Styling documentation for details about the CSS syntax.
View {
reorderingAllowed : true;
autoResizeMode : AUTO_RESIZE_OFF;
selectionMode : MULTIPLE_OBJECTS_SELECTION;
fixedColumnCount: 1;
}
Refer to ilog.cpl.table.renderer.IlpViewRenderer for more information.
This rule specifies the properties that are applied to the table controller. The following CSS properties affect how the table component handles mouse and keyboard events:
Property Name |
Type |
Default Value |
Usage |
|---|---|---|---|
viewInteractor |
Defines the interactor that handles events in the view. | ||
headerInteractor |
Defines the interactor that handles events in the table header. |
| Note |
Events are only handled by the header interactor if the current view interactor is an IlpDefaultTableViewInteractor.
|
Prior to configuring the table interactor, you need to configure the table component so that the interactor configuration is enabled:
Table {
interactor: true;
}
After that, you can customize the each interactor property in the Interactor rule as illustrated by the following code extract. Refer to The CSS Specification in the Styling documentation for details about the CSS syntax.
Interactor {
viewInteractor: @+viewInt;
headerInteractor: @+headerInt;
}
Subobject#viewInt {
class: 'ilog.cpl.table.interactor.IlpDefaultTableViewInteractor';
}
Subobject#headerInt {
class: 'ilog.cpl.table.interactor.IlpDefaultTableHeaderInteractor';
}
The behavior of the view interactor is determined by the actions that are associated with user gestures and keystrokes. This behavior can also be customized through CSS. You can also configure a pop-up menu to be displayed in the table view or table header. Please refer to Interacting with the Table View and Interacting with the Table Cells for more information about interactor customization.
For more information, refer to ilog.cpl.table.renderer.IlpInteractorRenderer
This rule controls the configuration of the table adapter. The table adapter is responsible for converting the business objects in the data source to representation objects (table rows) in the table component. It provides the following features:
These table adapter features can be customized through CSS using the following properties:
Property Name |
Property Type |
|---|---|
filter | ilog.cpl.util.IlpFilter |
acceptedClass | String |
excludedClasses |
list of ilog.cpl.model.IlpClass |
representationObjectFactory | ilog.cpl.table.IlpTableRowFactory |
Prior to configuring the adapter, you need to configure the table component so that the adapter configuration is enabled:
Table {
adapter: true;
}
After that, you can customize each adapter property in the Adapter rule as illustrated by the following code extract. Refer to The CSS Specification in the Styling documentation for details about the CSS syntax.
Adapter {
filter: @+tableFilter;
acceptedClass: 'ilog.tgo.model.IltNetworkElement;
representationObjectFactory: @+repObjFactory;
}
Subobject#tableFilter {
class: MyTableFilter;
}
Subobject#repObjFactory {
class: MyRepresentationObjectFactory;
}
You can programmatically modify the CSS configuration of the default table adapter (ilog.cpl.table.IlpTableListAdapter) by using mutable style sheets through the ilog.cpl.css.IlpMutableStyleSheet API.
| Important |
| The mutable style sheet is set to the adapter as a regular style sheet and is cascaded in the order in which it has been declared. |
To use mutable style sheets:
ilog.cpl.css.IlpMutableStyleSheet and register it yourself through the setStyleSheet() API:
| Note |
Like any style sheet, the mutable style sheet is lost when the setStyleSheet() API is invoked and a new set of style sheets is applied to the adapter.
|
Reapplying a CSS configuration may be a heavy task, as the adapter may be forced to review filters, origins, recreate representation objects, and so on. It is important to use the mutable style sheet with care and to customize it properly to reapply the CSS wisely. To do so, there are two methods available in the ilog.cpl.css.IlpMutableStyleSheet API: setUpdateMask() and setAdjusting().
IlpStylable.UPDATE_COMPONENT_MASK: Only the adapter part is recustomized.
IlpStylable.UPDATE_OBJECTS_MASK: Only the representation object part is recustomized.
IlpStylable.UPDATE_ALL_MASK: Bot the adapter and representation object parts are recustomized.
IlpStylable.UPDATE_NONE_MASK: Nothing is recustomized.
UPDATE_OBJECTS_MASK as there is no need to reapply the CSS configuration for the adapter part:
| Copyright © 1987-2007 ILOG S.A. All rights reserved. Documentation homepage. All rights reserved. Legal terms. | PREVIOUS NEXT |