Class ExchangeNodePositionsAlgorithm
java.lang.Object
org.graffiti.plugin.algorithm.AbstractAlgorithm
de.ipk_gatersleben.ag_nw.graffiti.plugins.algorithms.ratioview.ExchangeNodePositionsAlgorithm
- All Implemented Interfaces:
UndoableEdit,Algorithm
public class ExchangeNodePositionsAlgorithm extends AbstractAlgorithm
- Since:
- 27.02.2006
- Version:
- 2.0
- Author:
- Christian Klukas, Dimitar Garkov
- Recent revisions:
- 2.7.0 Overall revision to optimize; add support for built-in algorithm undo/redo operations.
-
Constructor Summary
Constructors Constructor Description ExchangeNodePositionsAlgorithm() -
Method Summary
Modifier and Type Method Description voidcheck()Checks whether all preconditions of the current graph are satisfied.booleandoesUndo()Must returntrueto allow Undo/Redo edits.voidexecute()It swaps node positions in counter-clockwise direction.KeyStrokegetAcceleratorKeyStroke()Default: no accelerator for the menu item, created for this algorithm.StringgetCategory()Returns the category an algorithm should assigned to.StringgetName()Returns the name (ID) of the algorithm.Set<Category>getSetCategory()Returns a set of categories to classify this algorithm .booleanisLayoutAlgorithm()A LayoutAlgorithm should return true.voidundo()Extend with your Undo functionality.Methods inherited from class org.graffiti.plugin.algorithm.AbstractAlgorithm
addEdit, attach, canRedo, canUndo, die, getActionEvent, getDescription, getMenuCategory, getParameters, getPresentationName, getRedoPresentationName, getUndoPresentationName, isAlwaysExecutable, isSignificant, markExecutionDone, markRedoDone, markUndoDone, mayWorkOnMultipleGraphs, redo, replaceEdit, reset, setActionEvent, setParameters, showMenuIcon
-
Constructor Details
-
ExchangeNodePositionsAlgorithm
public ExchangeNodePositionsAlgorithm()
-
-
Method Details
-
getName
Description copied from interface:AlgorithmReturns the name (ID) of the algorithm.- Returns:
- DOCUMENT ME!
-
getCategory
Description copied from interface:AlgorithmReturns the category an algorithm should assigned to. Return NULL if the algorithm should be sorted directly in the plugin menu.- Specified by:
getCategoryin interfaceAlgorithm- Overrides:
getCategoryin classAbstractAlgorithm- Returns:
- The category an algorithm should assigned to.
-
getSetCategory
Description copied from interface:AlgorithmReturns a set of categories to classify this algorithm . e.g. return new HashSet(Arrays.asList( Category.GRAPH, Category.NODE )); is an algorithm, working on graphs and more specific on nodes - Specified by:
getSetCategoryin interfaceAlgorithm- Overrides:
getSetCategoryin classAbstractAlgorithm- Returns:
- Set of Category Enums that classify this algorithm.
-
check
Description copied from interface:AlgorithmChecks whether all preconditions of the current graph are satisfied.- Specified by:
checkin interfaceAlgorithm- Overrides:
checkin classAbstractAlgorithm- Throws:
PreconditionException- if the preconditions of the current graph are not satisfied.
-
isLayoutAlgorithm
public boolean isLayoutAlgorithm()Description copied from interface:AlgorithmA LayoutAlgorithm should return true. All other types of algorithms should return false.- Specified by:
isLayoutAlgorithmin interfaceAlgorithm- Overrides:
isLayoutAlgorithmin classAbstractAlgorithm- Returns:
-
getAcceleratorKeyStroke
Description copied from class:AbstractAlgorithmDefault: no accelerator for the menu item, created for this algorithm.- Specified by:
getAcceleratorKeyStrokein interfaceAlgorithm- Overrides:
getAcceleratorKeyStrokein classAbstractAlgorithm- Returns:
- NULL (default) if no accelerator should be assigned for this algorithm.
-
execute
public void execute()It swaps node positions in counter-clockwise direction. -
doesUndo
public boolean doesUndo()Description copied from class:AbstractAlgorithmMust return
Important: If you use GraphHelper for undoable edits or any other UndoableEdit tools, do NOT returntrueto allow Undo/Redo edits.true, as those are handled in that given class.- Overrides:
doesUndoin classAbstractAlgorithm- Returns:
falseby default, meaning the algorithm is not undoable
-
undo
Description copied from class:AbstractAlgorithmExtend with your Undo functionality.
Don't forget to callsuper()at the top of your implementation.- Specified by:
undoin interfaceUndoableEdit- Overrides:
undoin classAbstractAlgorithm- Throws:
CannotUndoException
-