Application

This class represents the configuration for an application instance.
Application ::= Sequence {
  name PrintableString Range(0..32) Optional, // Design: the name of the application
  lookAndFeel PrintableString Range(0..255) Optional [ style ], // Design: the language class name for a look and feel. The logical names "System" and "CrossPlatform" are also supported. Style can be: eclipse eclipse3x office2003 xerto vsnet)
  lookAndFeelWindows PrintableString Range(0..255) Optional [ style ], // Design: look and feel when the desktop OS is MS Windows
  lookAndFeelLinux PrintableString Range(0..255) Optional [ style ], // Design: look and feel when the desktop OS is Linux
  lookAndFeelMac PrintableString Range(0..255) Optional [ style ], // Design: look and feel when the desktop is a Mac
  contextURL PrintableString Range(0..255) Optional [ redirect ], // Design: the URL to use when resolving relative link paths; if redirect is true then this app object is ignored and the contextURl is used to retrieve a new app object (this can be done only once)
  applicationRoot PrintableString Range(0..255) Optional, // Design~~: A string to use to prefix URLs that start with a forward slash
  lookAndFeelPropertiesURL PrintableString Optional [ inline, keep_color_keys ], // Design~url: url for a properties file formatted list of UI properties these properties will override any system properties with the same name
  resourceStringsURL PrintableString Optional [ inline, locale="en_US" ], // Design~url: url for a java properties file formatted list of strings these strings will override any predefined resources string with the same name
  resourceIconsURL PrintableString Optional [ inline, locale="en_US", localeSensitive="false" ], // Design~url: url for a java properties file formatted list of icons
  actionItemsURL PrintableString Optional [ inline, locale="en_US", localeSensitive="false" ], // Design~url: url for a set of named set of application-wide ActionItems that can be later referenced throughout the application
  attributesURL PrintableString Optional [ inline, locale="en_US", localeSensitive="false" ], // Design~url: url for a set of application-specific NameValuePair attribites
  dataCollectionsURL PrintableString Optional [ inline, locale="en_US", localeSensitive="false" ], // Design~url: url for a set DataCollection objects
  widgetHandlers Set {
    widget NameValuePair [ os ]  // Design: os can be 'Windows' 'Linux' 'OS X' 'SunOS' or 'Unix' to target the handler to a specific OS
  } Reference, // a set of mime language class name/mime-types pairs for widgets/viewers to add to/override in the application's environment
  collectionHandlers Set {
    handler NameValuePair
  } Reference, // Design: a set of name/language class name pairs for data collection handlers
  supplementalFonts Set {
    font NameValuePair [ type="truetype" ]
  } Reference, // Design: a set of name/url pairs defining custom fonts
  supplementalJars Set {
    url PrintableString Range(0..255) [ os ]  // os can be 'Windows' 'Linux' 'OS X' 'SunOS' or 'Unix' to target the handler to a specific OS
  } Reference, // Design: supplemental Jar file that can be used to resolve referenced classes
  managePopupURLs Boolean Default true, // Design: whether popup URL's should be automatically managed
  defaultScriptingLanguage PrintableString Range(0..64) Default "text/javascript", // Design: the MIME type for default scripting language for the application
  defaultItemDateTimeFormat PrintableString Range(0..64) Default "yyyy-MM-dd HH:mm", // Design: the default date/time format for date/time items
  defaultItemDateFormat PrintableString Range(0..32) Default "yyyy-MM-dd", // Design: the default date format for date items
  defaultItemTimeFormat PrintableString Range(0..32) Default "HH:mm", // Design: the default time format for time items
  defaultDisplayDateTimeFormat PrintableString Range(0..64) Default "MM/dd/yyyy hh:mm a", // Design: the default display date/time format (this format will be localized if necessary)
  defaultDisplayDateFormat PrintableString Range(0..32) Default "MM/dd/yyyy", // Design: the default display date format (this format will be localized if necessary)
  defaultDisplayTimeFormat PrintableString Range(0..32) Default "hh:mm a", // Design: the default display time format
  autoLocalizeDateFormats Boolean Default true, // Design: whether display date/time formats should be automatically localized
  autoLocalizeNumberFormats Boolean Default true, // Design: whether number formats should be automatically localized
  overlapAutoToolTips Boolean Default false, // Design: whether auto-generated tooltips overlap existing text
  resetTableColumnsOnFontChange Boolean Default true, // Design: whether table columns should be readjusted when the table's font changes
  adjPrefSizeForHiddenScrollBar Boolean Default false, // Design: whether the preferred size of scollpane views will be automatically adjusted when there are hidden
  manageFocusedActions Boolean Default true, // Design: whether focused actions should be automatically managed
  dynamicNameLookup Boolean Default true, // Design: whether unresolved script variable names will be automatically matched to widget names
  populateGlobalConstants Boolean Default true, // Design: whether to populate the environment with usefully global constants
  viewersLocalByDefault Boolean Default false, // Design: whether viewers should be made local by default
  deferredLoadingMode Enumerated {
    auto   (0), // let the runtime decide
    always (1), // always  defer loading
    never  (2)  // never defer loading
  } Default auto, // Design: how deferred dataURL loading should be handled
  comURLRedirection Enumerated {
    none                 (0), // do not redirect
    all                  (1), // redirect all
    same_context         (2), // redirect when within the same context
    same_server          (3), // redirect when accessing the same server
    same_server_and_port (4)  // redirect when accessing the same server and port
  } Default none, // whether external component URLs should be redirected
  startRedirectorOnDemand Boolean Default true, // whether the redirect proxy server should be started on demand (or at startup)
  heavyweightComponentsSupported Boolean Default false, // whether heavyweight components should be supported
  ignoreFormatExceptions Boolean Default false, // Design: whether number and date format exceptions should be ignored
  allWidgetsDraggable Boolean Default false, // Design: whether all widgets should be draggable by default
  allLabelsDraggable Boolean Default false, // Design: whether all label widgets should be draggable by default
  allTextFieldsDraggable Boolean Default false, // Design: whether all textfield widgets should be draggable by default
  allTextFieldsDroppable Boolean Default true, // Design: whether all textfield widgets should be able to be dropped onto by default
  defaultMonospaceFont Font Reference, // Design: the monospaced font to use as the default
  changeSelColorOnLostFocus Boolean Default true, // Design: whether the selection color on list type items should change when the widget looses focus
  selectionPainter GridCell Reference [ foreground, fill ], // Design:a cell definition to use to paint selections
  lostFocusSelectionPainter GridCell Reference [ foreground, fill ], // a cell definition to use to paint selections
  tooltipPainter GridCell Reference [ foreground, fill ], // Design:a cell definition to use to paint tooltips
  treeNodeLineType Enumerated {
    none   (0),
    auto   (1),
    solid  (2),
    dashed (3)
  } Default auto,
  httpAuthHandler Enumerated {
    auto     (0), // let the runtime decide bases on how the runtime was launched
    standard (1), // authentication is handled transparently
    none     (3)  // application  handles authentication
  } Default standard [ authFunction, forceLowerCasePassword="false", keepPasswordHash="false", keepPassword="false" ],
  scaleIconsWithFont Boolean Default false [ defaultBaseSize, defaultBaseScaleFactor, scaling="bilinear_cached" ], // Design:whether icons should be scaled when the font is scaled
  relativePrintSize Real Range(0..4) Default 0, // Design: the size to print at relative to the screen font size (0 - prints at the normal size, 1 - prints at the screen font size)
  enableHTTPResponseCacheing Boolean Default false [ mbMaxCacheSize="50", deleteOnExit="false" ],
  useSageFilePreferencesFactory Boolean Default false, // Design: whether to use the sage file preferences factoru for preferences instead of the system default
  manageScrollWheel Boolean Default true, // Design: whether to have sage automatically manage scroll wheel behavior
  mainWindow MainWindow  // Hidden: the configuration for the application's main window
} [ onAuthFailure, onFocusChange, onPermanentFocusChange, onChange, onPreExecute, onPostExecute ]

MainWindow

This class represents the configuration for an application's main window. The main window consists of zero or more frames and a workspace. It can also contains a menu bar, a set of toolbars and a status bar
MainWindow ::= Sequence {
  templateURL PrintableString Optional [ inline, cache ], // Design~~reload: url for a object template
  title PrintableString Range(0..80) Optional, // Appearance~~reload: title for the window manager. This will be the title of the applications main window
  icon PrintableString Range(0..255) Optional [ alt, slice, base, size, scaling="bilinear" ], // Appearance~url: URL to use to retrieve an icon for the application. This will be the icon of the applications main window
  trayIcon TrayIcon Reference, // Design: tray icon for the application
  font Font Optional, // Appearance~font~reload: the font for the window manager. This will be the default font for the application
  fgColor PrintableString Range(0..64) Optional, // Appearance~color~reload: the default foreground color for text items
  scriptURL PrintableString Optional [ mimeType, inline, runOnce="true" ], // Design~url: the URL for the window
  bounds Rectangle Optional, // Design: the size and location for the main window
  menuBar MenuBar Reference [ url ], // Appearance: the applications menu bar
  toolbars Set {
    toolbar ToolBar
  } Reference [ url ], // Appearance: a set of toolbars for the main window
  frames Set {
    frame Frame
  } Reference [ url ], // Design: a set of frames for the main window
  frameStyle FrameStyle Reference, // Design: the style of frames
  commandBarContextMenu Set {
    menuItem MenuItem
  } Reference [ onConfigure ], // Design: popup menu to display when the user right-clicks on a command bar
  showGrippers Boolean Default true Optional, // Design: whether the grippers should for the dividers that will divide frames for the main window's workspace
  statusBar StatusBar Reference, // Appearance: the status bar for the main window
  visible Boolean Default true, // Appearance: whether the main window is initially visible
  decorated Boolean Default true, // Design: whether the main window is decorated
  importDataFlavors Set {
    flavor PrintableString Range(0..255)
  } Reference, // Design: data flavors that the item can import
  windowPainter GridCell Reference [ useBorderShape, useBorderForSizing ], // Appearance~~reload: painter for the window
  contentPanePainter GridCell Reference [ fillColor ], // Appearance~~reload: a painter for the window's content area
  titlePane Any DefinedBy Widget Optional [ url ], // Design: a widget to use as the title pane for an undecorated window
  viewer Any DefinedBy Widget Optional [ url ], // Design: a viewer for the window's workspace
  keystrokeMappings PrintableString Optional [ allWindows ]  // Behavior: a set of keystroke names and code fragments (predefined actions can be used by prefacing the action name with 'action:') to execute for the keystroke
} [ onCreated, onConfigure, onOpened, onWillClose, onResize, onDrop, onHasCollapsed, onHasExpanded, onFocus, onBlur, onError, manager, opaque, translucency, language ]

MenuBar

This class represents the configuration for a window's menu bar. The menu items are defined in the popupMenu property.
MenuBar ::= Extends Viewer {
  undockable Boolean Default false, // whether the menu bar can be undocked
  hideable Boolean Default false, // whether the menu bar is hideable
  rearrangeable Boolean Default false  // whether the menu bar items are rearrangeable
} [ onAction ]

ToolBar

This class represents the configuration for a toolbar
ToolBar ::= Extends Viewer {
  location Enumerated {
    north (1),
    south (2),
    east  (3),
    west  (4)
  } Default north, // the location of the pane
  row Integer Range(0..3) Default 0, // Design: the row for the toolbar (zero represents the top most position)
  column Integer Range(0..3) Default 0, // Design: the position of the toolbar (zero represents left most position) in relation to other toolbars
  horizontal Boolean Default true, // Appearance: whether the toolbar is to be horizontally oriented
  detachable Boolean Default false, // Design: whether the toolbar is detachable
  stretched Boolean Default true, // Appearance: whether the toolbar is to be stretch for fill available space
  borderPainted Boolean Default true, // Appearance: whether the toolbar border is painted
  buttonShowTextDefault Boolean Default false, // Appearance: the default for the showText property for pushbuttons when the value has no been explicitly set on the button
  actAsFormViewer Boolean Default true, // Behavior: whether the pane should act as a form viewer (if false widgets will be registered with the next higher up form viewer)
  widgets Set {
    widget Any DefinedBy Widget
  } Optional  // Hidden: the widgets to be placed on the toolbar
}

StatusBar

This class represents the configuration of a status bar
StatusBar ::= Extends Viewer {
  showTime Boolean Default false, // Appearance~~reload: whether the time of the day should be shown on the status bar
  showMemoryUsage Boolean Default false, // Appearance~~reload: whether memory usage should be shown on the status bar
  showInsertOverwrite Boolean Default false, // Appearance~~reload: whether the insert/overwrite button should be shown on the status bar
  showResizeCorner Boolean Default false, // Appearance~~reload: whether a resizing corner should be shown
  actions Set {
    action ActionItem [ textHAlignment, textVAlignment, iconPosition ]
  } Optional, // Design: a set of actions to place on the status bar
  defaultMessage PrintableString Range(0..80) Default "Ready", // Appearance~~status: default status bar message
  maxHistoryItems Integer Default 0  // Design: the maximum number of items to keep in the stausbar history
} [ onAction ]

TrayIcon

This class represents the configuration for an application's system tray icon
TrayIcon ::= Sequence {
  icon PrintableString Range(0..255) Optional, // URL to use to retrieve the icon for the tray.
  tooltip PrintableString Optional, // the tool tip for the icon
  popupMenu Set {
    menuItem MenuItem
  } Reference  // popup menu for the tray icon
} [ onAction, onMouseIn, onMouseOut, onMouseDown, onMouseUp, onMouseDragged ]

Frame

This class represents the configuration information for a viewer that arranges a section of the main window into a set of regions only one of which can be selected at a given time. A region can be selected by clicking on its tab. The tabs have special characteristics including, floating, docking, hiding, etc.)
Frame ::= Extends Viewer {
  location Enumerated {
    north (1),
    south (2),
    east  (3),
    west  (4)
  } Default west, // Design: the location of the pane
  locationIndex Integer Range(0..3) Default 0, // Design: the index position for the specified location
  loadOnActivation Boolean Default true, // Design: whether the tab's data should be loaded when it is activated or when the viewer is loaded
  reloadOnActivation Boolean Default false, // Design: whether the tab's data should be reloaded every time the tab is activated
  undockable Boolean Optional, // Design Options: whether the tab can be undocked (meaningful  when the tab if part of a FrameTabPane)
  hideable Boolean Optional, // Design: whether the tab can be hidden (meaningful  when the tab if part of a FrameTabPane)
  resizable Boolean, // Design: whether the frame is resizable
  rearrangeable Boolean, // Design: whether the frame is rearrange-able
  showTitleBar Boolean Default true Optional, // Design: whether a title bar should be shown (meaningful  when the tab if part of a FrameTabPane)
  titleFont Font Optional, // Appearance~font~headerFont: the font for the title
  titleCell GridCell Reference [ foreground ], // Design: the gridcell for the frame's title
  activeTitleCell GridCell Reference [ foreground ], // Design: the gridcell for the frame's title when the frame is active
  viewer Any DefinedBy Widget Optional  // a viewer for the region
} [ onOpened, onClosed ]

Form

This class represents the configuration information for a form viewer.
Form ::= Extends GroupBox {
  actAsFormViewer Boolean Default true, // Behavior: whether the pane should act as a form viewer (if false widgets will be registered with the next higher up form viewer)
  submitAttributes PrintableString Optional, // a semi-colon separated list of name/value pairs that are to be submitted along with widget values
  retainInitialFieldValues Boolean Default true, // Behavior: whether initial widget values should be retained so that the form can be reset to it's initial state
  defaultButtonName PrintableString Optional  // the name of the default button for use when the form is the main viewer for a dialog or window
} [ onSubmit, onReset ]

GroupBox

This class represents the configuration for a widget that groups other widgets together
GroupBox ::= Extends Viewer {
  layout Enumerated {
    absolute (1), // use absolute screen coordinates for x, y
    table    (2), // use column, row for x, y positions
    forms    (3)  // use JGoodies forms layout
  } Default table [ info ], // Hidden: the type of layout to use for the form
  rows PrintableString Default "1", // Hidden: the number of rows a table layout form will have
  columns PrintableString Default "1", // Hidden: the number of columns a table layout form will have
  columnSpacing Integer Range(0..24) Default 4, // Hidden: the amount of space between columns
  rowSpacing Integer Range(0..24) Default 2, // Hidden: the amount of space between rows
  columnGrouping Set {
    group PrintableString
  } Reference, // Hidden: layout specific column grouping information
  rowGrouping Set {
    group PrintableString
  } Reference, // Hidden: layout specific row grouping information
  cellPainters Set {
    cell GridCell
  } Reference, // Appearance~~reload: painters for the cells in the form grid
  submitValue Enumerated {
    widget_values      (0), // submit the individual widget values
    viewer_linked_data (1), // submit the linked data for the viewer
    viewer_value       (2)  // submit the value of the viewer
  } Default widget_values, // Behavior: value to use when submitting data via a form
  widgets Set {
    widget Any DefinedBy Widget
  } Optional, // Hidden: the set of widgets for the group box
  scrollPane ScrollPane Reference  // Behavior~~reload: information specifying if the viewer is scrollable and how the associated scroll pane should be configured
} [ onItemChanged ]

