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"