VASSAL.build
Class Widget

java.lang.Object
  |
  +--VASSAL.build.AbstractBuildable
        |
        +--VASSAL.build.AbstractConfigurable
              |
              +--VASSAL.build.Widget
All Implemented Interfaces:
AutoConfigurable, Buildable, Configurable
Direct Known Subclasses:
BoxWidget, Chart, ChartWindow, ListWidget, PanelWidget, PieceSlot, PieceWindow, TabWidget

public abstract class Widget
extends AbstractConfigurable

A general-purpose configurable GUI container Widgets are Configurable objects that represent AWT components. Adding a Widget to another Widget during a Buildable.build(org.w3c.dom.Element) operation will add the corresponding AWT component of the child to the component of the parent


Nested Class Summary
static class Widget.MyCellRenderer
           
 
Nested classes inherited from class VASSAL.build.AutoConfigurable
AutoConfigurable.Util
 
Field Summary
protected  org.w3c.dom.Element buildElement
           
static java.lang.String NAME
           
protected  Widget parent
           
 
Fields inherited from class VASSAL.build.AbstractConfigurable
changeSupport, config, name
 
Fields inherited from class VASSAL.build.AbstractBuildable
buildComponents
 
Fields inherited from interface VASSAL.build.Configurable
NAME_PROPERTY
 
Constructor Summary
protected Widget()
           
 
Method Summary
 void addTo(Buildable b)
          Adds this component to its parent.
 void build(org.w3c.dom.Element el)
          For memory efficiency reasons, a Widget is initialized lazily.
 java.lang.Class[] getAllowableConfigureComponents()
          The allowable Configurable components of a Widget are the same as its parent
 org.w3c.dom.Element getBuildElement(org.w3c.dom.Document doc)
           
abstract  java.awt.Component getComponent()
           
 Configurable[] getConfigureComponents()
           
 HelpFile getHelpFile()
           
 Widget getParent()
           
protected  void rebuild()
          Perform the build of this Buildable component using the element stored from when the the build(org.w3c.dom.Element) method was invoked
 void removeFrom(Buildable b)
          Remove this component from its parent
 
Methods inherited from class VASSAL.build.AbstractConfigurable
addPropertyChangeListener, getAttributeDescriptions, getAttributeTypes, getAttributeVisibility, getConfigureName, getConfigurer, remove, setConfigureName
 
Methods inherited from class VASSAL.build.AbstractBuildable
add, getAttributeNames, getAttributeValueString, getBuildComponents, getComponents, setAttribute
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface VASSAL.build.AutoConfigurable
getAttributeNames, getAttributeValueString, setAttribute
 
Methods inherited from interface VASSAL.build.Buildable
add
 

Field Detail

NAME

public static final java.lang.String NAME
See Also:
Constant Field Values

buildElement

protected org.w3c.dom.Element buildElement

parent

protected Widget parent
Constructor Detail

Widget

protected Widget()
Method Detail

build

public void build(org.w3c.dom.Element el)
For memory efficiency reasons, a Widget is initialized lazily. This method only stores the element from which the build the Widget. The Widget is built from the stored element by invoking rebuild(). Subclasses should invoke rebuild() before invoking getComponent()

Specified by:
build in interface Buildable
Overrides:
build in class AbstractBuildable
Parameters:
el - the XML element containing the object data

rebuild

protected void rebuild()
Perform the build of this Buildable component using the element stored from when the the build(org.w3c.dom.Element) method was invoked


getBuildElement

public org.w3c.dom.Element getBuildElement(org.w3c.dom.Document doc)
Specified by:
getBuildElement in interface Buildable
Overrides:
getBuildElement in class AbstractBuildable
Returns:
an XML element from which this component can be built

getAllowableConfigureComponents

public java.lang.Class[] getAllowableConfigureComponents()
The allowable Configurable components of a Widget are the same as its parent


addTo

public void addTo(Buildable b)
Description copied from interface: Buildable
Adds this component to its parent. In order to make Buildable objects extensible, the child is reponsible for adding itself to the parent. That way, Buildable subcomponents can be defined in an extension package without needing to modify the containing class.


removeFrom

public void removeFrom(Buildable b)
Description copied from interface: Configurable
Remove this component from its parent


getParent

public Widget getParent()

getConfigureComponents

public Configurable[] getConfigureComponents()
Specified by:
getConfigureComponents in interface Configurable
Overrides:
getConfigureComponents in class AbstractConfigurable
Returns:
an array of Configurer objects representing the Configurable children of this Configurable object

getComponent

public abstract java.awt.Component getComponent()
Returns:
the Component for this widget. For efficiency, the Component may be initialized lazily instead of being created in the Buildable.build(org.w3c.dom.Element) method

getHelpFile

public HelpFile getHelpFile()
Returns:
a HelpFilte describing how to use and configure this component