Package VASSAL.configure
Class ConfigureTree
java.lang.Object
java.awt.Component
java.awt.Container
javax.swing.JComponent
javax.swing.JTree
VASSAL.configure.ConfigureTree
- All Implemented Interfaces:
MouseListener,MouseMotionListener,ImageObserver,MenuContainer,PropertyChangeListener,Serializable,EventListener,Accessible,TreeExpansionListener,TreeSelectionListener,Scrollable
- Direct Known Subclasses:
ExtensionTree
public class ConfigureTree
extends JTree
implements PropertyChangeListener, MouseListener, MouseMotionListener, TreeSelectionListener, TreeExpansionListener
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:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprotected classprotected static classprotected classstatic interfaceConfigurers that add or remove their own children directly should implement the Mutable interface so that ConfigureTree can refresh the changed node.Nested classes/interfaces inherited from class javax.swing.JTree
JTree.AccessibleJTree, JTree.DropLocation, JTree.DynamicUtilTreeNode, JTree.EmptySelectionModel, JTree.TreeModelHandler, JTree.TreeSelectionRedirectorNested classes/interfaces inherited from class javax.swing.JComponent
JComponent.AccessibleJComponentNested classes/interfaces inherited from class java.awt.Container
Container.AccessibleAWTContainerNested classes/interfaces inherited from class java.awt.Component
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected static final List<ConfigureTree.AdditionalComponent> protected static Chatterprotected Actionprotected Stringprotected DefaultMutableTreeNodeprotected KeyStrokeprotected Actionprotected Stringprotected DefaultMutableTreeNodeprotected KeyStrokestatic final Stringprotected Actionprotected Stringprotected KeyStrokeprotected Actionprotected Stringprotected KeyStrokeprotected EditorWindowprotected Actionprotected Stringprotected KeyStrokeprotected HelpWindowprotected Actionprotected Stringprotected KeyStrokeprotected Map<Configurable, DefaultMutableTreeNode> protected Actionprotected Stringprotected KeyStrokestatic final FontDeprecated, for removal: This API element is subject to removal in a future version.protected Actionprotected Stringprotected KeyStrokeprotected Actionprotected JCheckBoxprotected Stringprotected JDialogprotected JTextFieldprotected KeyStrokeprotected Configurableprotected intprotected Actionprotected Stringprotected KeyStrokeFields inherited from class javax.swing.JTree
ANCHOR_SELECTION_PATH_PROPERTY, CELL_EDITOR_PROPERTY, CELL_RENDERER_PROPERTY, cellEditor, cellRenderer, editable, EDITABLE_PROPERTY, EXPANDS_SELECTED_PATHS_PROPERTY, INVOKES_STOP_CELL_EDITING_PROPERTY, invokesStopCellEditing, LARGE_MODEL_PROPERTY, largeModel, LEAD_SELECTION_PATH_PROPERTY, ROOT_VISIBLE_PROPERTY, rootVisible, ROW_HEIGHT_PROPERTY, rowHeight, SCROLLS_ON_EXPAND_PROPERTY, scrollsOnExpand, SELECTION_MODEL_PROPERTY, selectionModel, selectionRedirector, SHOWS_ROOT_HANDLES_PROPERTY, showsRootHandles, TOGGLE_CLICK_COUNT_PROPERTY, toggleClickCount, TREE_MODEL_PROPERTY, treeModel, treeModelListener, VISIBLE_ROW_COUNT_PROPERTY, visibleRowCountFields inherited from class javax.swing.JComponent
listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOWFields inherited from class java.awt.Component
accessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENTFields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH -
Constructor Summary
ConstructorsConstructorDescriptionConfigureTree(Configurable root, HelpWindow helpWindow) Creates new ConfigureTreeConfigureTree(Configurable root, HelpWindow helpWindow, EditorWindow editorWindow) ConfigureTree(Configurable root, HelpWindow helpWindow, EditorWindow editorWindow, boolean disableDragAndDrop) -
Method Summary
Modifier and TypeMethodDescriptionprotected voidaddAction(JPopupMenu menu, Action a) static voidaddAdditionalComponent(Class<? extends Buildable> parent, Class<? extends Buildable> child) Record additional available components to add to the popup menu.protected voidaddSubMenu(JPopupMenu menu, String name, List<Action> l) protected ActionbuildAddAction(Configurable target, Class<? extends Buildable> newConfig) protected ActionbuildAddAction(Configurable target, Class<? extends Buildable> newConfig, String key, int index, Configurable duplicate) buildAddActionsFor(Configurable target) buildAddActionsFor(Configurable target, List<Action> peerInserts) protected ActionbuildCloneAction(Configurable target) protected ActionbuildCopyAction(Configurable target) protected ActionbuildCutAction(Configurable target) protected ActionbuildDeleteAction(Configurable target) protected ActionbuildEditAction(Configurable target) protected ActionbuildEditPiecesAction(Configurable target) protected ActionbuildExportTreeAction(Configurable target) protected ActionbuildHelpAction(Configurable target) protected ActionbuildImportAction(Configurable target) protected ActionbuildImportDeckAction(Configurable target) protected ActionbuildImportTreeAction(Configurable target) protected Actionprotected ActionbuildMoveAction(Configurable target) protected ActionbuildOpenPiecesAction(Configurable target) protected ActionbuildPasteAction(Configurable target) protected JPopupMenubuildPopupMenu(Configurable target) protected VASSAL.configure.ConfigureTree.Rendererprotected ActionbuildSearchAction(Configurable target) protected ActionbuildTranslateAction(Configurable target) protected DefaultMutableTreeNodebooleancanContainGamePiece(Configurable target) protected static voidintcheckMinimumIndex(DefaultMutableTreeNode targetNode, int index) Allows ExtensionEditor to override and control what indexes are allowedprotected ConfigurableconvertChild(Configurable parent, Configurable child) Some components need to be converted to a new type before insertion.protected booleandelete(Configurable target) Delete removes an item from the tree but ALSO traverses the tree throwing all the childrens' children manually out the airlock, one by one.protected voiddoKeyAction(String action) Handle main Edit menu selections/acceleratorsprotected booleanexportTreeBranch(AbstractBuildable target) voidexternalInsert(Configurable parent, Configurable child) Build an AddAction and execute it to request a new component from the userstatic StringgetConfigureName(Class<?> c) Returns the name of the class for display purposes.static StringgetFrame()protected ConfigurablegetParent(DefaultMutableTreeNode targetNode) protected ConfigurablegetParent(Configurable target) Find the parent Configurable of a specified Configurableprotected JCheckBoxprotected JDialogprotected JTextFieldprotected ConfigurablegetTarget(int x, int y) getTreeNode(Configurable target) protected booleanhasChild(Configurable parent, Class<?> childClass) protected Configurableprotected booleanimportTreeBranch(Configurable target) protected booleaninsert(Configurable parent, Configurable child, int index) protected booleanisAllowedChildClass(Configurable parent, Class<?> childClass) protected booleanisDeleteAllowed(Configurable target) Is the Component allowed to be deleted? A mandatory component can be deleted if there is more than one of them with the same parentprotected booleanisDuplicateAllowed(Configurable target) Is the Component allowed to be duplicated?booleanisMoveAllowed(Configurable target) Is the Component allowed to be moved?protected booleanisValidParent(Configurable parent, Configurable child) protected booleanisValidPasteTarget(Configurable target) protected booleanisValidPasteTarget(Configurable target, DefaultMutableTreeNode sourceNode) voidjumpToTarget(Configurable target) protected voidvoidvoidmouseDragged(MouseEvent evt) voidvoidvoidvoidvoidvoidnodeEdited(Configurable target) Called when the Configurable held by a node has been edited.voidnodeUpdated(Configurable target) static Stringprotected voidnotifyStateChanged(boolean changed) Tell our enclosing EditorWindow that we are now clean or dirty.voidprotected voidpostInsertProcessing(Configurable parent, Configurable child) protected voidpostPasteFixups(Configurable target) If there are items that need to be adjusted after being pasted (to make sure they don't contain illegal values that will be hard to debug later), we can make them here.protected voidpostRemoveProcessing(Configurable parent, Configurable child) voidprotected booleanremove(Configurable parent, Configurable child) protected voidsetSearchAdvanced(JCheckBox searchAdvanced) protected voidsetSearchDialog(JDialog searchDialog) protected voidsetSearchField(JTextField searchField) voidtreeCollapsed(TreeExpansionEvent event) A cell has been collapsed.voidtreeExpanded(TreeExpansionEvent event) protected voidvoidAllocate new PieceSlot Id's to any PieceSlot sub-componentsvoidTree selection changed, record info about the currently selected componentMethods inherited from class javax.swing.JTree
addSelectionInterval, addSelectionPath, addSelectionPaths, addSelectionRow, addSelectionRows, addTreeExpansionListener, addTreeSelectionListener, addTreeWillExpandListener, cancelEditing, clearSelection, clearToggledPaths, collapsePath, collapseRow, convertValueToText, createTreeModel, createTreeModelListener, expandPath, expandRow, fireTreeCollapsed, fireTreeExpanded, fireTreeWillCollapse, fireTreeWillExpand, fireValueChanged, getAccessibleContext, getAnchorSelectionPath, getCellEditor, getCellRenderer, getClosestPathForLocation, getClosestRowForLocation, getDefaultTreeModel, getDescendantToggledPaths, getDragEnabled, getDropLocation, getDropMode, getEditingPath, getExpandedDescendants, getExpandsSelectedPaths, getInvokesStopCellEditing, getLastSelectedPathComponent, getLeadSelectionPath, getLeadSelectionRow, getMaxSelectionRow, getMinSelectionRow, getModel, getNextMatch, getPathBetweenRows, getPathBounds, getPathForLocation, getPathForRow, getPreferredScrollableViewportSize, getRowBounds, getRowCount, getRowForLocation, getRowForPath, getRowHeight, getScrollableBlockIncrement, getScrollableTracksViewportHeight, getScrollableTracksViewportWidth, getScrollableUnitIncrement, getScrollsOnExpand, getSelectionCount, getSelectionModel, getSelectionPath, getSelectionPaths, getSelectionRows, getShowsRootHandles, getToggleClickCount, getToolTipText, getTreeExpansionListeners, getTreeSelectionListeners, getTreeWillExpandListeners, getUI, getUIClassID, getVisibleRowCount, hasBeenExpanded, isCollapsed, isCollapsed, isEditable, isEditing, isExpanded, isExpanded, isFixedRowHeight, isLargeModel, isPathEditable, isPathSelected, isRootVisible, isRowSelected, isSelectionEmpty, isVisible, makeVisible, paramString, removeDescendantSelectedPaths, removeDescendantToggledPaths, removeSelectionInterval, removeSelectionPath, removeSelectionPaths, removeSelectionRow, removeSelectionRows, removeTreeExpansionListener, removeTreeSelectionListener, removeTreeWillExpandListener, scrollPathToVisible, scrollRowToVisible, setAnchorSelectionPath, setCellEditor, setCellRenderer, setDragEnabled, setDropMode, setEditable, setExpandedState, setExpandsSelectedPaths, setInvokesStopCellEditing, setLargeModel, setLeadSelectionPath, setModel, setRootVisible, setRowHeight, setScrollsOnExpand, setSelectionInterval, setSelectionModel, setSelectionPath, setSelectionPaths, setSelectionRow, setSelectionRows, setShowsRootHandles, setToggleClickCount, setUI, setVisibleRowCount, startEditingAtPath, stopEditing, treeDidChange, updateUIMethods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, updateMethods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusDownCycle, validate, validateTreeMethods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setMixingCutoutShape, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
-
Field Details
-
nodes
-
copyData
-
cutData
-
helpWindow
-
editorWindow
-
selected
-
selectedRow
protected int selectedRow -
searchCmd
-
moveCmd
-
deleteCmd
-
pasteCmd
-
copyCmd
-
cutCmd
-
helpCmd
-
propertiesCmd
-
translateCmd
-
duplicateCmd
-
cutKey
-
copyKey
-
pasteKey
-
deleteKey
-
moveKey
-
searchKey
-
helpKey
-
propertiesKey
-
translateKey
-
duplicateKey
-
cutAction
-
copyAction
-
pasteAction
-
deleteAction
-
moveAction
-
searchAction
-
propertiesAction
-
translateAction
-
helpAction
-
duplicateAction
-
searchDialog
-
searchField
-
searchAdvanced
-
chatter
-
POPUP_MENU_FONT
Deprecated, for removal: This API element is subject to removal in a future version. -
additionalComponents
-
defaultExportExtension
- See Also:
-
-
Constructor Details
-
ConfigureTree
Creates new ConfigureTree -
ConfigureTree
-
ConfigureTree
public ConfigureTree(Configurable root, HelpWindow helpWindow, EditorWindow editorWindow, boolean disableDragAndDrop)
-
-
Method Details
-
noHTML
-
chat
-
getSearchDialog
-
setSearchDialog
-
getSearchField
-
setSearchField
-
setSearchAdvanced
-
getSearchAdvanced
-
getFrame
-
treeExpanded
- Specified by:
treeExpandedin interfaceTreeExpansionListener
-
treeCollapsed
A cell has been collapsed. Reset the edit flag on all the children owned by this node- Specified by:
treeCollapsedin interfaceTreeExpansionListener- Parameters:
event- Expansion event
-
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
-
buildTreeNode
-
addAction
-
addSubMenu
-
buildPopupMenu
-
exportTreeBranch
-
importTreeBranch
-
buildSearchAction
- Returns:
- Search action - runs search dialog box, then searches
-
buildExportTreeAction
-
buildImportTreeAction
-
buildMoveAction
-
buildCutAction
-
buildCopyAction
-
postPasteFixups
If there are items that need to be adjusted after being pasted (to make sure they don't contain illegal values that will be hard to debug later), we can make them here.- Parameters:
target- Item we just pasted
-
buildPasteAction
-
isValidPasteTarget
-
isValidPasteTarget
-
convertChild
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 Configurablechild- Child Configurable- Returns:
- new Child
-
isAllowedChildClass
-
updateGpIds
Allocate new PieceSlot Id's to any PieceSlot sub-components- Parameters:
c- Configurable to update
-
buildImportAction
-
buildImportDeckAction
-
buildMassPieceLoaderAction
-
hasChild
-
buildAddActionsFor
-
buildAddActionsFor
-
buildAddAction
-
buildAddAction
protected Action buildAddAction(Configurable target, Class<? extends Buildable> newConfig, String key, int index, Configurable duplicate) -
buildHelpAction
-
buildCloneAction
-
getParent
-
buildDeleteAction
-
buildEditPiecesAction
-
buildOpenPiecesAction
-
buildEditAction
-
buildTranslateAction
-
canContainGamePiece
-
delete
Delete removes an item from the tree but ALSO traverses the tree throwing all the childrens' children manually out the airlock, one by one. Lest they return and live on as zombies... -
remove
-
insert
-
propertyChange
- Specified by:
propertyChangein interfacePropertyChangeListener
-
getConfigureName
Returns the name of the class for display purposes. Reflection is used to callgetConfigureTypeName(), 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
-
importConfigurable
-
maybePopup
-
mousePressed
- Specified by:
mousePressedin interfaceMouseListener
-
mouseReleased
- Specified by:
mouseReleasedin interfaceMouseListener
-
getTreeNode
-
mouseDragged
- Specified by:
mouseDraggedin interfaceMouseMotionListener
-
isMoveAllowed
Is the Component allowed to be moved? -
isDeleteAllowed
Is the Component allowed to be deleted? A mandatory component can be deleted if there is more than one of them with the same parent -
isDuplicateAllowed
Is the Component allowed to be duplicated? -
isValidParent
-
mouseClicked
- Specified by:
mouseClickedin interfaceMouseListener
-
mouseEntered
- Specified by:
mouseEnteredin interfaceMouseListener
-
mouseExited
- Specified by:
mouseExitedin interfaceMouseListener
-
mouseMoved
- Specified by:
mouseMovedin interfaceMouseMotionListener
-
nodeUpdated
-
jumpToTarget
-
externalInsert
Build an AddAction and execute it to request a new component from the user- Parameters:
parent- Target Parentchild- Type to add
-
getHelpAction
-
populateEditMenu
-
doKeyAction
Handle main Edit menu selections/accelerators- Parameters:
action- Edit command name
-
valueChanged
Tree selection changed, record info about the currently selected component- Specified by:
valueChangedin interfaceTreeSelectionListener
-
updateEditMenu
protected void updateEditMenu() -
getParent
Find the parent Configurable of a specified Configurable- Parameters:
target- target Configurable- Returns:
- parent
-
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 Classchild- Child Class
-
nodeEdited
Called when the Configurable held by a node has been edited. Set the edit status and re-build the Jtree label- Parameters:
target- Edited Configurable
-
checkMinimumIndex
Allows ExtensionEditor to override and control what indexes are allowed -
postInsertProcessing
-
postRemoveProcessing
-