GridPane

This class represents the configuration information for a Grid viewer utilizing a table layout. Each cell in the grid is a region. The region's configuration defines the type of viewer, the viewer's location and how the viewer will be laid out within the cell.
GridPane ::= Extends Viewer {
  rows Integer Range(0..24) Default 1, // Hidden: the number of rows the grid will have
  columns Integer Range(0..80) Default 1, // Hidden: the number of columns the grid will have
  columnSpacing Integer Range(0..24) Default 4, // Layout: the amount of space between columns
  rowSpacing Integer Range(0..24) Default 2, // Layout: the amount of space between rows
  columnGrouping Set {
    group PrintableString
  } Reference, // Design: layout specific column grouping information
  rowGrouping Set {
    group PrintableString
  } Reference, // Design: layout specific row grouping information
  actAsFormViewer Boolean Default true, // Behavior: whether the pane should act as a form viewer (if false widgets will be registered with the next higher up form viewer)
  scrollPane ScrollPane Reference, // Behavior~~reload: information specifying if the viewer is scrollable and how the associated scroll pane should be configured
  regions Set {
    region Region
  } Optional  // Design: the set of regions
}

StackPane

This class represents the configuration information for a viewer that treats a set of viewers as a stack (like cards). Only one viewer can be active at any given time. The viewers can be referenced by name or index
StackPane ::= Extends Viewer {
  loadOnDemand Boolean Default true, // Behavior: whether the viewer should be loaded initially or on demand
  selectedIndex Integer Range(-1..) Default 0, // Appearance~~runtime the index of the viewer that is to be initially selected
  transitionAnimator PrintableString Optional [ duration, direction, acceleration, deceleration, resolution, startFraction, repeatCount, customProperties ], // Behavior: class name of the animator to use to animate transitions
  actAsFormViewer Boolean Default false, // Behavior: whether the pane should act as a form viewer (if false widgets will be registered with the next higher up form viewer)
  viewerURLs Set {
    url PrintableString [ name, mimeType, inline ]
  } Reference, // Design: a the set of URLs representing viewer configurations
  disableBehavior Refine Default disable_container
} [ onChange ]

SplitPane

This class represents the configuration information for a viewer that splits its section of the screen into multiple resizable regions.
SplitPane ::= Extends Viewer {
  splitOrientation Enumerated {
    top_to_bottom (0),
    left_to_right (1)
  } Default top_to_bottom Optional, // Layout: the orientation of the split
  oneTouchExpandable Boolean Default false, // Behavior: specifies whether the split pane should provide a collapse/expand widget for panes
  showGripper Boolean Default true, // Appearance: whether the resizing gripper is shown
  dividerSize Integer Range(0..100) Optional, // Appearance: the divider size (zero hides the divider)
  continuousLayout Boolean Default true, // Design: whether the regions a continuously laid out during resize operations
  heavyweightComponentsSupported Boolean Default false, // Design: whether heavyweight components should be supported
  actAsFormViewer Boolean Default true, // Behavior: whether the pane should act as a form viewer (if false widgets will be registered with the next higher up form viewer)
  splitProportions Set {
    splitProportion Real Range(0..1)
  } Reference, // Hidden: the split proportions the set should contain on less entry than there are viewers (defaults to an even split). For example a splitProportion of 0.4 would provide a 40/60 split
  regions Set {
    region Region
  }, // Design: the set of regions
  disableBehavior Refine Default disable_container
} [ onChange ]

TabPane

This class represents the configuration information for a viewer that arranges a section of the screen into a set of regions, only one of which can be selected at a given time. A region can be selected by clicking on its tab
TabPane ::= Extends Viewer {
  tabPosition Enumerated {
    top    (1),
    bottom (2),
    left   (3),
    right  (4)
  } Default top Optional, // Appearance~~reload: the position of the tabs in relation to the tab area
  closeButton Enumerated {
    none   (0),
    on_tab (1),
    corner (2)
  } Default none Optional, // Appearance~~reload: where the tab close button should be placed
  tabStyle Enumerated {
    auto             (0),
    box              (1),
    eclipse          (2),
    eclipse3x        (3),
    excel            (4),
    flat             (5),
    office2003       (6),
    rounded_flat     (7),
    windows          (8),
    windows_selected (9)
  } Default auto, // Appearance~~reload: the style of tab to use
  tabFgColor PrintableString Range(0..64) Optional, // Appearance~color~reload: the foreground color of a tab
  tabBgColor PrintableString Range(0..128) Optional [ type="linear", direction="vertical_top", magnitude, distribution ], // Appearance~gradient~reload: the background color of a tab
  selectedTabFgColor PrintableString Range(0..64) Optional, // Appearance~color~reload: the foreground color of the selected tab
  selectedTabBgColor PrintableString Range(0..64) Optional [ type="linear", direction="vertical_top", magnitude, distribution ], // Appearance~gradient~reload: the background color of the selected tab
  boldSelectedTab Boolean Default true, // Appearance~~reload: whether the selected tab should be bolded
  showIconsOnTab Boolean Default true, // Appearance~~reload: whether icons should be shown on the tabs
  tabEditingAllowed Boolean Default false, // Design: whether editing of tab titles is allowed
  selectedIndex Integer Range(-1..) Default 0, // Appearance~~selectedTab: the index of the tab that is to be initially selected
  tabAreaBorders Set {
    border Enumerated {
      none               (0),
      standard           (1),
      line               (2),
      line_3d            (3),
      raised             (4),
      lowered            (5),
      bevel_raised       (6),
      bevel_lowered      (7),
      etched_raised      (8),
      etched_lowered     (9),
      frame_raised       (10),
      frame_lowered      (11),
      simple_drop_shadow (12),
      drop_shadow        (13),
      shadow             (14),
      group_box          (15),
      empty              (16),
      titled             (17),
      icon               (18),
      focus              (19),
      shape              (20),
      matte              (21),
      custom             (22)
    } Default standard Optional [ color, thickness, style, cornerArc, padForArc="true", insets, title, titleLocation, titleFont, titleColor, icon, flatTop, flatBottom, noBottom, noTop, points, class, renderType, opacity ]  // the type of border
  } Reference,
  tabs Set {
    tab Tab
  } Optional, // Design: the set of tabs
  defaultTabIcon PrintableString Range(0..255) Optional [ alt, slice, base, size, scaling="bilinear" ], // Design~url: URL for an icon to use for tab's that don't define their own
  actAsFormViewer Boolean Default true, // Behavior: whether the pane should act as a form viewer (if false widgets will be registered with the next higher up form viewer)
  leadingHeaderWidget Any DefinedBy Widget Optional, // a leading widget for the tab area header
  trailingHeaderWidget Any DefinedBy Widget Optional, // a trailing widget for the tab area header
  disableBehavior Refine Default disable_container
} [ onChange, onOpened, onClosed, onWillClose, onItemChanged ]

DocumentTabPane

This class represents the configuration information for a viewer that arranges a section of the screen into a set of regions, only one of which can be selected at a given time. A region can be selected by clicking on its tab. It provides additional functionality geared for managing multiple documents (such as in a text editor)
DocumentTabPane ::= Extends TabPane {
  canGroup Boolean Default false, // Behavior: when the user can group the tabs
  canRearrangeTabs Boolean Default false, // Behavior: whether tabs can be rearranged
  heavyweightComponentsSupported Boolean Default false  // Behavior: whether heavyweight components should be supported
}

FloorTabPane

This class represents the configuration information for a viewer that arranges a section of the screen into a set of regions, only one of which can be selected at a given time. A region can be selected by clicking on its tab. The tabs are arranged like a set of floors in a multi-story building
FloorTabPane ::= Extends Viewer {
  closeButton Enumerated {
    none   (0),
    on_tab (1)
  } Default none Optional, // Appearance: where the tab close button should be
  outlookStyle Boolean Default false [ smallIconSize="16x16" ], // whether to use the Outlook style of floor tabs
  tabs Set {
    tab Tab
  } Optional, // Design: the tabs
  defaultTabIcon PrintableString Range(0..255) Optional [ alt, slice, base, size, scaling="bilinear" ], // Design~url: URL for the tab's icon
  selectedIndex Integer Range(-1..) Default 0, // Appearance~~selectedTab: index of the initially selected tab
  textHAlignment Enumerated {
    auto     (0), // let the widget decide
    left     (1), // the text is left aligned
    right    (2), // the text is right aligned
    leading  (3), // the text is aligned along the leading edge
    trailing (4), // the text is aligned along the trailing edge
    center   (5)  // the text is centered
  } Default auto, // Appearance: the horizontal alignment of the text
  buttonPainter GridCell Reference, // Appearance~~reload: a painter for the floor buttons
  buttonRolloverPainter GridCell Reference, // Appearance~~reload: a painter for the floor buttons during rollover
  buttonSelectedPainter GridCell Reference, // Appearance~~reload: a painter for the floor buttons that are selected
  actAsFormViewer Boolean Default true, // Behavior: whether the pane should act as a form viewer (if false widgets will be registered with the next higher up form viewer)
  disableBehavior Refine Default disable_container
} [ onChange, onOpened, onClosed, onWillClose ]

DocumentPane

This class represents the configuration information for a viewer that can display and edit documents
DocumentPane ::= Extends Viewer {
  editable Boolean Default false, // Behavior: whether the pane will support editing
  findMenuEnabled Boolean Default true, // Behavior: whether the find menu should be enabled
  styleActions Boolean Default false, // Behavior: whether style actions (bold, underline, etc.) should be enabled
  wordWrap Boolean Default true, // Behavior: whether word wrap should be enabled
  eventForStyleNavigation Boolean Default false, // Behavior: whether an event should be generated when the cursor moves from one style to another
  eventForDelete Boolean Default false, // Behavior: whether an event should be generated when text is deleted
  eventForInsert Boolean Default false, // Behavior: whether an event should be generated when text is inserted
  eventForStyleChange Boolean Default false, // Behavior: whether an event should be generated when the text style is changed
  eventModificationStateChange Boolean Default false, // Behavior: whether an event should be generated when the document's modification state changes
  eventForHyperlinks Boolean Default false, // Behavior: whether change events are generated for hyperlinks
  updateOverwriteStatus Boolean Default false, // Behavior: whether the main window's insert/overwrite status label should be updated to reflect the documents insert/overwrite mode
  followHyperlinks Boolean Default false, // Behavior: whether hyperlinks are automatically followed
  columnStatusLabelName PrintableString Range(0..64) Optional, // Design: the name of a column status label to update when the cursor column changes
  rowStatusLabelName PrintableString Range(0..64) Optional, // Design: the name of a row status label to update when the cursor row changes
  asynchronousLoading Boolean Default true, // Behavior: whether documents should load asynchronously
  showOverwriteCursor Boolean Default true, // Behavior: whether the cursor changes to indicate overwrite mode
  cursorShown Enumerated {
    when_editable       (0),
    always              (1),
    always_for_non_html (2),
    never               (3)
  } Default always_for_non_html, // Behavior: when a cursor should be shown
  quickFindSupport Enumerated {
    none       (0),
    search_bar (2)
  } Default search_bar, // Behavior: the type of quick find support to provide
  undoLimit Integer Range(-1..) Default 100, // Design: the maximum number of undo's to support
  indentationIncrement PrintableString Range(0..32) Default "20", // Behavior: the number of pixels to use to increment indentation
  scrollPane ScrollPane Reference, // Behavior~~reload: information specifying if the viewer is scrollable and how the associated scroll pane should be configured
  hyperLinkPopupMenu Set {
    menuItem MenuItem
  } Reference [ combine, onConfigure ]  // Design: popup menu for hyperlinks
} [ onChange ]

WidgetPane

This class represents the configuration information for a viewer that wraps a widget
WidgetPane ::= Extends Viewer {
  autoResizeWidget Boolean Default true, // Behavior~~reload: whether the pane should resize the widget to fill available space
  scrollPane ScrollPane Reference, // Behavior~~reload: information specifying if the viewer is scrollable and how the associated scroll pane should be configured
  widget Any DefinedBy Widget Optional  // Hidden: the widget to be wrapped (if not specified that the dataURL is used)
} [ onURLConnection ]

ImagePane

This class represents the configuration information for a viewer that displays and image and provides tools for manipulating the image
ImagePane ::= Extends Viewer {
  zoomingAllowed Boolean Default true [ minimum="10%", maximum="1000%", increment="10%" ], // Behavior: whether image zooming should be allowed
  panningAllowed Boolean Default true, // Behavior: whether image panning is allowed
  scrollWheelZoomingAllowed Boolean Default true, // Behavior: whether image zooming via a the mouse scroll wheel should be allowed
  movingAllowed Boolean Default false, // Behavior: whether image moving should be allowed
  rotatingAllowed Boolean Default true, // Behavior: whether image rotating should be allowed
  scaling Enumerated {
    nearest_neighbor            (0),
    bilinear                    (1),
    bicubic                     (2),
    bilinear_cached             (3),
    bicubic_cached              (4),
    progressive_bilinear        (5),
    progressive_bicubic         (6),
    progressive_bilinear_cached (7),
    progressive_bicubic_cached  (8)
  } Default bilinear, // Behavior: the type of scaling to perform
  autoScale Boolean Default false, // Behavior: whether the image should be automatically scaled to fit the size of the pane (if enabled zooming/paning/moving will be disabled)
  userSelectionAllowed Boolean Default false [ selectionColor, lineThickness="1.5", strokeType="dotted" ], // Behavior: whether the user can select parts of the image (for image types that support it)
  textSelectionAllowed Boolean Default false, // Behavior: whether text selection is allowed (for image types that support it)
  transitionAnimator PrintableString Optional [ duration, direction, acceleration, deceleration, resolution, startFraction, repeatCount, customProperties ], // Behavior: class name of the animator to use to animate transitions
  showLoadStatus Boolean Default true, // Behavior: whether the loading status of the image should be shown
  scrollPane ScrollPane Reference  // Behavior~~reload: information specifying if the viewer is scrollable and how the associated scroll pane should be configured
} [ onChange ]

CollapsiblePane

This class represents the configuration information for a viewer that supports the expansion and collapsing of it contents
CollapsiblePane ::= Extends WidgetPane {
  collapsibleInfo CollapsibleInfo, // Appearance~~reload: information specifying how the expand/collapse functionality should be configured
  disableBehavior Refine Default disable_container
} [ onWillExpand, onWillCollapse, onHasCollapsed, onHasExpanded ]

Table

