Class ConfigureTree

All Implemented Interfaces:
MouseListener, MouseMotionListener, ImageObserver, MenuContainer, PropertyChangeListener, Serializable, EventListener, Accessible, TreeSelectionListener, Scrollable
Direct Known Subclasses:
ExtensionTree

public class ConfigureTree
extends JTree
implements PropertyChangeListener, MouseListener, MouseMotionListener, TreeSelectionListener
The beating heart of the Editor, this class handles the Configuration Tree that appears in the Configuration window when editing a VASSAL module. Each node in the tree structure is a Configurable object, whose child nodes are obtained via Configurable.getConfigureComponents(). When we're running as the Extension Editor, this is subclassed by ExtensionTree, which overrides some methods to handle extension-specific differences.
See Also:
Serialized Form
  • Field Details

  • Constructor Details

  • Method Details

    • chat

      protected static void chat​(String text)
    • getSearchDialog

      protected JDialog getSearchDialog()
    • setSearchDialog

      protected void setSearchDialog​(JDialog searchDialog)
    • getSearchField

      protected JTextField getSearchField()
    • setSearchField

      protected void setSearchField​(JTextField searchField)
    • setSearchAdvanced

      protected void setSearchAdvanced​(JCheckBox searchAdvanced)
    • getSearchAdvanced

      protected JCheckBox getSearchAdvanced()
    • getFrame

      public JFrame getFrame()
    • buildRenderer

      protected VASSAL.configure.ConfigureTree.Renderer buildRenderer()
    • notifyStateChanged

      protected void notifyStateChanged​(boolean changed)
      Tell our enclosing EditorWindow that we are now clean or dirty.
      Parameters:
      changed - true = state is not dirty
    • getTarget

      protected Configurable getTarget​(int x, int y)
    • buildTreeNode

      protected DefaultMutableTreeNode buildTreeNode​(Configurable c)
    • addAction

      protected void addAction​(JPopupMenu menu, Action a)
    • buildPopupMenu

      protected JPopupMenu buildPopupMenu​(Configurable target)
    • buildSearchAction

      protected Action buildSearchAction​(Configurable target)
      Returns:
      Search action - runs search dialog box, then searches
    • buildMoveAction

      protected Action buildMoveAction​(Configurable target)
    • buildCutAction

      protected Action buildCutAction​(Configurable target)
    • buildCopyAction

      protected Action buildCopyAction​(Configurable target)
    • buildPasteAction

      protected Action buildPasteAction​(Configurable target)
    • isValidPasteTarget

      protected boolean isValidPasteTarget​(Configurable target)
    • convertChild

      protected Configurable convertChild​(Configurable parent, Configurable child)
      Some components need to be converted to a new type before insertion. Currently this is used to allow cut and paste of CardSlots and PieceSlots between Decks and GamePiece Palette components.
      Parameters:
      parent - Parent Configurable
      child - Child Configurable
      Returns:
      new Child
    • isAllowedChildClass

      protected boolean isAllowedChildClass​(Configurable parent, Class<?> childClass)
    • updateGpIds

      public void updateGpIds​(Configurable c)
      Allocate new PieceSlot Id's to any PieceSlot sub-components
      Parameters:
      c - Configurable to update
    • buildImportAction

      protected Action buildImportAction​(Configurable target)
    • buildMassPieceLoaderAction

      protected Action buildMassPieceLoaderAction​(Configurable target)
    • hasChild

      protected boolean hasChild​(Configurable parent, Class<?> childClass)
    • buildAddActionsFor

      protected List<Action> buildAddActionsFor​(Configurable target)
    • buildAddActions

      @Deprecated(since="2020-08-06", forRemoval=true) protected Enumeration<Action> buildAddActions​(Configurable target)
      Deprecated, for removal: This API element is subject to removal in a future version.
    • buildAddAction

      protected Action buildAddAction​(Configurable target, Class<? extends Buildable> newConfig)
    • buildHelpAction

      protected Action buildHelpAction​(Configurable target)
    • buildCloneAction

      protected Action buildCloneAction​(Configurable target)
    • getParent

      protected Configurable getParent​(DefaultMutableTreeNode targetNode)
    • buildDeleteAction

      protected Action buildDeleteAction​(Configurable target)
    • buildEditPiecesAction

      protected Action buildEditPiecesAction​(Configurable target)
    • buildEditAction

      protected Action buildEditAction​(Configurable target)
    • buildTranslateAction

      protected Action buildTranslateAction​(Configurable target)
    • canContainGamePiece

      public boolean canContainGamePiece​(Configurable target)
    • remove

      protected boolean remove​(Configurable parent, Configurable child)
    • insert

      protected boolean insert​(Configurable parent, Configurable child, int index)
    • propertyChange

      public void propertyChange​(PropertyChangeEvent evt)
      Specified by:
      propertyChange in interface PropertyChangeListener
    • getConfigureName

      public static String getConfigureName​(Class<?> c)
      Returns the name of the class for display purposes. Reflection is used to call getConfigureTypeName(), which should be a static method if it exists in the given class. (This is necessary because static methods are not permitted in interfaces.)
      Parameters:
      c - the class whose configure name will be returned
      Returns:
      the configure name of the class
    • getConfigureName

      public static String getConfigureName​(Configurable c)
    • importConfigurable

      protected Configurable importConfigurable()
    • maybePopup

      protected void maybePopup​(MouseEvent e)
    • mousePressed

      public void mousePressed​(MouseEvent e)
      Specified by:
      mousePressed in interface MouseListener
    • mouseReleased

      public void mouseReleased​(MouseEvent e)
      Specified by:
      mouseReleased in interface MouseListener
    • getTreeNode

      public DefaultMutableTreeNode getTreeNode​(Configurable target)
    • mouseDragged

      public void mouseDragged​(MouseEvent evt)
      Specified by:
      mouseDragged in interface MouseMotionListener
    • isValidParent

      protected boolean isValidParent​(Configurable parent, Configurable child)
    • mouseClicked

      public void mouseClicked​(MouseEvent e)
      Specified by:
      mouseClicked in interface MouseListener
    • mouseEntered

      public void mouseEntered​(MouseEvent e)
      Specified by:
      mouseEntered in interface MouseListener
    • mouseExited

      public void mouseExited​(MouseEvent e)
      Specified by:
      mouseExited in interface MouseListener
    • mouseMoved

      public void mouseMoved​(MouseEvent e)
      Specified by:
      mouseMoved in interface MouseMotionListener
    • nodeUpdated

      public void nodeUpdated​(Configurable target)
    • externalInsert

      public void externalInsert​(Configurable parent, Configurable child)
      Build an AddAction and execute it to request a new component from the user
      Parameters:
      parent - Target Parent
      child - Type to add
    • getHelpAction

      public Action getHelpAction()
    • populateEditMenu

      public void populateEditMenu​(EditorWindow ew)
    • doKeyAction

      protected void doKeyAction​(String action)
      Handle main Edit menu selections/accelerators
      Parameters:
      action - Edit command name
    • valueChanged

      public void valueChanged​(TreeSelectionEvent e)
      Tree selection changed, record info about the currently selected component
      Specified by:
      valueChanged in interface TreeSelectionListener
    • updateEditMenu

      protected void updateEditMenu()
    • getParent

      protected Configurable getParent​(Configurable target)
      Find the parent Configurable of a specified Configurable
      Parameters:
      target - target Configurable
      Returns:
      parent
    • getSearchCmd

      public String getSearchCmd()
    • addAdditionalComponent

      public static void addAdditionalComponent​(Class<? extends Buildable> parent, Class<? extends Buildable> child)
      Record additional available components to add to the popup menu.
      Parameters:
      parent - Parent Class
      child - Child Class