Application

This class represents the configuration for an application instance.
Application ::= Sequence {
  name PrintableString Range(0..32) Optional, // Common: the name of the application
  lookAndFeel PrintableString Range(0..255) Optional [ style ], // Common: 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 ], // Common: look and feel when the desktop OS is MS Windows
  lookAndFeelLinux PrintableString Range(0..255) Optional [ style ], // Common: look and feel when the desktop OS is Linux
  lookAndFeelMac PrintableString Range(0..255) Optional [ style ], // Common: 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)
  lookAndFeelPropertiesURL PrintableString Optional [ inline ], // Common~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 ], // Common~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 ], // Common~url: url for a java properties file formatted list of icons
  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 [ url ], // 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 [ url ], // Design: a set of name/language class name pairs for data collection handlers
  supplementalFonts Set {
    font NameValuePair [ type="truetype" ]
  } Reference [ url ], // 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
  actionItems Set {
    action ActionItem
  } Reference [ url ], // Design: a set of named set of application-wide actions that can be later referenced throughout the application
  attributes Set {
    attribute NameValuePair
  } Reference [ url ], // Design: a set of application-wide attributes
  dataCollections Set {
    collection DataCollection
  } Reference [ url ], // Design: a set of data collections
  authenticationRetryMax Integer Range(0..10) Default 3, // Design: the maximum number of times the retry a failed authentication request
  managePopupURLs Boolean Default true, // Design: whether popup URL's should be automatically managed
  defaultScriptingLanguage PrintableString Range(0..64) Default "ECMAScript", // Design: the 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
  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
  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), // sage handles authentication transparently
    none     (3)  // application  handles authentication
  } Default standard [ authFunction ],
  mainWindow MainWindow  // Hidden: the configuration for the application's main window
} [ onError, onAuthFailure, onFocusChange, onPermanentFocusChange ]

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 ], // 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
  bgColor PrintableString Range(0..64) Optional [ type="linear", direction="vertical_top", magnitude, distribution ], // Appearance~gradient~reload the background color can be "transparent" for transparent backgrounds
  scriptURL PrintableString Optional [ language, inline, runOnce="true" ], // Common~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
  viewer Any DefinedBy Widget Optional [ url ]  // Hidden: a viewer for the window's workspace
} [ onCreated, onConfigure, onOpened, onWillClose, onResize, onDrop, onHasCollapsed, onHasExpanded, onFocus, onBlur ]

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, // the row for the toolbar (zero represents the top most position)
  column Integer Range(0..3) Default 0, // 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
  registerWidgetsWithForm Boolean Default false, // Design: whether the toolbar's widgets should be registered with is parent form. If false the widgets will only be registered with the tool bar
  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 true, // 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
  statusLabels PrintableString Optional, // Appearance~~reload: a set of comma delimited name value pairs representing labels 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 stabar 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, onMouseOver, 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..1) 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 Default false Optional, // Design Options: whether the tab can be undocked (meaningful  when the tab if part of a FrameTabPane)
  hideable Boolean Default true Optional, // Design: whether the tab can be hidden (meaningful  when the tab if part of a FrameTabPane)
  resizable Boolean Default true, // Design: whether the frame is resizable
  rearrangeable Boolean Default true, // 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)
  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 {
  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
  scrollPane ScrollPane Reference  // Behavior~~reload: information specifying if the viewer is scrollable and how the associated scroll pane should be configured
} [ 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
  widgets Set {
    widget Any DefinedBy Widget
  } Optional  // Hidden: the set of widgets for the group box
}

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, // Hidden: the amount of space between columns
  rowSpacing Integer Range(0..24) Default 2, // Layout: the amount of space between rows
  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 -1, // Appearance~~runtime the index of the viewer that is to be initially selected
  animate Boolean Default false [ slicer ], // Behavior:whether the size differences during viewer switches should be animated
  viewerURLs Set {
    url PrintableString [ name, mimeType, inline ]
  } Reference  // Design: a the set of URLs representing viewer configurations
} [ 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
  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
} [ 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..64) 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),
      raised             (3),
      lowered            (4),
      bevel_raised       (5),
      bevel_lowered      (6),
      etched_raised      (7),
      etched_lowered     (8),
      frame_raised       (9),
      frame_lowered      (10),
      simple_drop_shadow (11),
      drop_shadow        (12),
      shadow             (13),
      group_box          (14),
      empty              (15),
      titled             (16),
      icon               (17),
      focus              (18),
      shape              (19),
      matte              (20),
      custom             (21)
    } Default standard Optional [ color, thickness, style, cornerArc, insets, title, titleLocation, titleFont, titleColor, icon, flatBottom, 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 ]  // Design~url: URL for an icon to use for tab's that don't define their own
} [ 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, // whether to use the Outlook style of floor tabs
  tabs Set {
    tab Tab
  } Optional, // Design: the tabs
  defaultTabIcon PrintableString Range(0..255) Optional [ alt ], // 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
} [ 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
  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 {
  showToolbar Boolean Default false, // Behavior: whether the toolbar should be shown
  stretchToolbar Boolean Default true, // Behavior: whether the toolbar should be stretched to fill available space
  zoomingAllowed Boolean Default true [ max="1000%" ], // 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
  smoothScaling Boolean Default false, // Behavior: whether to use smooth scaling which produces a better picture but is slower
  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)
  textSelectionAllowed Boolean Default false, // Behavior: whether text selection is allowed (for image types that support it)
  toolbarLocation Enumerated {
    north (1),
    south (2),
    east  (4),
    west  (5)
  } Default south Optional, // Appearance~~reload: the location of the toolbar
  opaqueToolbar Boolean Default true, // Appearance~~reload:whether the toolbar is opaque
  showLoadStatus Boolean Default true, // Behavior: whether the loading status of the image should be shown on the status bar
  scrollPane ScrollPane Reference  // Behavior~~reload: information specifying if the viewer is scrollable and how the associated scroll pane should be configured
} [ onClick ]

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
} [ 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 popup [ 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)
  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
  headerColor PrintableString Range(0..64) Optional, // Appearance~color~headerForeground: the foreground color for headers
  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
  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
  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
  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", displayed="always" ], // Appearance~image~runtime: an overlay image to use to denote a modified item
  columns Set {
    column ItemDescription
  } Optional [ onAction ], // Appearance~~reload: the set of columns for the table
  columnPopupMenu Set {
    menuItem MenuItem
  } Reference [ onConfigure ]  // Appearance~~runtime: popup menu for the widget.
} [ onClick, 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
  expandAllAllowed Boolean Default false, // Behavior: whether all of the table rows can be expanded by a call to expandAll
  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, // 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
  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, // 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
  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 ], // 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 ], // 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, // 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 popup [ 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 ], // 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 ], // 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 ], // Appearance~url: icon to use for closed folders if the item does not provide it's own icon
  selectedIndex Integer Range(-1..) Default -1, // Appearance~~runtime: the index of the row that is to be initially selected
  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
  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
} [ onClick, 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
  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 popup [ 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) 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
} [ onClick, 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
}

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)
} [ onChange ]

MediaPlayer

The class represents the embedded media player for the platform
MediaPlayer ::= 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)
} [ onChange ]

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 ], // 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 [ language, 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
  initiallyFocusedWidget PrintableString Optional, // Behavior: the name of the widget that should initially receive focus when the viewer receives focus (if the viewer contains widgets
  local Boolean  // Behavior: Whether the viewer is local or global, local viewers are not registered (cannot be accesed by name outside of thier container).
} [ onLoad, onUnload ]

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),
      raised             (3),
      lowered            (4),
      bevel_raised       (5),
      bevel_lowered      (6),
      etched_raised      (7),
      etched_lowered     (8),
      frame_raised       (9),
      frame_lowered      (10),
      simple_drop_shadow (11),
      drop_shadow        (12),
      shadow             (13),
      group_box          (14),
      empty              (15),
      titled             (16),
      icon               (17),
      focus              (18),
      shape              (19),
      matte              (20),
      custom             (21)
    } Default standard Optional [ color, thickness, style, cornerArc, insets, title, titleLocation, titleFont, titleColor, icon, flatBottom, points, class, renderType, opacity ]  // the type of border
  } Reference, // Appearance~borders~reload: borders for the widget
  columnSpan Integer Range(0..) Default 1 Optional, // Layout: number of columns to span if used in a table-based layout
  rowSpan Integer Range(0..) 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..64) 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
  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
  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="component", composite="src_over", preserveSource ], // Appearance~image~backgroundImagePainter: 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="component", composite="src_over", displayed="always", preserveSource ], // Appearance~image~overlayImagePainter: an overlay image for the widget (not all widgets support overlay images)
  overlayWidget OverlayInfo Reference, // Hidden~~reload: widget to use an 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
  customProperties PrintableString Optional  // a set of name/value pair custom properties separated by commas
} [ onMouseOver, onMouseOut, onMouseDown, onMouseUp, onMouseDragged, onFocus, onBlur, onKeyDown, onKeyPress, onKeyUp, onPost, onDrag, onDrop, onFinishedDrop, onCreated, onConfigure, onFinishedLoading, submitable ]

Navigator

This class represents configuration information for a widget that provide the navigation of a hierarchy as a horizontal series of buttons identifying the path taken
Navigator ::= Extends Widget {
  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
  actions Set {
    action ActionItem
  }  // 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
  visibleRows Integer Optional, // Appearance: 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
    fontsize_chooser (6), // a predefined component for choosing a font size
    custom           (7)  // a custom combobox specified buy the custom class property
  } Default listbox, // Appearance~~reload: the type of popup component that the combo box will display
  quickFindSupport Enumerated {
    none          (0),
    popup         (1),
    auto_complete (4)
  } Default auto_complete [ 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 ], // Appearance: whether the popup buton should be shown
  rowHeight PrintableString Range(0..32) Optional, // Appearance: the height to use for each row in the combobox