This class represents configuration information for a widget that displays and manages multiple rows and columns of data.
Table ::= Extends Viewer {
  hierarchical Boolean Default false, // Design~~reload: whether the table is hierarchical
  sortedByColumn Integer Range(-1..) Optional, // Design: the column that the data will be initially sorted by when it is retrieved for the data source
  autoResizeMode Enumerated {
    none                      (0), // do not adjust column widths automatically; use a scrollbar.
    resize_next_column        (1), // when a column is adjusted in the UI, adjust the next column the opposite way
    resize_subsequent_columns (2), // during UI adjustment, change subsequent columns to preserve the total width; this is the default behavior.
    resize_last_column        (3), // during all resize operations, apply adjustments to the last column only
    resize_all_columns        (4)  // during all resize operations, proportionately resize all columns.
  } Default resize_subsequent_columns Optional, // Behavior: the resize mode to utilized during user initiated column resizing
  selectionMode Enumerated {
    none      (0), // selection not allowed
    single    (1), // only a single item can be selected at a time
    multiple  (2), // multiple items can be selected at a time
    block     (3), // multiple items can be selected at a time but the items must be in a contiguous block
    invisible (5)  // selection not allowed but the standard selection indicator is not painted
  } Default single Optional, // Behavior: the selection mode for the table
  columnSelectionAllowed Boolean Default false, // Behavior: whether column selection is allowed
  columnSortingAllowed Boolean Default true, // Behavior: whether column sorting is allowed
  columnResizingAllowed Boolean Default true, // Behavior: whether column resizing is allowed
  columnReorderingAllowed Boolean Default false, // Behavior: whether column reordering is allowed
  columnSpanningAllowed Boolean Default false, // Behavior: whether column spanning is allowed
  columnHidingAllowed Boolean Default false, // Behavior: whether column hiding is allowed
  itemCursorsSupported Boolean Default false [ whenNonNull="true", script ], // Behavior: whether to support cursors for data items
  deleteSelectionClearsCells Boolean Default false, // Behavior:whether the delete selection operation simply clears cells or actually removes rows
  rowSpanningAllowed Boolean Default false, // Behavior: whether row spanning is allowed
  changeSelColorOnLostFocus Boolean Default true, // Behavior: whether the selection color should change when the table looses focus (overrides the global default)
  deselectEventsEnabled Boolean Default false, // Behavior: whether events should be fired when an item is deselected
  findMenuEnabled Boolean Default false, // Behavior: whether to enable the find menu
  quickFindSupport Enumerated {
    none       (0),
    popup      (1),
    search_bar (2),
    both       (3)
  } Default none [ wildcards="true", repeats="true", recursive="true", caseSensitive="false" ], // Behavior: the type of quick-find support to provide
  singleClickActionEnabled Boolean Default false, // Behavior: whether a single click will trigger an action event
  boldColumnHeaders Boolean Default false, // Appearance: whether column headers should be bolded
  columnDropTracking Boolean Default false, // Behavior: whether to provide tracking support for dropping on a specific column (as opposed to just tracking for dropping on the row)
  clickCountToStartEditing Integer Default 1, // Behavior: the number of click it will take to start cell editing
  gridLineType Enumerated {
    none             (0),
    horizontal_lines (1),
    vertical_lines   (2),
    both             (3)
  } Default both, // Appearance: the type of line to use for drawing the grid
  gridLineStyle Enumerated {
    dotted (1),
    dashed (2),
    solid  (3)
  } Default solid, // Appearance: the style of line to use for drawing the grid
  gridLineColor PrintableString Range(0..64) Optional, // Appearance~color: the color of the grid line
  headerHeight PrintableString Range(0..32) Default "-1", // Appearance~~reload: the height of the table header
  headerFont Font Optional, // Appearance~font~headerFont: the font for the item header
  headerFgColor PrintableString Range(0..64) Optional, // Appearance~color~headerForeground: the foreground color for the header
  headerBgColor PrintableString Range(0..64) Optional [ type="linear", direction="vertical_top", magnitude, distribution ], // Appearance~gradient~background: the background color header
  headerCell GridCell Reference, // Appearance~~reload: a cell description for header cells (for painting purposes)
  headerRolloverCell GridCell Reference, // Appearance~~reload: a roll over cell description for header cells (for painting purposes)
  headerSelectionCell GridCell Reference, // Appearance~~reload: a selected cell description for header cells (for painting purposes)
  headerHotspotSize Integer Default 0 [ location="right", cursorName="hand", icon, rolloverIcon, onAction ], // Appearance~~reload: Number of pixels to utilize as a hotspot on the column header
  colHeaderSelectionPainted Boolean Default false, // Behavior: whether column header selections are painted when they are selected
  colHeaderRolloverPainted Boolean Default false, // Behavior: whether column header rollovers are painted
  colHeaderHotspotsSupported Boolean Default false, // Behavior: whether column header hotspots are supported
  rowHeaderFooterSelectionPainted Boolean Default true, // Behavior: whether row header/footer selections are painted when they are selected
  alternatingHighlightColor PrintableString Range(0..64) Optional, // Appearance~color: the color to use for alternating row/column highlighting
  alternatingHighlightType Enumerated {
    none   (0),
    row    (1),
    column (3)
  } Default none, // Appearance: the type to use for alternating highlighting to perform
  highlightSortColumn Boolean Default false, // Behavior: whether the sort column should be highlighted (this is independent of row/column highlighting)
  sortColumnHighlightColor PrintableString Range(0..64) Optional, // Appearance~color~runtime: the color to use for sort column highlighting
  extendBackgroundRendering Boolean Default true, // Appearance: whether the table background rendering (grid, alternating colors, etc.) should be extended to fill any empty space)
  truncateLastColumnBorder Boolean Default true, // Appearance: option to truncate the last column's border (useful when using certain types of table borders)
  autoSizeColumnsToFit Boolean Default false, // Behavior: whether table columns should be automatically sized to fit their contents
  autoSizeRowsToFit Boolean Default false, // Behavior: whether table rows should be automatically sized to fit their contents
  resetColumnsOnFontChange Boolean Optional, // Design: whether columns should be readjusted when the table's font changes
  inheritParentTableColumns Boolean Default true, // Behavior: if this is a child table whether it should inherit its parent's columns
  inheritParentTableStyle Boolean Default true, // Behavior: if this is a child table whether it should inherit its parent's style
  syncSelectionsWithParentTable Boolean Default true, // Behavior: if this is a child table whether its selections should be synchronized its parent's
  rowHeight PrintableString Range(0..32) Default "1ln", // Appearance: the height to use for each row in the table
  visibleRowCount Integer Optional, // Appearance: the desired number of visible rows
  enterKeyAction Enumerated {
    none         (0), // no action
    action_event (1), // triggers an action event
    next_row     (2), // move to the next row
    both         (3)  // trigger and action event and then move to the next row
  } Default action_event, // Behavior: what action should be taken when the enter key is pressed
  tabKeyAction Enumerated {
    next_component                 (0), // moves to the next focusable component
    next_component_unless_editable (1), // moves to the next focusable component unless the table is editable
    next_cell                      (2)  // moves to the next cell
  } Default next_component_unless_editable, // Behavior: what action should be taken when the enter key is pressed
  selectedIndex Integer Range(-1..) Default -1, // Appearance~~runtime: the index of the row that is to be initially selected
  handleFirstFocusSelection Boolean Default true, // Behavior: whether the widget should automatically handle the selection when the widget recieves focus for the first time
  submitValue Enumerated {
    selected_value_text                  (0), // submit the text of the selected rows
    selected_linked_data                 (1), // submit the linked of the selected rows
    selected_index                       (2), // submit the indexes of the selected rows
    selected_specific_column_value_text  (3), // submit the text of the column identified as the submit column for all selected rows
    selected_specific_column_linked_data (4)  // submit the linked data of the column identified as the submit column for all selected rows
  } Default selected_value_text, // Behavior: value to use when submitting data via a form
  submitColumn Integer Range(0..) Default 0, // Behavior: the column to use when submitting data
  previewData PreviewData Reference, // Appearance~~runtime: data to use to identify preview information for rows
  showStandardColumnHeader Boolean Default true, // Appearance~~reload: whether the standard column header is shown
  selectionGroupName PrintableString Range(0..64) Optional [ position ], // Design: the name of a selection group to tie this table's selection to
  overlapAutoToolTips Boolean Default false, // Behavior: whether auto-generated tooltips overlap existing text
  scrollPane ScrollPane Reference, // Behavior~~reload: information specifying if the widget is scrollable and how the associated scroll pane should be configured
  columnChooserEnabled Boolean Default false, // Behavior: whether the column chooser should be enabled
  modifiedItemImageURL PrintableString Range(0..255) Optional [ opacity="100%", renderType="upper_right", renderSpace="component", composite="src_over", scaling="bilinear", displayed="always" ], // Appearance~image~runtime: an overlay image to use to denote a modified item
  columns Set {
    column ItemDescription [ onAction ]
  } Optional [ onAction ], // Appearance~~reload: the set of columns for the table
  columnPopupMenu Set {
    menuItem MenuItem
  } Reference [ onConfigure ]  // Appearance~~runtime: popup menu for the widget.
} [ onAction, onChange, onItemChanged ]

TreeTable

This class represents configuration information for a widget that displays and manages multiple rows and columns of data as well as providing functionality for expanding and contracting rows.
TreeTable ::= Extends Table {
  expandableColumn Integer Range(0..) Default 0, // Design: the column that is expandable
  expandAll Boolean Default false, // Design~expandAll: whether all of the table rows should be initially expanded
  showRootHandles Boolean Default true, // Appearance: whether root node handles should be shown
  showTreeNodeLines Boolean Default false, // Appearance: whether tree lines should be shown for nodes
  treeLineColor PrintableString Range(0..64) Optional, // Appearance: the color for tree lines
  indentBy Integer Range(-1..100) Default 16  // Appearance: the number of pixels to use to indent a child node from a parent
} [ onHasCollapsed, onHasExpanded, onWillExpand, onWillCollapse ]

PropertyTable

This class represents configuration information for a widget that displays and manages multiple rows of name and value properties
PropertyTable ::= Extends TreeTable {
  usePane Boolean Default true [ tableBackground, tableBorder, displayAreaBorder, displayAreaBackground, toolbarBackground, toolbarBorder ], // Appearance~~reload: whether the table should be enclosed in a pane that contains controls for sorting and a description ares
  paneToolbarActions Set {
    action ActionItem
  } Reference, // Appearance~~reload: actions for the property pane toolbar
  propertiesOrder Enumerated {
    unsorted    (0),
    sorted      (1),
    categorized (2)
  } Default categorized, // Design~~reload: the initial order for properties
  categorySortOrder Enumerated {
    descending (-1),
    unsorted   (0),
    ascending  (1)
  } Default ascending, // Design~~reload: the sort order for categories. 0 means unsorted 1 means ascending and -1 means descending
  paintMargin Boolean Default true [ color ], // Design: whether the margin background should be painted
  miscCategoryName PrintableString Range(0..32) Optional, // Design: the name of the miscellaneous category (the category for items with no explicit category)
  expandedCategories PrintableString Range(0..255) Optional  // Design~~reload: a semi-colon separated list of categories to automatically expand
}

Chart

This class represents the configuration information for a widget that provides charting functionality
Chart ::= Extends Viewer {
  chartType Enumerated {
    line        (0),
    bar         (1),
    stacked_bar (2),
    pie         (3),
    area        (4)
  } Default line [ renderer ], // the type of chart
  horizontal Boolean Default false, // whether the chart is to be horizontally oriented
  showLegends Boolean Default true, // whether legends are to be shown
  showTooltips Boolean Default true, // whether tooltips are to be shown
  useDataItemTooltips Boolean Default false, // whether the tooltip property of the data item should be used as the tooltip to display
  draw3D Boolean Default false, // whether the chart should be drawn in 3d (if supported)
  zoomingAllowed Boolean Default true, // whether zooming is allowed
  scrollWheelZomingAllowed Boolean Default false [ maxZoomFactor="5" ], // whether zooming via the scroll is allowed (if zooming is allowed)
  savingAllowed Boolean Default false, // whether saving is allowed
  printingAllowed Boolean Default false, // whether printing is allowed
  propertiesEditingAllowed Boolean Default false, // whether editing of the chart properties (title , legends, etc.) are allowed
  duplicatesAllowed Boolean Default true, // whether duplicate values are allowed
  domainAxis DataItem [ timeUnit, tickIncrement, lowerBound, upperBound, labelAngle, labelColor, labelFont, labelsVisible ], // data item representing the domain axis. The time unit attribute is comprised of millisecond second minute hour day week month and year.
  rangeAxis DataItem [ tickIncrement, lowerBound, upperBound, labelAngle, labelColor, labelFont, labelsVisible ], // data item representing the range axis.
  chartTitle DataItem Reference, // data item representing the chart title
  autoSort Boolean Default false,
  plot Plot Reference, // a reference to the plotting information
  subTitles Set {
    subTitle DataItem
  } Reference, // a set of sub titles for the chart
  annotations Set {
    annotation DataItem
  } Reference, // a set of annotations for the chart
  rangeMarkers Set {
    marker DataItem
  } Reference, // a set of range markers for the chart
  domainMarkers Set {
    marker DataItem
  } Reference, // a set of domain markers for the chart
  scrollPane ScrollPane Reference  // Behavior~~reload: information specifying if the widget is scrollable and how the associated scroll pane should be configured
}

Tree

This class represents configuration information for a widget that displays and manages hierarchical set of data items and provides functionality for expanding and contracting those items
Tree ::= Extends Viewer {
  selectionMode Enumerated {
    none        (0), // selection not allowed
    single      (1), // only a single item can be selected at a time
    multiple    (2), // multiple items can be selected at a time
    block       (3), // multiple items can be selected at a time but the items must be in a contiguous block
    single_auto (4), // only a single item can be selected at a time, items will automatically be selected as the cursor moved over them. This is only valid if use in conjunction with singleClickAction
    invisible   (5)  // selection not allowed but the standard selection indicator is not painted
  } Default single Optional [ paintRow ], // Behavior: the selection mode for the tree
  editingMode Enumerated {
    none                (0),
    leaves              (1),
    branches            (2),
    leaves_and_branches (3)
  } Default none, // Behavior: the of node editing allowed
  rootNode DataItem Reference, // Appearance~~reload: the item for the root node of the tree
  showRootHandles Boolean Default true, // Appearance: whether root node handles should be shown
  showRootNode Boolean Default true, // Appearance: whether the root node should be shown
  rootNodeCollapsible Boolean Default true, // Appearance: whether the root node is collapsible
  changeSelColorOnLostFocus Boolean Default true, // Behavior: whether the selection color should change when the table looses focus (overrides the global default)
  deselectEventsEnabled Boolean Default false, // Behavior: whether events should be fired when an item is deselected
  itemCursorsSupported Boolean Default false [ whenNonNull="true", script ], // Behavior:whether to support cursors for data items
  findMenuEnabled Boolean Default false, // Behavior: whether to enable the find menu
  quickFindSupport Enumerated {
    none  (0),
    popup (1)
  } Default none [ wildcards="true", repeats="true", recursive="true", caseSensitive="false" ], // Behavior: the type of quick-find support to provide
  singleClickActionEnabled Boolean Default false, // Behavior: whether a single click will trigger an action event
  leafIcon PrintableString Range(0..255) Optional [ alt, slice, base, size, scaling="bilinear" ], // Appearance~url: icon to use for a leaf if the item does not provide it's own icon
  folderOpenIcon PrintableString Range(0..255) Optional [ alt, slice, base, size, scaling="bilinear" ], // Appearance~url: icon to use for open folders if the item does not provide it's own icon
  folderClosedIcon PrintableString Range(0..255) Optional [ alt, slice, base, size, scaling="bilinear" ], // Appearance~url: icon to use for closed folders if the item does not provide it's own icon
  itemDescription ItemDescription Reference, // Design: an optional description of the items that will populate the list
  selectedIndex Integer Range(-1..) Default -1, // Appearance~~runtime: the index of the row that is to be initially selected
  handleFirstFocusSelection Boolean Default true, // Behavior: whether the widget should automatically handle the selection when the widget recieves focus for the first time
  submitValue Enumerated {
    selected_value_text  (0), // submit the text of the selected rows
    selected_linked_data (1), // submit the linked of the selected rows
    selected_index       (2), // submit the indexes of the selected rows
    checked_value_text   (5), // submit the text of the checked rows
    checked_index        (6), // submit the indexes of the checked rows
    checked_linked_data  (7)  // submit the linked data of the checked rows
  } Default selected_value_text, // value to use when submitting data via a form
  visibleRowCount Integer Optional, // Appearance: the desired number of visible rows
  cellWidth PrintableString Range(0..32) Optional, // Appearance: the width of a cell
  rowHeight PrintableString Range(0..32) Default "1ln", // Appearance: the height to use for each row in the list
  selectionGroupName PrintableString Range(0..64) Optional [ position ], // Design: the name of a selection group to tie this tree to
  scrollPane ScrollPane Reference, // Behavior~~reload: information specifying if the widget is scrollable and how the associated scroll pane should be configured
  overlapAutoToolTips Boolean Default false, // Behavior: whether auto-generated tooltips overlap existing text
  expandAll Boolean Default false  // Behavior: whether all of the tree rows should be initially expanded
} [ onAction, onChange, onWillExpand, onWillCollapse, onHasCollapsed, onHasExpanded, onItemChanged ]

CheckBoxTree

This class represents configuration information for a widget that displays and manages hierarchical set of data items and provides functionality for expanding and contracting those items. Each node is also preceded by a check box that can independently selected
CheckBoxTree ::= Extends Tree {
  manageCheckboxSelection Boolean Default true, // Behavior: whether checkboxes are automatically selected/deselected when they are clicked on
  manageChildNodeSelections Boolean Default true  // Behavior: whether checking the parent node will force all children to be selected
}

ListBox

This class represents configuration information for a widget that manages a list of data items.
ListBox ::= Extends Viewer {
  selectionMode Enumerated {
    none        (0), // selection not allowed
    single      (1), // only a single item can be selected at a time
    multiple    (2), // multiple items can be selected at a time
    block       (3), // multiple items can be selected at a time but the items must be in a contiguous block
    single_auto (4), // Behavior: only a single item can be selected at a time, items will automatically be selected as the cursor moved over them. This is only valid if use in conjunction with singleClickAction
    invisible   (5)  // selection not allowed but the standard selection indicator is not painted
  } Default single Optional, // Behavior: the selection mode for the list
  listOrientation Enumerated {
    vertical        (0), // items are laid out vertically in a single column
    vertical_wrap   (1), // items are laid out vertically, wrapping to a new column as necessary. If the list's height property is not specified in lines, wrapping is determined by the height of the list; otherwise wrapping is done at after specified number of lines.
    horizontal_wrap (2)  // items are laid out horizontally, wrapping to a new row as necessary. If the list's height property is not specified in lines, wrapping is determined by the width of the list; otherwise wrapping is done in such a way as to ensure that the specified number of lines is visible.
  } Default vertical, // Appearance: the orientation of items in the list
  itemDescription ItemDescription Reference, // Design: an optional description of the items that will populate the list
  selectedIndex Integer Range(-1..) Default -1, // Behavior: the index of the row that is to be initially selected
  handleFirstFocusSelection Boolean Default true, // Behavior: whether the widget should automatically handle the selection when the widget recieves focus for the first time
  submitValue Enumerated {
    selected_value_text  (0), // submit the text of the selected rows
    selected_linked_data (1), // submit the linked of the selected rows
    selected_index       (2), // submit the indexes of the selected rows
    checked_value_text   (5), // submit the text of the checked rows
    checked_index        (6), // submit the indexes of the checked rows
    checked_linked_data  (7)  // submit the linked data of the checked rows
  } Default selected_value_text, // value to use when submitting data via a form
  visibleRowCount Integer Optional, // Appearance:the desired number of visible rows
  changeSelColorOnLostFocus Boolean Default true, // Behavior: whether the selection color should change when the table looses focus (overrides the global default)
  alternatingHighlightColor PrintableString Range(0..64) Optional, // Appearance~color: the color to use for alternating row/column highlighting
  deselectEventsEnabled Boolean Default false, // Behavior: whether events should be fired when an item is deselected
  itemCursorsSupported Boolean Default false [ whenNonNull="true", script ], // Behavior:whether to support cursors for data items
  findMenuEnabled Boolean Default false, // Behavior: whether to enable the find menu
  quickFindSupport Enumerated {
    none  (0),
    popup (1)
  } Default none [ wildcards="true", repeats="true", recursive="true", caseSensitive="false" ], // Behavior: the type of quick-find support to provide
  singleClickActionEnabled Boolean Default false, // Behavior: whether a single click will trigger an action event
  indexForFiltering Boolean Default false, // whether items should be indexed (by first character) to improve filtering performance
  rowHeight PrintableString Range(0..32) Default "1ln" Optional, // Appearance: the height of rows
  cellWidth PrintableString Range(0..32) Optional, // Appearance: the width of a cell
  selectionGroupName PrintableString Range(0..64) Optional [ position ], // Design: the name of a selection group to tie this list to
  overlapAutoToolTips Boolean Default false, // Behavior: whether auto-generated tooltips overlap existing text
  scrollPane ScrollPane Reference  // Behavior~~reload: information specifying if the widget is scrollable and how the associated scroll pane should be configured
} [ onAction, onChange, onItemChanged ]

CheckBoxList

This class represents configuration information for a widget that manages a list of data items. Each item is also preceded by a check box that can independently selected
CheckBoxList ::= Extends ListBox {
  manageCheckboxSelection Boolean Default true  // Design: whether checkboxes are automatically selected/deselected when they are clicked on
}

Canvas

The class represents a drawing surface
Canvas ::= Extends Viewer {
  context PrintableString Default "2d", // Design: the type of context
  scaling Enumerated {
    nearest_neighbor            (0),
    bilinear                    (1),
    bicubic                     (2),
    bilinear_cached             (3),
    bicubic_cached              (4),
    progressive_bilinear        (5),
    progressive_bicubic         (6),
    progressive_bilinear_cached (7),
    progressive_bicubic_cached  (8)
  } Default bilinear  // Behavior: the type of scaling to perform
}

Browser

The class represents the embedded browser for the platform
Browser ::= Extends Viewer {
  updateStatusBar Boolean Default true [ showCancel="true" ], // Design: whether the status bar should be updated automatically (this will only happen if no change listener is installed)
  showLocationBar Boolean Default false, // Design: whether the browser's location bar should be shown (if the browser supports it)
  showToolBar Boolean Default false, // Design: whether the browser's toolbar should be shown (if the browser supports it)
  showStatusBar Boolean Default false  // Design: whether the browser's statusbar should be shown (if the browser supports it); if true then the updateStatusBar property is ignored
} [ onChange ]

MediaPlayer

The class represents the embedded media player for the platform
MediaPlayer ::= Extends Viewer {
  showControlBar Boolean Default true, // Design: whether the media player's control bar will be shown
  stretchToFit Boolean Default true  // Design: whether the media player will stretch to fit the available space
}

FlashPlayer

The class represents the embedded flash player for the platform
FlashPlayer ::= Extends Browser {
}

Viewer

The class provides the base configuration for viewer A viewer is a high level widget that can occupy screen regions and can serves as a container for widgets or other viewers. Viewers also support more complex functionality such as printing and saving.
Viewer ::= Extends Widget {
  attributes Set {
    attribute NameValuePair
  } Reference, // viewer attributes
  contextURL PrintableString Range(0..255) Optional, // the URL to use when resolving relative URL paths
  templateURL PrintableString Optional [ inline, cache ], // Design~url~reload: url for a object template
  collapsedTitle PrintableString Range(0..255) Optional, // Appearance: title to use if the viewer container is collapsed
  icon PrintableString Range(0..255) Optional [ alt, slice, base, size, scaling="bilinear" ], // Appearance~url: url to use to retrieve an icon for the viewer
  windowOnly Boolean Default false, // Behavior: whether this viewer can only be embed as the main component in a new window
  scriptURL PrintableString Optional [ mimeType, inline, runOnce="true", shared="true" ], // Design~url: the URL for a script for the viewer. Only loads an runs a non-inline script once based on the script's URL
  local Boolean, // Behavior: Whether the viewer is local or global, local viewers are not registered (cannot be accessed by name outside of thier container).
  loadAnimator PrintableString Optional [ duration, direction, acceleration, deceleration, resolution, startFraction, repeatCount, customProperties ], // Behavior: class name of the animator to use to animate the loading of the widget
  disableBehavior Enumerated {
    disable_container (0),
    disable_widgets   (1),
    disable_both      (2)
  } Default disable_widgets [ disableOverlayColor ]  // Behavior: the behavior for a disabled viewer
} [ onLoad, onUnload, viewerClass, language, lockable ]

Widget

This class provides the base configuration for widgets. A widget represents a visual component that can be utilized to display and manipulate data items. A widget must be contained within a viewer in order to be realized on the screen.
Widget ::= Sequence {
  name PrintableString Range(0..64) Optional, // Design: the name to use to programmatically address the widget
  title PrintableString Range(0..80) Optional, // Design: title/prompt for the widget
  titleLocation Enumerated {
    not_displayed        (0),
    auto                 (1),
    top_left             (2),
    top_right            (3),
    top_center           (4),
    bottom_left          (5),
    bottom_center        (6),
    bottom_right         (7),
    frame_top_left       (8),
    frame_top_center     (9),
    frame_top_right      (10),
    frame_bottom_left    (11),
    frame_bottom_center  (12),
    frame_bottom_right   (13),
    inside_top_left      (14),
    inside_top_right     (15),
    inside_top_center    (16),
    inside_bottom_left   (17),
    inside_bottom_center (18),
    inside_bottom_right  (19),
    center_left          (20),
    collapsible_frame    (21)
  } Default auto Optional, // Layout: where the title/prompt is to be displayed
  borders Set {
    border Enumerated {
      none               (0),
      standard           (1),
      line               (2),
      line_3d            (3),
      raised             (4),
      lowered            (5),
      bevel_raised       (6),
      bevel_lowered      (7),
      etched_raised      (8),
      etched_lowered     (9),
      frame_raised       (10),
      frame_lowered      (11),
      simple_drop_shadow (12),
      drop_shadow        (13),
      shadow             (14),
      group_box          (15),
      empty              (16),
      titled             (17),
      icon               (18),
      focus              (19),
      shape              (20),
      matte              (21),
      custom             (22)
    } Default standard Optional [ color, thickness, style, cornerArc, padForArc="true", insets, title, titleLocation, titleFont, titleColor, icon, flatTop, flatBottom, noBottom, noTop, points, class, renderType, opacity ]  // the type of border
  } Reference, // Appearance~borders~reload: borders for the widget
  columnSpan Integer Range(-1..) Default 1 Optional, // Layout: number of columns to span if used in a table-based layout
  rowSpan Integer Range(-1..) Default 1 Optional, // Layout: number of rows to span if used in a table-based layout
  verticalAlign Enumerated {
    auto   (0), // let the container decide
    center (1), // center vertically
    top    (2), // align on top
    bottom (3), // align on the bottom
    full   (4)  // full justify
  } Default auto Optional, // Layout: the vertical alignment for the widget
  horizontalAlign Enumerated {
    auto   (0), // let the container decide
    center (1), // center horizontally
    left   (2), // align left
    right  (3), // align right
    full   (4)  // full justify
  } Default auto Optional, // Layout: the horizontal alignment for the widget
  font Font Optional, // Appearance~font~reload: the font
  fgColor PrintableString Range(0..64) Optional, // Appearance~color~foreground: the foreground color
  bgColor PrintableString Range(0..128) Optional [ type="linear", direction="vertical_top", magnitude, distribution ], // Appearance~gradient~background: the background color (use "transparent" for transparent backgrounds )
  bounds Rectangle Optional, // Layout: the size and location of the widget (based on the layout of it's parent viewer)
  titleInPreceedingColumn Boolean Default true, // Layout: whether the widgets title is placed in the preceding column in a table layout
  contentPadding Margin Reference, // Layout: the margin between the widget's content and it's border
  cellPadding Margin Reference, // Layout: the margin between the widget's border and it's cell bounds when in a form or grid
  required Boolean Default false, // Behavior: whether the widget is required to have a value for form submission
  enabled Boolean Default true, // Appearance: whether the widget is enabled
  visible Boolean Default true, // Appearance~~reload: whether the widget is visible
  focusable Boolean Default true, // Behavior: whether the widget can obtain focus
  focusPainted Boolean Optional, // Behavior: whether a visual indicator of focus is painted
  submitable Boolean Default true, // Behavior: whether the widget's is submitted when an enclosing form is submitted
  copyingAllowed Boolean, // Behavior: whether the widget allows the copying of its contents
  pastingAllowed Boolean, // Behavior: whether the widget allows pasting
  draggingAllowed Boolean Default false, // Behavior: whether the widget allows items to be dragged
  deletingAllowed Boolean Default false, // Behavior: whether the widget allows deleting
  defaultContextMenu Boolean Default true, // Behavior: whether the widget's should show a default context menu
  tooltip PrintableString Optional, // Appearance~~runtime: the tool tip for the widget
  actionLink Link Reference, // Behavior: link to activate for an action event
  standardHandlers PrintableString Optional, // Behavior: a comma separated list of events to invoke standard handlers for. When a specified event occurs the function with the name in the form of _ will be invoked
  propertyChangeHandlers PrintableString Optional, // Behavior: a comma separated list of property names/events to invoke when the named property changes
  keystrokeMappings PrintableString Optional, // Behavior: a set of keystroke names and code fragments (predefined actions can be used by prefacing the action name with 'action:') to execute for the keystroke
  dataURL PrintableString Optional [ mimeType, deferred, columnSeparator="|", inline, ldSeparator, riSeparator, unescape="false", aggregate, parser ], // Design~url~reload: a URL to use to retrieve data for the widget
  dropTracking Enumerated {
    none         (0), // drop support not enabled
    auto         (1), // drop support will be configured based on system defaults
    on_item      (2), // track for dropping on an item
    insert_item  (3), // track for inserting an item
    on_or_insert (4)  // track for dropping on and item or inserting an item
  } Default none [ explicitItemImport ], // Behavior: drop mode tracking explicitItemImport=true means that the item must explicitly import the dataflavor being dropped for the 'on' mode to be supported by that item
  importDataFlavors Set {
    flavor PrintableString Range(0..255)
  } Reference, // Design: data flavors that this widget can import
  exportDataFlavors Set {
    flavor PrintableString Range(0..255)
  } Reference, // Design: data flavors that this widget can export
  supportedActions Set {
    action PrintableString Range(0..64)
  } Reference, // Design: registered actions that this widget supports
  popupMenu Set {
    menuItem MenuItem
  } Reference [ cache, onAction ], // Design: popup menu for the widget.
  bgImageURL PrintableString Range(0..255) Optional [ opacity="100%", renderType="tiled", waitForLoad="false", renderSpace="within_border", composite="src_over", scaling="bilinear", preserveSource ], // Appearance~image~backgroundOverlayPainter: an background image for the widget (not all widgets support background images)
  overlayImageURL PrintableString Range(0..255) Optional [ opacity="10%", renderType="tiled", waitForLoad="false", renderSpace="within_border", composite="src_over", scaling="bilinear", displayed="always", preserveSource ], // Appearance~image~overlayPainter: an overlay image for the widget (not all widgets support overlay images)
  overlayWidget OverlayInfo Reference, // Hidden~~reload: widget to use as an overlay for this widget
  accessibleContext AccessibleContext Reference, // accessibility information
  templateName PrintableString Range(0..64) Optional [ context ], // Design~~reload: name of an object template to use to customize the widget
  cursorName PrintableString Range(0..64) Optional, // Design: the name of a cursor for the item
  customProperties PrintableString Optional, // a set of name/value pair custom properties separated by commas
  deferredImageIcon PrintableString Range(0..255) Optional [ alt, slice, base, size, scaling="bilinear" ], // Design~url: the icon to use when image loading is deferred for this widget
  textDirection Enumerated {
    auto (0),
    ltr  (1),
    rtl  (2)
  } Default auto  // Behavior: the direction of text
} [ onBlur, onClick, onConfigure, onCreated, onDblClick, onDrag, onDragEnd, onDragEnter, onDragExit, onDragOver, onDragStart, onDrop, onDropEnd, onError, onStartedLoading, onFinishedLoading, onFocus, onHidden, onKeyDown, onKeyPress, onKeyUp, onMouseDown, onMouseDragged, onMouseIn, onMouseMoved, onMouseOut, onMouseUp, onMouseWheel, onResize, onShown, formValueFunction, submitable ]

Navigator

This class represents configuration information for a widget that provide the navigation via a horizontal series of buttons that can identify a path taken; or the current selection or state of a certion option
Navigator ::= Extends Widget {
  type Enumerated {
    hiearchical (0),
    toggle      (1),
    option      (2)
  } Default hiearchical, // Appearance~~reload: the type of navigator
  selectedIndex Integer Range(-1..) Default -1, // Behavior: the index of the button that is to be initially selected (when not a hierarchical type)
  showBackButton Boolean Default true, // Appearance: whether the back button should be shown
  useTextForTooltip Boolean Default true, // Design: whether a buttons text should be used a it's tool tip
  showIconsOnly Boolean Default false, // Appearance: whether to show only icons or toe show both icons and text
  separatorLineColor PrintableString Range(0..64) Optional, // Appearance~color~reload: the color for the line that separates the buttons
  pressedPainter GridCell Reference [ foreground, font ], // Appearance: painter for when a button is pressed
  selectionPainter GridCell Reference [ foreground, font ], // Appearance: painter for when a button is selected
  textHAlignment Enumerated {
    auto     (0), // let the widget decide
    left     (1), // the text is left aligned
    right    (2), // the text is right aligned
    leading  (3), // the text is aligned along the leading edge
    trailing (4), // the text is aligned along the trailing edge
    center   (5)  // the text is centered
  } Default auto, // Appearance~~reload: the horizontal alignment of the text
  textVAlignment Enumerated {
    auto   (0), // let the widget decide
    top    (1), // the text is top aligned
    bottom (2), // the text is bottom aligned
    center (5)  // the text is centered
  } Default auto, // Appearance~~reload: the vertical alignment of the text
  iconPosition Enumerated {
    auto          (0), // let the widget decide
    left          (1), // the icon is positioned to the left of the text
    right         (2), // the icon is positioned the right of the text
    leading       (3), // the icon is positioned along the leading edge
    trailing      (4), // the icon is positioned along the trailing edge
    top_center    (5), // the icon is positioned above the text and is centered
    top_left      (6), // the icon is positioned to the top_left of the text
    top_right     (7), // the icon is positioned the top_right of the text
    bottom_center (8), // the icon is positioned below the text and is centered
    bottom_left   (9), // the icon is positioned to the bottom_left of the text
    bottom_right  (10)  // the icon is positioned the bottom_right of the text
  } Default auto, // Layout: the position of the icon
  iconScaling Enumerated {
    none        (0),
    item_height (1),
    item_width  (2),
    item_size   (3),
    relative    (4)
  } Default none [ percent ], // Behavior: how to scale the widget's icon
  actions Set {
    action ActionItem
  } Optional  // Design: a set of actions that will be used to create the navigation buttons
}

