Interface Buildable

All Known Subinterfaces:
AutoConfigurable, Configurable, Translatable
All Known Implementing Classes:
AboutScreen, AbstractBuildable, AbstractConfigurable, AbstractDeckKeyCommand, AbstractFolder, AbstractScenarioProperty, AbstractScript, AbstractToolbarItem, ActionScript, BasicCommandEncoder, BasicLogger, BasicModule, BasicPreference, Board, BoardPicker, BooleanPreference, BooleanScenarioProperty, BoxWidget, BrowserHelpFile, BrowserHelpFile.ConfigSupport, BrowserPDFFile, BshCommandEncoder, BshPlugin, CardSlot, ChangePropertyButton, Chart, ChartWindow, ChatServerControls, Chatter, ChessClock, ChessClockControl, ColorManager, ColorSwatch, ConnectionWindow, CounterDetailViewer, CounterTurnLevel, DebugControls, DeckGlobalKeyCommand, DeckSendKeyCommand, DeckSortKeyCommand, DeckSubFolder, DiceButton, DieManager, DoActionButton, Documentation, DoublePreference, DrawPile, EnumPreference, EventLog, ExtensionElement, Flare, FontManager, FontStyle, ForwardToChatter, ForwardToKeyBuffer, GameModule, GamePieceImage, GamePieceImageDefinitions, GamePieceLayout, GamePieceLayoutsContainer, GeneralScript, GlobalKeyCommand, GlobalMap, GlobalMap.CounterViewer, GlobalOptions, GlobalProperties, GlobalProperty, GlobalPropertyFolder, GlobalTranslatableMessage, GlobalTranslatableMessages, HandMetrics, HelpFile, HexGrid, HexGridNumbering, HidePiecesButton, HighlightLastMoved, HtmlChart, IconFamily, ImageItem, ImageItemInstance, ImageSaver, IntegerPreference, InternetDiceButton, Inventory, Item, ItemInstance, KeyBufferer, KeyNamer, Language, LayerControl, LayeredPieceCollection, ListScenarioProperty, ListTurnLevel, ListWidget, Localization, LOS_Thread, Map, MapCenterer, MapShader, MapSubFolder, MapWidget, MassKeyCommand, MenuDisplayer, ModuleExtension, ModulePlugin, ModuleSubFolder, MoveCameraButton, MultiActionButton, NotesWindow, NumberScenarioProperty, PanelWidget, PieceMover, PieceRecenterer, PieceSlot, PieceWindow, PlayerHand, PlayerRoster, Plugin, PredefinedSetup, PrivateChatter, PrivateMap, PrototypeDefinition, PrototypeFolder, PrototypesContainer, RandomTextButton, Region, RegionGrid, RegularGridNumbering, ScenarioPropertiesOptionTab, ScriptContainer, Scroller, SelectionHighlighter, SelectionHighlighters, SetupStack, ShapeItem, ShapeItemInstance, SpecialDiceButton, SpecialDie, SpecialDieFace, SquareGrid, SquareGridNumbering, StackExpander, StackMetrics, StartupGlobalKeyCommand, StringPreference, StringScenarioProperty, SymbolItem, SymbolItemInstance, TabWidget, TextBoxItem, TextBoxItemInstance, TextItem, TextItemInstance, TextPreference, TextSaver, ToolbarMenu, TranslatableMarker, Translation, TurnComponent, TurnGlobalHotkey, TurnLevel, TurnTracker, Tutorial, VassalTranslation, Widget, WidgetMap, Zone, ZonedGrid, ZonedGridHighlighter, ZoneHighlight, ZoneProperty, Zoomer

public interface Buildable
A Buildable is an object which can be initialized from an XML configuration file (e.g. "buildFile") in which each XML element represents an component object. The Buildable objects are built into a component hierarchy that mirrors the XML structure. Many Buildables in a vassal module are also Configurable, so that their attributes can be configured in the Editor. SEE ALSO: AbstractBuildable, AbstractConfigurable
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    add(Buildable child)
    Adds a child component.
    void
    addTo(Buildable parent)
    Adds this component to its parent.
    void
    Build the object from the XML representation of the Buildable
     
    default boolean
    Is this component a reqired component within its parent?
    default boolean
    Is this component allowed to be moved around the Configure Tree?
    default boolean
    Does this component need to be unique within it's parent?
  • Method Details

    • build

      void build(Element e)
      Build the object from the XML representation of the Buildable
      Parameters:
      e - the XML element containing the object data
    • addTo

      void addTo(Buildable parent)
      Adds this component to its parent. In order to make Buildable objects extensible, the child is responsible for adding itself to the parent. That way, Buildable subcomponents can be defined in an extension package without needing to modify the containing class.
      Parameters:
      parent - parent Buildable to add this component to as a subcomponent.
    • add

      void add(Buildable child)
      Adds a child component. Both this method and addTo(VASSAL.build.Buildable) are invoked when adding a child to a parent
      Parameters:
      child - Child to attach to this buildable as a subcomponent
    • getBuildElement

      Element getBuildElement(Document doc)
      Parameters:
      doc - XML file
      Returns:
      an XML element from which this component can be built
    • isMandatory

      default boolean isMandatory()
      Is this component a reqired component within its parent?
      Returns:
      true if component is mandatory
    • isMovable

      default boolean isMovable()
      Is this component allowed to be moved around the Configure Tree?
      Returns:
      true is component is movable
    • isUnique

      default boolean isUnique()
      Does this component need to be unique within it's parent?
      Returns: