Naming theme control entries
Control entries are identified by themeIds. At runtime, the correct style attributes are determined by matching control names.
Naming theme control entries
A
control is identified by a themeId, which is either set by the user
per control, or deduced based on the control class. This ID matches
the <name>
entry in the control definition:
<control>
<name>Button</name>
...
</control>
In order to change the appearance of the control based on context, additional sub-entries are available. For example, a Submit button might not look like an Action button. The following entries define the Submit and Action buttons:
<control>
<name>Button.Submit</name>
...
</control>
<control>
<name>Button.Action</name>
...
</control>
At runtime, the correct style is determined
using inheritance. If a perfect match exists, for example Button.Action
,
that style is used. Otherwise, the parent entry (the part before the
last dot, for example Button
) is used. This is done
recursively until an entry is found, or there are no more parent entries.
If no matching entry is found, then no theme is applied to the control.
Note
that the XML file format is case sensitive, meaning that the control
names as well as the property names should be spelled correctly (Button
is
not equivalent to button
).
Control names
The following is a complete list of control names.
// Body
BODY = "ViewRoot"
// Form
FORM = "Form"
// OutputText
TEXT = "Text"
TEXT_COMPUTED = "Text.ComputedField"
TEXT_FORMAT = "Text.Format"
TEXT_LABEL = "Text.Label"
// InputText
INPUTFIELD = "InputField"
INPUTFIELD_EDITBOX = "InputField.EditBox"
INPUTFIELD_SECRET = "InputField.Secret"
INPUTFIELD_DATETIMEPICKER = "InputField.DateTimePicker"
INPUTFIELD_TEXTAREA = "InputField.TextArea"
INPUTFIELD_RICHTEXT = "InputField.RichText"
INPUTFIELD_HIDDEN = "InputField.Hidden"
INPUTFIELD_FILEUPLOAD = "InputField.FileUpload"
// FileDownload
FILEDOWNLOAD = "DataTable.FileDownload"
FILEDOWNLOAD_LINK = "Link.FileDownload"
// Links
LINK = "Link"
// Button
BUTTON = "Button"
BUTTON_COMMAND = "Button.Command"
BUTTON_SUBMIT = "Button.Submit"
BUTTON_CANCEL = "Button.Cancel"
// CheckBox
CHECKBOX = "CheckBox"
// RadioButton
RADIOBUTTON = "RadioButton"
// ListBox
LISTBOX = "ListBox"
// ComboBox
COMBOBOX = "ComboBox"
// Image
IMAGE = "Image"
// Messages
MESSAGE = "Message"
MESSAGE_LIST = "Message.List"
// Panel
PANEL = "Panel"
// Section
SECTION = "Section"
// Tabbed Panel
TABBEDPANEL = "TabbedPanel"
TABBEDPANELTAB = "TabbedPanelTab"
// Table
DATATABLE = "DataTable"
COLUMN = "Column"
// View
VIEWPANEL = "DataTable.ViewPanel"
VIEWPANEL_TITLE = "Text.ViewTitle"
VIEWCOLUMN = "Column.View"
VIEWCOLUMN_TEXT = "Text.ViewColumn"
VIEWCOLUMN_TEXT_COMPUTED = "Text.ViewColumnComputed"
VIEWCOLUMN_LINK = "Link.ViewColumn"
VIEWCOLUMN_IMAGE = "Image.ViewColumn"
VIEWCOLUMN_CHECKBOX = "CheckBox.ViewColumn"
VIEWCOLUMN_HEADER = "Panel.ViewColumnHeader"
VIEWCOLUMN_HEADER_TEXT = "Text.ViewColumnHeader"
VIEWCOLUMN_HEADER_LINK = "Link.ViewColumnHeader"
VIEWCOLUMN_HEADER_CHECKBOX = "CheckBox.ViewColumnHeader"
VIEWCOLUMN_HEADER_ICON = "Image.ViewColumnHeaderIcon"
VIEWCOLUMN_HEADER_IMAGESORT = "Image.ViewColumnHeaderSort"
VIEWCOLUMN_HEADER_IMAGE = "Image.ViewColumnHeader"
// Script
SCRIPT = "Script"
// HTML tags
HTML_DIV = "HtmlDiv"
HTML_BR = "HtmlBr"
HTML_P = "HtmlP"
HTML_SPAN = "HtmlSpan"
HTML_TABLE = "HtmlTable"
HTML_TR = "HtmlTr"
HTML_TD = "HtmlTd"