ComboBox

This class represents configuration information for a widget that manages a popup for which selections can be made. It can also allow the user to type in a value if no of the predefined values are applicable
ComboBox ::= Extends Widget {
  editable Boolean Default false Optional, // Behavior: the combo box will be editable
  visibleRowCount Integer Optional, // Design: the maximum number of items to display in list type popups
  itemDescription ItemDescription Reference, // an optional description of the items that will populate the list
  value PrintableString Optional, // Appearance: the value for an editable combobox
  selectedIndex Integer Range(-1..) Default -1, // Behavior: the index of the row that is to be initially selected
  submitValue Enumerated {
    selected_value_text  (0),
    selected_linked_data (1),
    selected_index       (2)
  } Default selected_value_text, // Behavior: value to use when submitting data via a form
  deselectEventsEnabled Boolean Default false, // Behavior: whether events should be fired when an item is deselected
  componentType Enumerated {
    listbox          (0), // a list box
    widget           (1), // the widget defined in the popupWidget property
    file_chooser     (2), // a predefined component for choosing a file
    folder_chooser   (3), // a predefined component for choosing a folder
    font_chooser     (4), // a predefined component for choosing a font
    fontname_chooser (5), // a predefined component for choosing a font
    custom           (99)  // a custom combobox specified buy the custom class property
  } Default listbox [ buttonOnly ], // Appearance~~reload: the type of popup component that the combo box will display
  quickFindSupport Enumerated {
    none          (0),
    popup         (1),
    auto_complete (4)
  } Default none [ wildcards="true", repeats="true", recursive="true", caseSensitive="false", strict ], // Behavior: the type of quick-find support to provide
  indexForFiltering Boolean Default false, // Behavior: whether items should be indexed (by first character) to improve filtering performance
  popupResizable Boolean Default false, // Behavior: whether the popup is resizable
  showPopupAsDialog Boolean Default false, // Behavior: whether the popup should be shown as a dialog box
  showPopupButton Boolean Default true [ icon, rolloverIcon, pressedIcon, disabledIcon, border, scaleIcons, bgColor ], // Appearance~~reload: whether the popup buton should be shown
  popupPainter GridCell Reference, // Design: a painter for the popup background
  useSameBorderForPopup Boolean Default false, // Behavior: whether the popup should use the same border as the combobox
  rowHeight PrintableString Range(0..32) Optional, // Appearance: the height to use for each row in the combobox
  customClass PrintableString Range(0..255) Optional [ fixButton="true" ], // Appearance~~reload: the class name of a custom combobox derived from AbstractComboBox
  converterClass PrintableString Range(0..255) Optional, // the programmatic class that converts the item's string value to an object
  valueContext PrintableString Optional, // additional value describing the information
  popupWidget Any DefinedBy Widget Optional [ closeOnAction="true", okWidget, cancelWidget, valueAttribute ]  // Design: a popup widget for the widget componentType
} [ onAction, onChange, onWillExpand, onWillCollapse ]

TextField

This class represents the configuration for a widget that allows a single line of text to be entered and/or edited
TextField ::= Extends Widget {
  visibleCharacters Integer Range(0..) Optional, // Appearance: number of characters columns to size the field for (use zero to let the widget decide)
  value PrintableString Optional, // Appearance: the value for the field
  emptyFieldText PrintableString Optional, // Appearance: optional text to display in the field when the field is empty
  emptyFieldTextFont Font Reference, // Appearance~font~reload: the font to use to display the specified empty field text
  emptyFieldTextColor PrintableString Range(0..64) Optional, // Appearance~color: the color to use to display the specified empty field text
  errorMessage PrintableString Range(0..80) Optional [ displayWidget ], // Behavior: error message to display for invalid input
  inputMask PrintableString Range(0..64) Optional [ placeHolder, preserveLiteralCharacters="false" ], // Behavior: format specifier for controlling the format of text input
  inputValidator PrintableString Range(0..64) Optional [ valueType="number", reformat, validateOnLostFocus="true", submitRawValue, maximum, minimum ], // Behavior: format specifier for validating input text input valueType can be string date or number
  validCharacters PrintableString Optional, // Behavior: a list of valid characters
  editable Boolean Default true, // Behavior: whether the field is editable
  minCharacters Integer Range(0..) Optional, // Behavior: the minimum characters to allow (use zero for no minimum)
  maxCharacters Integer Range(0..) Optional, // Behavior: the maximum characters to allow (use zero for no maximum)
  undoLimit Integer Range(-1..) Default 100  // Behavior: the maximum number of undos to support
} [ onAction, onChange ]

FileUploadField

This class represents the configuration for a widget that allows a file to be selected and subsequently uploaded when the associated form is submitted
FileUploadField ::= Extends TextField {
  dialogTitle PrintableString Optional, // Design:the title to use for the file selection dialog box
  buttonText PrintableString Default "Browse...", // Appearance~~fileUploadButtonText: the text for the button that will initiate the file selection
  buttonIcon PrintableString Range(0..255) Optional [ alt, slice, base, size, scaling="bilinear" ]  // Appearance~url~fileUploadButtonIcon: the icon for the button that will initiate the file selection
}

PasswordField

This class represents the configuration for a widget that allows a password to be entered. The password can be hashed prior to submission. If the password is hashed, it will be transmitted as a base64 encoded string
PasswordField ::= Extends Widget {
  visibleCharacters Integer Range(0..) Optional, // Appearance: number of characters to size the field for use zero to let the widget decide)
  minCharacters Integer Range(0..32) Optional, // Behavior: the minimum characters to allow (use zero for no minimum)
  maxCharacters Integer Range(0..128) Optional, // Behavior: the maximum characters to allow (use zero for no maximum)
  validCharacters PrintableString Optional, // Behavior: a list of valid characters
  errorMessage PrintableString Range(0..80) Optional, // Behavior: error message to display for invalid input
  echoChar Integer Range(0..65535) Optional, // Behavior: the character to echo
  hashAlgorithm Enumerated {
    none (0),
    md5  (1),
    sha  (2)
  } Default none Optional  // Design:the type of hashing to do on the password
} [ onAction, onChange ]

TextArea

This class represents the configuration for a widget that allows one or more lines of text to be entered and/or edited
TextArea ::= Extends TextField {
  visibleLines Integer Range(0..) Optional, // Appearance: number of lines to size the area for (use zero to let the widget decide)
  wordWrap Boolean Default true, // Behavior: whether the field will word wrap if is a multiline field
  supportScrolling Boolean Default true  // Behavior: whether the text area supports scrolling
}

Button

This class represents the configuration for an abstract button widget it is mean to be used as a base for button type widgets
Button ::= Extends Widget {
  value PrintableString Range(0..255) Optional, // Appearance: the text for the button's value
  icon PrintableString Range(0..255) Optional [ alt, slice, base, size, scaling="bilinear" ], // Appearance~url: url to use to retrieve the button's icon
  selectedIcon PrintableString Range(0..255) Optional [ alt, slice, base, size, scaling="bilinear" ], // Appearance~url: url to use to retrieve an icon for a toggle style button that is in the selected state
  pressedIcon PrintableString Range(0..255) Optional [ alt, slice, base, size, scaling="bilinear" ], // Appearance~url~runtime: url to use to retrieve an icon for a button that is in the pressed state
  disabledIcon PrintableString Range(0..255) Optional [ alt, slice, size, scaling="bilinear" ], // Appearance~url: url to use to retrieve an icon for a button that is in the disabled state
  disabledSelectedIcon PrintableString Range(0..255) Optional [ alt, slice, size, scaling="bilinear" ], // Appearance~url: url to use to retrieve an icon for a button that is in the disabled/selected state
  rolloverIcon PrintableString Range(0..255) Optional [ alt, slice, size, scaling="bilinear" ], // Appearance~url: url to use to retrieve an icon for a button that is in the rollover state
  rolloverSelectedIcon PrintableString Range(0..255) Optional [ alt, slice, size, scaling="bilinear" ], // Appearance~url: url to use to retrieve an icon for a button that is in the rollover/selected state
  showText Boolean Default true, // Appearance: whether the button text should be shown (or used only as a tool tip)
  textHAlignment Enumerated {
    auto     (0), // let the widget decide
    left     (1), // the text is left aligned
    right    (2), // the text is right aligned
    leading  (3), // the text is aligned along the leading edge
    trailing (4), // the text is aligned along the trailing edge
    center   (5)  // the text is centered
  } Default auto, // Appearance: the horizontal alignment of the text
  textVAlignment Enumerated {
    auto   (0), // let the widget decide
    top    (1), // the text is top aligned
    bottom (2), // the text is bottom aligned
    center (5)  // the text is centered
  } Default auto, // Appearance: the vertical alignment of the text
  iconPosition Enumerated {
    auto          (0), // let the widget decide
    left          (1), // the icon is positioned to the left of the text
    right         (2), // the icon is positioned the right of the text
    leading       (3), // the icon is positioned along the leading edge
    trailing      (4), // the icon is positioned along the trailing edge
    top_center    (5), // the icon is positioned above the text and is centered
    top_left      (6), // the icon is positioned to the top_left of the text
    top_right     (7), // the icon is positioned the top_right of the text
    bottom_center (8), // the icon is positioned below the text and is centered
    bottom_left   (9), // the icon is positioned to the bottom_left of the text
    bottom_right  (10)  // the icon is positioned the bottom_right of the text
  } Default auto, // Layout: the position of the icon
  iconScaling Enumerated {
    none        (0),
    item_height (1),
    item_width  (2),
    item_size   (3),
    relative    (4)
  } Default none [ percent ], // Layout: how to scale the widget's icon
  submitValue Enumerated {
    state_on_off              (0), // submit the state of the button using on/off
    state_selected_deselected (1), // submit the state of the button using selected/deselected
    state_zero_one            (2), // submit the state of the button using 0/1
    text                      (3), // submit the text of the button
    value_property            (4)  // submit the custom property by the name of 'value' (html forms compability)
  } Default state_on_off, // Behavior: value to use when submitting data via a form
  rolloverEnabled Boolean Default true, // Behavior: whether the rollover effect should be enabled
  autoCreatePressedIcon Boolean Default false, // Behavior: whether a pressed icon should be created from the default icon
  groupName PrintableString Range(0..64) Optional [ allowDeselection="false" ], // Design: the name of the group the button belongs to
  selected Boolean Default false  // Appearance: whether the button is initially selected
} [ onAction ]

PushButton

This class represents the configuration for a button widget
PushButton ::= Extends Button {
  actionType Enumerated {
    scripted     (0), // the button action will be handled by a script
    submit_form  (1), // the button will submit the enclosed form
    clear_form   (2), // the button will clear the enclosed form
    popup_menu   (3), // the button will popup a menu
    popup_widget (4), // the button will popup a widget
    link         (5), // the button will activate a link
    list_toggle  (6)  // the button will toggle its set of list values eveny time it is clicked
  } Default scripted, // Behavior: the type of action for the button
  buttonStyle Enumerated {
    standard                   (0), // a standard button
    toolbar                    (1), // a toolbar style button
    toolbox                    (2), // a toolbox style button
    hyperlink                  (3), // a hyperlink button that is underlined when the mouse hovers above it
    hyperlink_always_underline (4), // a hyperlink button that is always underlined
    split_toolbar              (5), // a button that supports a pull-down menu
    split_toolbox              (6), // a button that supports a pull-down menu
    toggle_toolbar             (7), // a button that supports a two states
    toggle_toolbox             (8)  // a button that supports a two states
  } Default standard, // Appearance~~reload: the style of button
  orientation Enumerated {
    auto          (0),
    horizontal    (1),
    vertical_up   (2),
    vertical_down (3)
  } Default auto, // Appearance~~reload: how to scale the widget's icon
  defaultMenuIndex Integer Range(-1..100) Default -1, // default menu index for popup menu action types
  popupWidget Any DefinedBy Widget Optional [ transient="true", resizable="false", closeOnAction="true", matchBackground="true", okWidget, cancelWidget, contentPadding, url ], // Appearance: the definition of the widget for a popup_widget button
  focusedAction Boolean Default false, // Behavior: whether the button represents a focused action (will only be enabled when a supported component is focused)
  enabledOnSelectionOnly Boolean Default false, // Behavior: whether the action is only enabled when there is a selection is a supported component
  actionRepeats Boolean Default false [ delay="60", initialDelay="300" ], // Behavior: whether the button's action repeats when the button is held down
  useSharedBorderForPopup Boolean Default true, // Behavior: whether a shared border will be use when a popup widget is displayed (the border will encompass both the button and the popup widget)
  pressedPainter GridCell Reference, // Appearance: painter for when a button is pressed
  selectionPainter GridCell Reference, // Appearance: painter for when a button is selected
  rolloverPainter GridCell Reference, // Appearance: painter for when the button is rolled overbutton is selected
  submitValue Refine Default text  // Behavior: value to use when submitting data via a form
} [ onWillExpand, onWillCollapse ]

RadioButton

This class represents the configuration for a radio button
RadioButton ::= Extends Button {
} [ onChange ]

CheckBox

This class represents the configuration for a check box
CheckBox ::= Extends Button {
  indeterminateIcon PrintableString Range(0..255) Optional [ alt, slice, base, size, scaling="bilinear" ], // Appearance~url: url to use to retrieve an icon for the checkbox when it's in a state other than selected or deselected (if it is a tri-state checkbox)
  triState Boolean Default false, // Hidden: whether it is a tri-state checkbox
  initialState Enumerated {
    deselected    (0),
    selected      (1),
    indeterminate (2)
  } Default deselected  // Appearance~~state: the initial state of the checkbox
} [ onChange ]

Label

This class represents the configuration for a label widget
Label ::= Extends Widget {
  icon PrintableString Range(0..255) Optional [ alt, slice, base, size, scaling="bilinear" ], // Appearance~url: url to use to retrieve an icon for the label
  value PrintableString Optional, // Appearance: the text for the label's value
  labelFor PrintableString Range(0..255) Optional, // Design: the name of the widget that the label is for
  textHAlignment Enumerated {
    auto     (0), // let the widget decide
    left     (1), // the text is left aligned
    right    (2), // the text is right aligned
    leading  (3), // the text is aligned along the leading edge
    trailing (4), // the text is aligned along the trailing edge
    center   (5)  // the text is centered
  } Default auto, // Appearance: the horizontal alignment
  textVAlignment Enumerated {
    auto   (0), // let the widget decide
    top    (1), // the text is top aligned
    bottom (2), // the text is bottom aligned
    center (5)  // the text is centered
  } Default auto, // Appearance: the vertical alignment
  iconPosition Enumerated {
    auto            (0), // let the widget decide
    left            (1), // the icon is positioned to the left of the text
    right           (2), // the icon is positioned the right of the text
    leading         (3), // the icon is positioned along the leading edge
    trailing        (4), // the icon is positioned along the trailing edge
    top_center      (5), // the icon is positioned above the text and is centered
    top_left        (6), // the icon is positioned to the top_left of the text
    top_right       (7), // the icon is positioned the top_right of the text
    bottom_center   (8), // the icon is positioned below the text and is centered
    bottom_left     (9), // the icon is positioned to the bottom_left of the text
    bottom_right    (10), // the icon is positioned the bottom_right of the text
    right_justified (11)  // the icon is positioned to the far right of the text
  } Default auto, // Appearance: the position of the icon
  iconScaling Enumerated {
    none        (0),
    item_height (1),
    item_width  (2),
    item_size   (3)
  } Default none, // Behavior: how to scale the widget's icon
  orientation Enumerated {
    auto          (0),
    horizontal    (1),
    vertical_up   (2),
    vertical_down (3)
  } Default auto, // Appearance~~reload: how to scale the widget's icon
  supportHyperLinks Boolean Default false  // Design: whether hyperlinks are supported in the label
} [ onChange, onAction ]

Slider

This class represents the configuration for a widget that allows an integer value to be selected for a fixed range using a slider
Slider ::= Extends Widget {
  value Integer Default 0, // Appearance: the value for the slider
  minValue Integer Default 0, // Behavior~spinner: minimum value for the slider
  maxValue Integer Default 100, // Behavior~spinner: maximum value for the slider
  horizontal Boolean Default true, // Appearance~~orientation: whether the slider is to be horizontally oriented
  snapToTicks Boolean Default false, // Behavior: whether the slider should snap to tick marks
  minorTickSpacing Integer Range(0..) Default 0, // Appearance~spinner: the amount of space between minor ticks
  majorTickSpacing Integer Range(0..) Default 10, // Appearance~spinner: the amount of space between major ticks
  showLabels Boolean Default false, // Appearance: whether labels should be shown for the tick marks
  showTicks Boolean Default false, // Appearance: whether the tick marks should be shown
  showTrack Boolean Default true, // Appearance: whether the track should be shown
  leftLabel PrintableString Range(0..80) Optional, // Appearance~reload~leftText: label for the left/top side of the slider
  leftIcon PrintableString Range(0..255) Optional [ alt, slice, base, size, scaling="bilinear" ], // Appearance~url: url to use to retrieve an icon for the left size
  rightLabel PrintableString Range(0..80) Optional, // Appearance~reload~rightText: label for the right/bottom side of the slider
  rightIcon PrintableString Range(0..255) Optional [ alt, slice, base, size, scaling="bilinear" ], // Appearance~url: url to use to retrieve an icon for the left size
  thumbIcon PrintableString Range(0..255) Optional [ alt, slice, base, size, scaling="bilinear" ], // Appearance~url~reload: url to use to retrieve an icon for the label
  paintInnerTicks Boolean Default false [ tickType="minor", offset, color, tickStyle="line", paintArea="value" ], // Appearance~~reload:whether thicks shoud be painted inside the track
  trackPainter GridCell Reference, // Appearance~~reload:a painter for the track
  sliderOffset Integer Default 0, // Appearance~spinner~reload: the amount to offset to slider when there are left/right labels or icons
  tickLabels Set {
    label PrintableString Range(0..80)
  } Reference  // Appearance~~labels: custom labels for the tick marks
} [ onChange ]

ProgressBar

This class represents the configuration for a bar that can display the progress of an ongoing operation
ProgressBar ::= Extends Widget {
  value Integer Default 0, // Appearance: the value for the slider
  minValue Integer Default 0, // Behavior~spinner~minValue: minimum value for the progress bar
  maxValue Integer Default 100, // Behavior~spinner: maximum value for the progress bar
  horizontal Boolean Default true, // Appearance~~orientation: whether the progress bar is to be horizontally oriented
  indeterminate Boolean Default false, // Appearance: whether the progress state is indeterminate
  showText Boolean Default true, // Appearance: whether a progress text area should be shown
  progressText PrintableString Range(0..255) Optional  // progress text to display
} [ onChange ]

Spinner

This class represents the configuration for a widget spins through a set of data items
Spinner ::= Extends Widget {
  visibleCharacters Integer Range(0..) Optional, // Appearance~~reload: number of characters columns to size the field for (use zero to let the widget decide)
  editable Boolean Default true Optional, // Behavior: whether the combo box will be editable
  isCircular Boolean Default false, // Behavior: whether the spinner is circular (must has a maximum and minimum value if isCircular is true)
  buttonsVisible Boolean Default true, // Appearance: whether the default buttons should be hidden
  selectedIndex Integer Range(-1..) Default -1, // Appearance~~runtime the index of the viewer that is to be initially selected
  autoSelect Boolean Default true  // Behavior: whether the value is autoselected when the spinner's edit field gains focus
} [ onChange ]

NumberSpinner

This class represents the configuration for a widget spins through a set of numbers while also allowing a number to be manually entered
NumberSpinner ::= Extends Spinner {
  value Real Optional, // Appearance~spinner~value: the value for the spinner
  minValue Real Optional, // Behavior~spinner: minimum value for the spinner
  maxValue Real Optional, // Behavior~spinner: maximum value for the spinner
  incrementValue Real Optional, // Behavior~spinner: increment value for the spinner
  format PrintableString Range(0..64) Optional  // Behavior: a format string for how the date should be displayed
}

DateSpinner

This class represents the configuration for a widget spins through a date range while also allowing a date to be manually entered
DateSpinner ::= Extends Spinner {
  value Date Optional, // Appearance: the value for the spinner
  minValue Date Optional, // Behavior: minimum value for the spinner
  maxValue Date Optional, // Behavior: minimum value for the spinner
  format PrintableString Range(0..64) Optional  // Behavior: a format string for how the date should be displayed
}

DateTimeSpinner

This class represents the configuration for a widget spins through a date range and associated time while also allowing a date or time to be manually entered
DateTimeSpinner ::= Extends Spinner {
  value DateTime Optional, // Appearance: the value for the spinner
  minValue DateTime Optional, // Behavior: minimum value for the spinner
  maxValue DateTime Optional, // Behavior: maximum value for the spinner
  format PrintableString Range(0..64) Optional  // a format string for how the date/time should be displayed
}

TimeSpinner

This class represents the configuration for a widget spins through a time range while also allowing a time to be manually entered
TimeSpinner ::= Extends Spinner {
  value Time Optional, // Appearance: the value for the spinner
  minValue Time Optional, // Behavior: minimum value for the spinner
  maxValue Time Optional, // Behavior: maximum value for the spinner
  format PrintableString Range(0..64) Optional  // Behavior: a format string for how the time should be displayed
}

DateChooser

This class represents the configuration for a widget that allows a date and optionally a time to be selected. Unlike a spinner this widget utilizes a calendar metaphor. Multiple calendars can be displayed by choosing a multiple' display type and specifying the number of columns and or rows that the chooser will use.
DateChooser ::= Extends Widget {
  editable Boolean Default false Optional, // Behavior: whether the combo box will be editable
  value Date Optional, // Appearance: a initial value to select
  minValue Date Optional, // Behavior~~minValue: minimum date that can be selected
  maxValue Date Optional, // maximum date that can be selected
  monthDisplayType Enumerated {
    combo_box (0), // use a drop down (combo box style) for the chooser
    single    (2), // display a single calendar as the chooser
    multiple  (3)  // display a multiple calendar as the chooser
  } Default combo_box, // Layout: the type of month display to use
  showPopupButton Boolean Default true [ icon, rolloverIcon, pressedIcon, disabledIcon, border, scaleIcons, bgColor ], // Appearance~~reload: whether the popup buton should be shown
  popupPainter GridCell Reference, // Design: a painter for the popup background
  format PrintableString Range(0..64) Optional, // a format string for how the date/time should be displayed for drop downs
  monthDisplayCols Integer Range(0..12) Default 1, // Layout: the number of month display columns to show
  monthDisplayRows Integer Range(0..12) Default 1, // Layout: the number of month display rows to show
  autoResizeRowsColumns Boolean Default true, // Behavior~~reload: whether the chooser should automatically adjust the number of columns and rows based on available space
  showWeekdayOnly Boolean Default false, // Appearance~~reload: whether only weekday selection is allowed
  showWeekendOnly Boolean Default false, // Appearance~~reload: whether only weekend selection is allowed
  showMonthOnly Boolean Default false, // Appearance~~reload: whether only month selection is allowed
  showOkButton Boolean Default false, // Appearance~~reload: whether the Ok button is displayed
  showNoneButton Boolean Default false, // Appearance~~reload: whether the None button is displayed
  showTodayButton Boolean Default false, // Appearance~~reload: whether the Today button is displayed
  showTime Boolean Default false, // Appearance~~reload: whether a time selection component is displayed
  showNavigationButtons Boolean Default true, // Appearance~~reload: whether month navigation buttons are displayed
  showWeekNumbers Boolean Default false, // Appearance~~reload: whether week numbers are displayed
  selectionMode Enumerated {
    none     (0), // selection not allowed
    single   (1), // only a single date can be selected at a time
    multiple (2), // multiple dates can be selected at a time
    block    (3)  // multiple dates can be selected at a time but the dates must be contiguous
  } Default single Optional, // Behavior: the selection mode for the chooser
  converterClass PrintableString Range(0..255) Optional, // the programmatic class that converts the item's string value to an object
  valueContext PrintableString Optional  // additional value describing the information
} [ onChange, onAction, onWillExpand, onWillCollapse ]

ColorChooser

This class represents the configuration for a widget that allows a color to be selected from a specified palette
ColorChooser ::= Extends Widget {
  editable Boolean Default true Optional, // Behavior: the combo box will be editable
  value PrintableString Range(0..64) Optional, // Appearance~color: an initial color to select
  dropDownType Enumerated {
    none      (0), // don't use a drop-down, simply display the color palette
    combo_box (1), // use a combo box style drop down for the chooser
    button    (2)  // use a button with a popup down for the chooser
  } Default combo_box, // Layout: the type of drop-down to use
  deselectEventsEnabled Boolean Default false, // Behavior: whether events should be fired when an item is deselected
  showMoreColorsButton Boolean Default true, // Appearance~~reload: whether a More Colors button should be shown
  showHexValue Boolean Default true, // Appearance~~reload: whether the hex values of the color should be displayed when using a combo box
  showNoneButton Boolean Default false, // Appearance~~reload: whether a none button should be shown
  colorPalette Enumerated {
    color_15  (1),
    color_40  (2),
    color_216 (3),
    gray_16   (4),
    gray_102  (5),
    gray_256  (6)
  } Default color_40 Optional, // Design: the color palette to use
  showPopupButton Boolean Default true [ icon, rolloverIcon, pressedIcon, disabledIcon, border, scaleIcons, bgColor ], // Appearance~~reload: whether the popup buton should be shown
  popupPainter GridCell Reference, // Design: a painter for the popup background
  buttonIcon PrintableString Range(0..255) Optional [ alt, slice, base, size, scaling="bilinear" ]  // Appearance~url: url to use to retrieve an icon for the button style drop down
} [ onChange, onAction, onWillExpand, onWillCollapse ]

Line

This class represents the configuration information for a horizontal or vertical line
Line ::= Extends Widget {
  horizontal Boolean Default true, // Layout: whether the line is to be horizontally oriented
  leftLabel PrintableString Range(0..64) Optional, // Appearance~~reload: label for the left/top side of the line
  rightLabel PrintableString Range(0..64) Optional, // Appearance~~reload: label for the right/bottom side of the line
  lines Set {
    lineStyle Enumerated {
      separator (1),
      solid     (2),
      dashed    (3),
      dotted    (4)
    } Default separator [ color, thickness="1", leftOffset, rightOffset ]
  } Reference, // Appearance~lines~reload: the line style; if not specified than a standard line will be drawn
  position Enumerated {
    top    (1),
    center (2),
    bottom (3)
  } Default center  // Layout: the position of the line
}

Bean

This class represents the configuration information for a bean (arbitrary/component) that can be specified as a class name or the url for the bean
Bean ::= Extends Widget {
  beanClass PrintableString Range(0..255) Optional, // Design: the class name for the widget's component
  beanJAR PrintableString Range(0..255) Optional, // Design: the url for the jar containing the bean class files
  beanURL PrintableString Range(0..255) Optional, // Design: the url for the serialized bean
  beanProperties Any DefinedBy Sequence Reference, // Design: custom bean configuration object
  failureMessage PrintableString Optional  // the string to display when the bean cannot be instantiated
} [ onItemAdded, onAction, onChange, onWillExpand, onWillCollapse, onHasCollapsed, onHasExpanded ]

ScrollPane

This class represents the configuration information for a scroll pane that can be used as part of a widget or viewer that inherently supports scrolling
ScrollPane ::= Sequence {
  horizontalScrollbar Enumerated {
    hidden         (0),
    show_as_needed (1),
    show_always    (2)
  } Default show_as_needed [ onChange, onConfigure, ui, adjPrefSizeForHidden, opaque="true" ], // horizontal scrollbar policy
  verticalScrollbar Enumerated {
    hidden         (0),
    show_as_needed (1),
    show_always    (2)
  } Default show_as_needed [ onChange, onConfigure, ui, adjPrefSizeForHidden, opaque="true" ], // vertical scrollbar policy
  columnHeader Any DefinedBy Widget Optional, // widget to use as the column header for the scroll pane
  rowHeader Any DefinedBy Widget Optional, // widget to use as the row header for the scroll pane
  fixedColumnHeader Any DefinedBy Widget Optional, // widget to use as a fixed column header (does not necessarily scroll when the main widget scrolls)
  fixedColumnFooter Any DefinedBy Widget Optional, // widget to use as a fixed column footer (does not necessarily scroll when the main widget scrolls)
  fixedRowHeader Any DefinedBy Widget Optional, // widget to use as a fixed row header (does not necessarily scroll when the main widget scrolls)
  fixedRowFooter Any DefinedBy Widget Optional, // widget to use as a fixed row footer (does not necessarily scroll when the main widget scrolls)
  fixedComponentPriority Enumerated {
    top_bottom (0),
    left_right (1)
  } Default top_bottom, // the priority for fixed components in relation to space allocation
  ulCorner Any DefinedBy Widget Optional, // upper left corner widget (when a corner is needed)
  urCorner Any DefinedBy Widget Optional, // upper right corner widget (when a corner is needed)
  llCorner Any DefinedBy Widget Optional, // lower left corner widget (when a corner is needed)
  lrCorner Any DefinedBy Widget Optional, // lower right corner widget (when a corner is needed)
  vsbTop Any DefinedBy Widget Optional, // component to place above the vertical scrollbar
  vsbBottom Any DefinedBy Widget Optional, // component to place below the vertical scrollbar
  hsbLeft Any DefinedBy Widget Optional, // component to place to the left of the horizontal scrollbar
  hsbRight Any DefinedBy Widget Optional, // component to place to the right of the horizontal scrollbar
  wheelScrollingAllowed Boolean Default true, // whether scroll wheel scrolling is enabled
  extendVerticalScrollbar Boolean, // whether the vertical scrollbar should be extended to encompass the upper right corner
  extendHorizontalScrollbar Boolean, // whether the horizontal scrollbar should be extended to encompass the lower right corner
  templateName PrintableString Range(0..64) Optional [ context ]  // Design~~reload: name of an object template to use to customize the scrollpane
}

Plot

This class represents the configuration information for plotting information for a chart widget
Plot ::= Sequence {
  bgImageURL PrintableString Range(0..255) Optional, // a background image for the plot area
  contentPadding Margin Reference, // margin to separate the plot for the chart's border
  bgColor PrintableString Range(0..128) Optional [ type="linear", direction="vertical_top", magnitude, distribution ], // the background color can be "transparent" for transparent backgrounds
  gridLine Enumerated {
    auto   (0),
    solid  (1),
    dashed (2),
    dotted (3)
  } Default auto [ color ], // the type of grid line to use for the plot
  shapes Enumerated {
    none                (0), // no shapes are drawn
    filled              (1), // a filled-in shape is drawn for each data point
    outlined            (2), // an outlined shape is drawn for each data point
    filled_and_outlined (3)  // a filled-in and outlined shape is drawn for each data point
  } Default filled, // how shapes representing data points are drawn
  labels Enumerated {
    none        (0), // data points are not labeled
    values      (1), // data points are labeled with the value of the data point
    tooltips    (2), // data points are labeled with the tooltip of the data point
    linked_data (3)  // data points are labeled with the linked data of the data point
  } Default none [ showInitially="true" ], // how data points are labeled
  fgAlpha Integer Range(0..255) Default 255 Optional, // color alpha transparency value for chart foreground colors
  lineThickness Integer Range(0..20) Default 1 Optional, // color alpha transparency value for chart foreground colors
  outlineThickness Integer Range(0..20) Default 1 Optional, // color alpha transparency value for chart foreground colors
  noDataMessage DataItem Reference, // a data item representing the message to display when the plot has no data points
  templateName PrintableString Range(0..64) Optional [ context ]  // Design~~reload: name of an object template to use to customize the plot
}

Region

This class represents the configuration information for a viewable region on the screen
Region ::= Extends GridCell {
  name PrintableString Range(0..64) Optional, // the name of the region (used to target the region)
  horizontalFill Enumerated {
    maximum   (1), // use all available space
    preferred (2)  // use enough space to accommodate the viewers preferred size
  } Default maximum, // how the region should fill/allocate space horizontally
  verticalFill Enumerated {
    maximum   (1), // use all available space
    preferred (2)  // use enough space to accommodate the viewers preferred size
  } Default maximum, // how the region should fill/allocate space vertically
  visible Boolean Default true, // whether the region is initially visible
  contentPadding Margin Reference, // the margin between the region's content and it's border
  viewer Any DefinedBy Widget Optional, // a viewer for the region
  dataURL PrintableString Optional [ mimeType, deferred="true" ], // a URL to use to construct a viewer
  collapsibleInfo CollapsibleInfo Reference  // information specifying if the viewer is collapsible and how the expand/collapse functionality should be configured
}

NameValuePair

This class represents the configuration information of a structure for holding name/value pairs.
NameValuePair ::= Sequence {
  name PrintableString Range(0..255), // the name to associate with the value
  value PrintableString Optional  // the value
} [ type, converterClass, converterContext ]

Rectangle

This class represents the configuration information of a rectangular view area. The elements are strings in order to allow units to be specified. If no units are specified then absolute device pixels are assumed The supported units are:
Rectangle ::= Sequence {
  x PrintableString Range(0..32) Default "-1", // Layout: the x-position (the default of minus one (-1) tells the viewer decide
  y PrintableString Range(0..32) Default "-1", // Layout: the y-position (the default of minus one (-1) tells the viewer decide
  width PrintableString Range(0..32) Default "-1", // Layout: the width (the default of minus one (-1) tells the viewer decide
  height PrintableString Range(0..32) Default "-1"  // Layout: the height (the default of minus one (-1) tells the viewer decide
}

Margin

This class represents the configuration information of a margin around a widget or viewable area
Margin ::= Sequence {
  top PrintableString Range(0..32) Default "0", // Layout: the empty space to leave at the top
  right PrintableString Range(0..32) Default "0", // Layout: the empty space to leave on the right
  bottom PrintableString Range(0..32) Default "0", // Layout: the empty space to leave at the bottom
  left PrintableString Range(0..32) Default "0"  // Layout: the empty space to leave on the left
} [ leftIcon, rightIcon, topIcon, bottomIcon ]

Link

This class represents the configuration information of a structure for holding static and dynamic links to data sources. Named data items (viewer attributes, properties, etc.) can be embedded in the URL by surrounding them with curly braces. The value of these items will be resolved and substituted in prior to submission.
Link ::= Sequence {
  url PrintableString Optional [ mimeType, inline, unescape ], // Design~url: the URL for the link
  target Enumerated {
    _self       (0), // link viewer replaces the current view
    _new_window (1), // link viewer is opened in a new window
    _new_popup  (2), // link viewer is opened in a new modeless window
    _workspace  (3), // link viewer replaces the application workspace
    _parent     (4), // link viewer replaces the parent's content
    _toolbar    (5), // link viewer replaces the toolbar's content
    _menubar    (6), // link viewer replaces the menu bar's content
    _blank      (7), // link viewer is opened in a new window (html compatability)
    _null       (255)  // no data is expected
  } Default _new_window Optional [ windowType="frame", resizable="true", movable="true", top, left, title, status, bgColor, icon, width, height, border, onOpened, onWillClose, onDrop, onWillExpand, onWillCollapse, onHasCollapsed, onHasExpanded, onFocus, onBlur, contentPadding, modal, timeout ], // the target for the returned content (type can be frame, popup, dialog, popup_orphan)
  regionName PrintableString Range(0..64) Optional, // the name of a region that is the target of the viewer (if target is not specified)
  requestType Enumerated {
    post   (0), // create
    get    (1), // read
    put    (2), // update
    delete (3)  // delete
  } Default get, // the type of HTTP request to use to activate the link
  requestEncoding Enumerated {
    http_form (0),
    json      (1)
  } Default http_form,
  attributes PrintableString Optional, // attributes for the link. These values will be encoded with the URL based on the request type
  headers PrintableString Optional, // attributes for the link. These values will be encoded with the URL based on the request type
  statusMessage PrintableString Range(0..255) Optional  // message to display on the status bar while the link is being accessed
}

MenuItem

This class represents the configuration information of a structure for specifying menu items.
MenuItem ::= Extends ActionItem {
  subMenu Set {
    menuItem MenuItem Optional
  } Reference, // Design: a set of sub-menu items for this menu
  checkbox Boolean Default false, // Design: whether the menu item should be a check box item
  selected Boolean Default false  // Design: whether checkbox menu item is to be initially selected
}

ActionItem

This class represents the configuration information of a structure for specifying action items. The value of the item can contain embedded data by surrounding them with curly braces. The data embedded will be resolved prior to the action being visually presented
ActionItem ::= Sequence {
  name PrintableString Range(0..64) Optional, // Design: the name of the item
  value PrintableString Range(0..64) Optional, // Appearance: the action's text. If not specified then the menu is a separator
  tooltip PrintableString Range(0..64) Optional, // Appearance: the action's tool tip.
  icon PrintableString Range(0..255) Optional [ alt, slice, base, size, scaling="bilinear" ], // Appearance~url: url to use to retrieve an icon for the action
  disabledIcon PrintableString Range(0..255) Optional [ alt, slice, base, size, scaling="bilinear" ], // Appearance~url: link to use to retrieve the disabled icon for the item
  selectedIcon PrintableString Range(0..255) Optional [ alt, slice, base, size, scaling="bilinear" ], // Appearance~url: link to use to retrieve selected state icon for the item
  rolloverIcon PrintableString Range(0..255) Optional [ alt, slice, base, size, scaling="bilinear" ], // Appearance~url: link to use to retrieve selected state icon for the item
  enabled Boolean Default true, // Design: whether the action is enabled
  focusedAction Boolean Default false, // Design: whether the action represents a focused action (will only be enabled when a supported component is focused)
  enabledOnSelectionOnly Boolean Default false, // Design: whether the action is only enabled when there is a selection in a supported component
  enabledIfHasValueOnly Boolean Default false, // Design: whether the action is only enabled when there is data in a supported component
  groupName PrintableString Range(0..64) Optional, // Design: the name of the group this action belongs to
  shortcutKeystroke PrintableString Range(0..64) Optional, // Design: the name of a key stroke that will be a short cut for the action
  linkedData PrintableString Range(0..255) Optional, // Design: data to link with the action
  actionLink Link Reference  // Design: link to activate when the action is performed
} [ onAction ]

ItemDescription

This class represents the configuration information of a structure for describing items
ItemDescription ::= Sequence {
  title PrintableString Range(0..255) Optional, // Appearance: the display name for the item
  name PrintableString Range(0..64) Optional, // Design: the name to use to reference the item
  description PrintableString Range(0..255) Optional, // Appearance: the description of the item
  category PrintableString Range(0..32) Optional, // Design: the category for items
  valueType Enumerated {
    string_type       (1), // items represent string values
    integer_type      (2), // items represent integer numbers
    decimal_type      (3), // items represent decimal numbers
    date_time_type    (4), // items represent date and time values
    date_type         (5), // items represent date values
    time_type         (6), // items represent time values
    boolean_type      (7), // items represent boolean values
    bytes_base64_type (8), // items represent a byte array that will be base64 encoded
    struct_type       (9), // items represent items that themselves can contain other items
    array_type        (10), // items represent an array of items (use ArrayTypeInformation to describe the array)
    widget_type       (11), // items represent widgets
    custom_type       (99)  // items are of a custom type
  } Default string_type, // Design: the type of values items represent
  customTypeClass PrintableString Optional, // Design: the class name for a custom type
  value PrintableString Optional, // Appearance: an optional value for the item (context specific)
  valueContext PrintableString Optional [ maximum, minimum ], // Design: additional value describing a value (e.g. date format for dates)
  linkedData PrintableString Optional, // Design: data linked with the value
  linkedDataContext PrintableString Optional, // Design: additional value describing the linked data
  iconPosition Enumerated {
    auto            (0), // let the widget decide
    left            (1), // icons are positioned to the left of the text
    right           (2), // icons are positioned the right of the text
    leading         (3), // icons are positioned along the leading edge
    trailing        (4), // icons are positioned along the trailing edge
    top_center      (5), // the icon is positioned above the text and is centered
    top_left        (6), // the icon is positioned to the top_left of the text
    top_right       (7), // the icon is positioned the top_right of the text
    bottom_center   (8), // the icon is positioned below the text and is centered
    bottom_left     (9), // the icon is positioned to the bottom_left of the text
    bottom_right    (10), // the icon is positioned the bottom_right of the text
    right_justified (11)  // the icon is positioned to the far right of the text
  } Default auto, // Appearance: how icons are positioned
  iconScaling Enumerated {
    none        (0),
    item_height (1),
    item_width  (2),
    item_size   (3)
  } Default none, // Appearance: how to scale item icons
  verticalAlign Enumerated {
    auto   (0), // let the widget decide
    top    (1), // the text is top aligned
    bottom (2), // the text is bottom aligned
    center (5)  // the text is centered
  } Default auto Optional, // Layout: vertical alignment
  horizontalAlign Enumerated {
    auto     (0), // let the widget decide
    left     (1), // the text is left aligned
    right    (2), // the text is right aligned
    leading  (3), // the text is aligned along the leading edge
    trailing (4), // the text is aligned along the trailing edge
    center   (5)  // the text is centered
  } Default auto Optional, // Layout: horizontal alignment
  renderType Enumerated {
    normal              (0), // as a normal item
    header              (1), // as a header item (does not scroll horizontally)
    footer              (2), // as a footer item (does not scroll horizontally)
    header_index        (3), // as a header index item (will render the index number of each row (1 relative)
    footer_index        (4), // as a header index item (will render the index number of each row (1 relative)
    header_normal       (5), // as a header item that visually looks like a normal item (except it does not scroll horizontally)
    footer_normal       (6), // as a footer item that visually looks like a normal item (except it does not scroll horizontally)
    header_index_normal (7), // as a header index item that visually looks like a normal item (except it does not scroll horizontally)
    footer_index_normal (8), // as a footer index item that visually looks like a normal item (except it does not scroll horizontally)
    normal_index        (9)  // as a normal index column (will render the index number of each row (1 relative)
  } Default normal, // Appearance: how items should be rendered
  renderDetail Enumerated {
    auto          (0), // let the widget decide
    all           (1), // render every detail
    text_and_icon (2), // only render the text and the icon
    text_only     (3), // only render the text
    icon_only     (4)  // only render the icon
  } Default auto, // Appearance: the amount of detail to render about for an item
  width PrintableString Range(0..32) Optional, // Design: the width for items(zero specifies a hidden column)
  editable Boolean Optional, // Design: whether items are editable
  visible Boolean Default true, // Design: whether items are visible
  hideable Boolean Default true, // Design: whether items can be hidden
  sortable Boolean Default true, // Design: whether items are sort-able (if the containing  widget allows item sorting)
  moveable Boolean Default true, // Design: whether items are movable (if the containing widget allows item reordering)
  showable Boolean Default true, // Design: whether items are showable
  textWrapping Enumerated {
    none (0), // text is not wrapped
    word (1), // wrap on word boundaries, linefeeds are insignificant
    line (2)  // wrap on line feeds or words (will try to respect line sizes when auto sizing)
  } Default none, // Design: what type of wrapping should be done
  overrideSelectionBackground Boolean Default false, // Behavior: whether the item's background color will override the selection background color
  rendererClass PrintableString Range(0..255) Optional [ options ], // Design: the programmatic class that can render the items
  converterClass PrintableString Range(0..255) Optional, // Design: the programmatic class that converts the item's string value to an object
  linkedDataconverterClass PrintableString Range(0..255) Optional, // Other: the programmatic class that converts the item's string value to an object
  editorClass PrintableString Range(0..255) Optional, // Design: the programmatic class that can edit the items
  editorWidget Any DefinedBy Widget Optional, // Design~widget: a widget to use to edit items
  font Font Optional, // Appearance~font: the font for items
  gridCell GridCell Reference, // Appearance~~reload: a cell description for the item
  selectionGridCell GridCell Reference, // Appearance~~reload: a cell description for the item when it is selected
  fgColor PrintableString Range(0..64) Optional, // Appearance~color: the foreground color for items
  actionLink Link Reference, // Design: link to activate when an item is double-clicked
  icon PrintableString Range(0..255) Optional [ alt, slice, base, size, scaling="bilinear" ], // Appearance~url: url to use to retrieve the icon for items
  cursorName PrintableString Range(0..64) Optional [ cursorDisplayType ], // Design: the name of a cursor for the item
  headerFont Font Optional, // Appearance~font: the font for the item header
  headerIcon PrintableString Range(0..255) Optional [ alt, slice, base, size, scaling="bilinear" ], // Appearance~url: url to retrieve the icon to display on the item header
  headerColor PrintableString Range(0..64) Optional, // Appearance~color: the foreground color for the header
  headerCell GridCell Reference, // Appearance~~reload: a cell description for the header
  headerRolloverCell GridCell Reference, // Appearance~~reload: a cell description for the header rollover effect
  headerSelectionCell GridCell Reference, // Appearance~~reload: a cell description for the header selected effect
  headerHorizontalAlign Enumerated {
    auto     (0), // let the widget decide
    left     (1), // the text is left aligned
    right    (2), // the text is right aligned
    leading  (3), // the text is aligned along the leading edge
    trailing (4), // the text is aligned along the trailing edge
    center   (5)  // the text is centered
  } Default auto Optional, // Layout: the header's vertical alignment
  headerVerticalAlign Enumerated {
    auto   (0), // let the widget decide
    top    (1), // the text is top aligned
    bottom (2), // the text is bottom aligned
    center (5)  // the text is centered
  } Default auto Optional, // Layout: the header's vertical alignment
  headerIconPosition Enumerated {
    auto            (0), // let the widget decide
    left            (1), // icons are positioned to the left of the text
    right           (2), // icons are positioned the right of the text
    leading         (3), // icons are positioned along the leading edge
    trailing        (4), // icons are positioned along the trailing edge
    top_center      (5), // the icon is positioned above the text and is centered
    top_left        (6), // the icon is positioned to the top_left of the text
    top_right       (7), // the icon is positioned the top_right of the text
    bottom_center   (8), // the icon is positioned below the text and is centered
    bottom_left     (9), // the icon is positioned to the bottom_left of the text
    bottom_right    (10), // the icon is positioned the bottom_right of the text
    right_justified (11)  // the icon is positioned to the far right of the text
  } Default auto, // Layout: the position of the header's icon
  headerIconScaling Enumerated {
    none        (0),
    item_height (1),
    item_width  (2),
    item_size   (3)
  } Default none, // Layout: how to scale the header icon
  orientation Enumerated {
    auto          (0),
    horizontal    (1),
    vertical_up   (2),
    vertical_down (3)
  } Default auto, // Appearance~~reload: how to scale the widget's icon
  templateName PrintableString Range(0..64) Optional [ context ], // Design~~reload: name of an object template to use to customize the item
  popupMenu Set {
    menuItem MenuItem
  } Reference [ onConfigure ], // popup menu for items
  subItems Set {
    item ItemDescription
  } Reference [ url ], // sub item description for a struct item type
  customProperties PrintableString Optional  // a set of name/value pair custom properties separated by commas
}

ArrayTypeInformation

This class represents the configuration information of a structure for specifying type information for data arrays.
ArrayTypeInformation ::= Sequence {
  itemDescription ItemDescription Reference, // a description of the items in the list
  listItems Set {
    item DataItem
  } Reference [ url ], // a set of items that comprises the array
  editable Boolean Default false, // whether items can be added to the array
  newValuesMax Integer Range(0..100) Default 0, // the maximum number of items that can be added to the array
  circularBufferForNewValues Boolean Default true, // whether a circular buffer is used for new values (otherwise once the max is reach no new values can be added)
  selectBy Enumerated {
    index         (0), // value will be selected by their index
    value         (1), // value will be selected by their value
    linked_object (2)  // value will be selected by the value of their linked data
  } Default index  // what value should be searched when programmatically selecting items by value
}

FrameStyle

This class represents the configuration information for the style of frames in a main window
FrameStyle ::= Sequence {
  tabPosition Enumerated {
    top    (1),
    bottom (2),
    left   (3),
    right  (4)
  } Default top Optional, // Appearance~~reload: the position of the tabs in relation to the tab area
  tabStyle Enumerated {
    auto             (0),
    box              (1),
    eclipse          (2),
    eclipse3x        (3),
    excel            (4),
    flat             (5),
    office2003       (6),
    rounded_flat     (7),
    windows          (8),
    windows_selected (9)
  } Default auto, // Appearance~~reload: the style of tab to use
  splitPriority Enumerated {
    east_west_south_north (0),
    south_north_east_west (1),
    east_south_west_north (2),
    west_south_east_north (3),
    custom                (4)
  } Default east_west_south_north [ customPriority, westOrientation, eastOrientation, northOrientation, southOrientation ], // the split priority for the frames
  tabFgColor PrintableString Range(0..64) Optional, // Appearance~color~reload: the foreground color of a tab
  tabBgColor PrintableString Range(0..128) Optional [ type="linear", direction="vertical_top", magnitude, distribution ], // Appearance~gradient~reload: the background color of a tab
  tabFont Font Optional, // Appearance~font: the font for tabs
  titleFont Font Optional, // Appearance~font~headerFont: the font for the title
  titleCell GridCell Reference [ foreground ], // Design: the gridcell for the frame's title
  activeTitleCell GridCell Reference [ foreground ], // Design: the gridcell for the frame's title when the frame is active
  showWorkspace Boolean Default true, // Appearance~~reload: whether the workspace should be shown
  workspaceBgColor PrintableString Range(0..64) Optional, // Appearance~color~reload: the background color for pane holding the frames
  selectedTabFgColor PrintableString Range(0..64) Optional, // Appearance~color~reload: the background color for the workspace
  selectedTabBgColor PrintableString Range(0..128) Optional [ type="linear", direction="vertical_top", magnitude, distribution ], // Appearance~gradient~reload: the background color of the selected tab
  boldSelectedTab Boolean Default true, // Appearance~~reload: whether the selected tab should be bolded
  showIconsOnTab Boolean Default true, // Appearance~~reload: whether icons should be shown on the tabs
  defaultTabIcon PrintableString Range(0..255) Optional [ alt, slice, base, size, scaling="bilinear" ],
  contentPadding Margin Reference, // Layout: the margin between a frames's content and it's border
  resizingAllowed Boolean Default true, // Design: whether frames are resizable (default behavior for all frames)
  undockingAllowed Boolean Default true, // Design: whether frames are undock-able (default behavior for all frames)
  rearrangingAllowed Boolean Default true  // Design: whether frames are rearrange-able (default behavior for all frames)
}

Tab

This class represents the configuration information of a tab in a tab viewer
Tab ::= Extends Region {
  title PrintableString Range(0..355) Default "Tab", // Appearance: the tab's title
  icon PrintableString Range(0..255) Optional [ alt, slice, base, size, scaling="bilinear" ], // Appearance~url: url to use to retrieve an icon for the tab
  disabledIcon PrintableString Range(0..255) Optional [ alt, slice, base, size, scaling="bilinear" ], // Appearance: url to use to retrieve a icon associated with the item's disabled state
  alternateIcon PrintableString Range(0..255) Optional [ alt, slice, base, size, scaling="bilinear" ], // url to use to retrieve an alternate icon for the tab
  loadOnActivation Boolean Default true, // Behavior: whether the tab's data should be loaded when it is activated or when the viewer is loaded
  reloadOnActivation Boolean Default false, // Behavior: whether the tab's data should be reloaded every time the tab is activated
  fgColor PrintableString Range(0..64) Optional, // Appearance: the foreground color of the tab
  tooltip PrintableString Optional, // Appearance: the tool tip for the tab
  linkedData PrintableString Optional, // Design: data linked to the tab
  enabled Boolean Default true  // Design: whether the tab is enabled
}

Font

This class represents the configuration information of a font
Font ::= Sequence {
  family PrintableString Range(0..64) Optional [ is_property ], // Appearance~~font: the font family
  size PrintableString Range(0..16) Optional, // Appearance~~font: the font size (can prefix with '+' or '-' or '*' )
  style Enumerated {
    normal      (0), // normal font
    bold        (1), // bold font
    italic      (2), // italic font
    bold_italic (3)  // italic and bold font
  } Default normal Optional, // Appearance~~font: the font style
  monospaced Boolean Default false  // Appearance~~font: whether to use a monospace font (if true will ignore the family property)
}

CollapsibleInfo

This class represents the configuration information of collapsible information for use with collapsible viewers
CollapsibleInfo ::= Sequence {
  icon PrintableString Range(0..255) Optional [ alt, slice, base, size, scaling="bilinear" ], // Appearance~url~reload: url to use to retrieve an icon associated with the value (if not defined, the icon of the widget is used)
  initiallyCollapsed Boolean Default false, // Behavior: whether the parent container should be initially collapsed
  title PrintableString Range(0..255) Optional, // Appearance: title for the collapsible pane (if not defined, the title of the widget is used)
  collapsedTitle PrintableString Range(0..255) Optional, // Appearance: title to use if the parent container is collapsed
  collapseTip PrintableString Range(0..255) Optional, // Design: tooltip to use when the parent container is collapsed
  expandTip PrintableString Range(0..255) Optional, // Design:tooltip to use when the parent container is expanded
  titleCell GridCell Reference [ foreground ], // Appearance~~reload: the background for the title
  titleFont Font Optional, // Appearance~font~reload: the font for the title
  expandOnDragover Boolean Default false, // Behavior: whether the parent container is automatically expanded on a drag-over operation
  expander Enumerated {
    twisty  (0),
    chevron (1),
    tree    (2),
    custom  (3)
  } Default twisty [ expandIcon, collapseIcon, iconOnTheLeft ], // Appearance: the type of expander/collapser to use
  transitionAnimator PrintableString Optional [ duration, direction, acceleration, deceleration, resolution, startFraction, repeatCount, customProperties ], // Behavior: class name of the animator to use to animate transitions
  toggleOnTitleSingleClick Boolean Default false, // Behavior:whether to toggle when the title is single clicked by default a double-click is required
  userControllable Boolean Default true, // Behavior: whether the user can collapse/expand (other collapsing/expanding can only be done programmatically)
  showTitleBar Boolean Default true, // Behavior: whether the title bar is shown
  opaqueTitleBar Boolean Default true, // Behavior: whether the title bar is opaque
  templateName PrintableString Range(0..64) Optional [ context ]  // Design~~reload: name of an object template to use to customize the item
} [ onWillExpand, onWillCollapse, onHasCollapsed, onHasExpanded ]

PreviewData

This class represents the configuration information for preview data associated with data rows
PreviewData ::= Sequence {
  dataLocation Enumerated {
    row_value       (1), // the preview data is the value of the row
    row_linked_data (2)  // the preview data is the linked data of the row
  } Default row_value,
  contentPadding Margin Reference, // the margin to place around the preview
  offset PrintableString Range(0..32) Optional, // Offset relative to the bottom of the row (i.e. y+rowHeight+offset)
  numberOfLines Integer Range(0..5) Default 3, // the number of line of preview data to display
  font Font Optional, // Appearance~font: the font for the preview
  fgColor PrintableString Range(0..64) Optional, // Appearance~color: the foreground color for the preview
  enabled Boolean Default false  // whether previewing is enabled
}

DataItem

This class represents the configuration information for a generic data item
DataItem ::= Sequence {
  valueType Enumerated {
    auto_type         (0), // type is determined by the widget and/or other configuration information
    string_type       (1), // the column represents string items
    integer_type      (2), // the column represents integer numbers
    decimal_type      (3), // the column represents decimal numbers
    date_time_type    (4), // the column represents date and time items
    date_type         (5), // the column represents date items
    time_type         (6), // the column represents time items
    boolean_type      (7), // the column represents boolean items
    bytes_base64_type (8), // the column represents a byte array that will be base64 encoded
    struct_type       (9), // the column represents items that themselves can contain other items
    array_type        (10), // the column represents array items (use ArrayTypeInformation to describe the array)
    widget_type       (11), // the column represents widget items
    custom_type       (99)  // items are of a custom type
  } Default string_type, // the type of data the column represents
  customTypeClass PrintableString Optional, // the class name for a custom type
  value PrintableString Optional, // the item's value
  valueContext PrintableString Optional, // additional value describing the information (e.g. date format for dates)
  linkedData PrintableString Optional, // data linked with the value
  linkedDataContext PrintableString Optional, // additional value describing the linked data
  horizontalAlign Enumerated {
    auto     (0), // let the widget decide
    left     (1), // the text is left aligned
    right    (2), // the text is right aligned
    leading  (3), // the text is aligned along the leading edge
    trailing (4), // the text is aligned along the trailing edge
    center   (5)  // the text is centered
  } Default auto Optional, // horizontal alignment
  verticalAlign Enumerated {
    auto   (0), // let the widget decide
    top    (1), // the text is top aligned
    bottom (2), // the text is bottom aligned
    center (5)  // the text is centered
  } Default auto Optional, // vertical alignment
  iconPosition Enumerated {
    auto            (0), // let the widget decide
    left            (1), // the icon is positioned to the left of the text
    right           (2), // the icon is positioned the right of the text
    leading         (3), // the icon is positioned along the leading edge
    trailing        (4), // the icon is positioned along the trailing edge
    top_center      (5), // the icon is positioned above the text and is centered
    top_left        (6), // the icon is positioned to the top_left of the text
    top_right       (7), // the icon is positioned the top_right of the text
    bottom_center   (8), // the icon is positioned below the text and is centered
    bottom_left     (9), // the icon is positioned to the bottom_left of the text
    bottom_right    (10), // the icon is positioned the bottom_right of the text
    right_justified (11)  // the icon is positioned to the far right of the text
  } Default auto, // the position of the icon
  iconScaling Enumerated {
    none        (0),
    item_height (1),
    item_width  (2),
    item_size   (3)
  } Default none, // how to scale the widget's icon
  orientation Enumerated {
    auto          (0),
    horizontal    (1),
    vertical_up   (2),
    vertical_down (3)
  } Default auto, // how to scale the widget's icon
  enabled Boolean Default true, // whether the item is enabled
  visible Boolean Default true, // whether the item is visible
  actionLink Link Reference, // link to activate when a an the item's action is initiated
  icon PrintableString Range(0..255) Optional [ alt, slice, base, size, scaling="bilinear" ], // Appearance~url: url to use to retrieve an icon associated with the item
  disabledIcon PrintableString Range(0..255) Optional [ alt, slice, base, size, scaling="bilinear" ], // Appearance~url: url to use to retrieve a icon associated with the item's disabled state
  alternateIcon PrintableString Range(0..255) Optional [ alt, slice, base, size, scaling="bilinear" ], // Appearance~url: url to use to retrieve an icon associated with the item's alternate state
  tooltip PrintableString Range(0..255) Optional, // the tooltip for the item
  cursorName PrintableString Range(0..64) Optional [ cursorDisplayType ], // the name of a cursor for the item
  font Font Optional, // Appearance~font: the font for the item
  fgColor PrintableString Range(0..64) Optional, // Appearance~color: the foreground color for the item
  gridCell GridCell Reference, // Appearance~~reload: a cell description for the item
  rowSpan Integer Range(0..) Default 1, // the number of rows the item will span
  columnSpan Integer Range(-1..) Default 1, // the number of columns the item will span
  converterClass PrintableString Range(0..255) Optional, // the programmatic class that converts the item's string value to an object
  linkedDataconverterClass PrintableString Range(0..255) Optional, // the programmatic class that converts the item's string value to an object
  draggingAllowed Boolean Default true, // whether to allow the item to be dragged if the widget allows dragging
  importDataFlavors Set {
    flavor PrintableString Range(0..255)
  } Reference, // data flavors that the item can import
  exportDataFlavors Set {
    flavor PrintableString Range(0..255)
  } Reference, // data flavors that the item will export
  templateName PrintableString Range(0..64) Optional [ context ], // Design~~reload: name of an object template to use to customize the item
  subItems Set {
    item DataItem
  } Reference [ url ], // sub items for this item
  customProperties PrintableString Optional  // a set of name/value pair custom properties separated by commas
} [ expanded="false", selectable="true", selected="false", checked="false", editable ]

GridCell

This class represents a cell in a grid
GridCell ::= Extends Rectangle {
  bgColor PrintableString Range(0..128) Optional [ type="linear", direction="vertical_top", magnitude, distribution ], // Appearance~gradient~background: the background color (use "transparent" for transparent backgrounds)
  bgImageURL PrintableString Range(0..255) Optional [ opacity="100%", renderType="tiled", waitForLoad="false", renderSpace="within_border", composite="src_over", scaling="bilinear", preserveSource ], // Appearance~image~backgroundOverlayPainter: an background image for the cell
  borders Set {
    border Enumerated {
      none               (0),
      standard           (1),
      line               (2),
      line_3d            (3),
      raised             (4),
      lowered            (5),
      bevel_raised       (6),
      bevel_lowered      (7),
      etched_raised      (8),
      etched_lowered     (9),
      frame_raised       (10),
      frame_lowered      (11),
      simple_drop_shadow (12),
      drop_shadow        (13),
      shadow             (14),
      group_box          (15),
      empty              (16),
      titled             (17),
      icon               (18),
      focus              (19),
      shape              (20),
      matte              (21),
      custom             (22)
    } Default standard Optional [ color, thickness, style, cornerArc, padForArc="true", insets, title, titleLocation, titleFont, titleColor, icon, flatTop, flatBottom, noBottom, noTop, points, class, renderType, opacity, leftright="false" ]  // the type of border
  } Reference, // Appearance~borders~reload: borders for the cell
  templateName PrintableString Range(0..64) Optional [ context ]  // Design~~reload: name of an object template to use to customize the item
}

OverlayInfo

This class represents configuration information for a widget overlay
OverlayInfo ::= Sequence {
  widget Any DefinedBy Widget,
  location Enumerated {
    upper_left   (1), // widget is placed in the upper left
    upper_middle (2), // widget is placed in the middle on the top
    upper_right  (3), // widget is placed in the upper right
    left_middle  (4), // widget is placed in the middle on the upper left
    centered     (5), // widget is centered
    right_middle (6), // widget is placed in the middle on the right
    lower_left   (7), // widget is placed in the upper left
    lower_middle (8), // widget is placed in the middle on the bottom
    lower_right  (9)  // widget is placed in the lower right
  } Default lower_right,
  displayed Enumerated {
    always             (1),
    when_not_focused   (2),
    when_empty         (3),
    before_interaction (4)
  } Default always
}

AccessibleContext

This class represents configuration information for the accessible context for a widget
AccessibleContext ::= Sequence {
  name PrintableString Range(0..255) Optional,
  description PrintableString Optional
}

DataCollection

This class represents configuration information for a data collection
DataCollection ::= Sequence {
  name PrintableString Range(0..64), // the name of the collection
  handler PrintableString Range(0..255) Optional, // the name or class that handles the collection. If not specified the default handler is used
  dataURL PrintableString Optional [ mimeType, deferred="true", columnSeparator="|", inline, ldSeparator, riSeparator, unescape="false", aggregate, parser ], // a URL to use to retrieve data for the collection
  attributes Set {
    attribute NameValuePair
  } Reference, // a set of attributes for the collection
  tabular Boolean Default true  // whether the data is tabular
}

TemplateContext

This class represents a set of templates for object definitions
TemplateContext ::= Sequence {
  name PrintableString Range(0..64) Optional, // Design: the name of the template context
  autoSkin Boolean Default false, // Design: true to automatically widgets that do not have a templateName defined
  widgets Set {
    widget Any DefinedBy Widget [ baseTemplateName, templateContext ]
  } Optional [ url ], // Design: the set of widgets for the group box
  columns Set {
    column ItemDescription [ baseTemplateName, templateContext ]
  } Optional [ url ], // Design: the set of columns for the table
  cellPainters Set {
    cell GridCell [ baseTemplateName, templateContext ]
  } Optional [ url ], // Design: painters for the cells in the form grid
  dataItems Set {
    item DataItem [ baseTemplateName, templateContext ]
  } Optional [ url ], // Design: data items
  collapsibles Set {
    collapsibleInfo CollapsibleInfo [ baseTemplateName, templateContext ]
  } Optional [ url ], // Design: collapsible definitions
  regions Set {
    region Region [ baseTemplateName, templateContext ]
  } Optional [ url ], // Design: collapsible definitions
  scrollPanes Set {
    scrollPane ScrollPane [ baseTemplateName, templateContext ]
  } Optional [ url ], // Design: scrollPane definitions
  plots Set {
    plot Plot [ baseTemplateName, templateContext ]
  } Optional [ url ]  // Design: chart plot definitions
}