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 void
check()
Checks whether all preconditions of the current graph are satisfied.boolean
doesUndo()
Must returntrue
to allow Undo/Redo edits.void
execute()
It swaps node positions in counter-clockwise direction.KeyStroke
getAcceleratorKeyStroke()
Default: no accelerator for the menu item, created for this algorithm.String
getCategory()
Returns the category an algorithm should assigned to.String
getName()
Returns the name (ID) of the algorithm.Set<Category>
getSetCategory()
Returns a set of categories to classify this algorithm .boolean
isLayoutAlgorithm()
A LayoutAlgorithm should return true.void
undo()
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:Algorithm
Returns the name (ID) of the algorithm.- Returns:
- DOCUMENT ME!
-
getCategory
Description copied from interface:Algorithm
Returns the category an algorithm should assigned to. Return NULL if the algorithm should be sorted directly in the plugin menu.- Specified by:
getCategory
in interfaceAlgorithm
- Overrides:
getCategory
in classAbstractAlgorithm
- Returns:
- The category an algorithm should assigned to.
-
getSetCategory
Description copied from interface:Algorithm
Returns 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:
getSetCategory
in interfaceAlgorithm
- Overrides:
getSetCategory
in classAbstractAlgorithm
- Returns:
- Set of Category Enums that classify this algorithm.
-
check
Description copied from interface:Algorithm
Checks whether all preconditions of the current graph are satisfied.- Specified by:
check
in interfaceAlgorithm
- Overrides:
check
in classAbstractAlgorithm
- Throws:
PreconditionException
- if the preconditions of the current graph are not satisfied.
-
isLayoutAlgorithm
public boolean isLayoutAlgorithm()Description copied from interface:Algorithm
A LayoutAlgorithm should return true. All other types of algorithms should return false.- Specified by:
isLayoutAlgorithm
in interfaceAlgorithm
- Overrides:
isLayoutAlgorithm
in classAbstractAlgorithm
- Returns:
-
getAcceleratorKeyStroke
Description copied from class:AbstractAlgorithm
Default: no accelerator for the menu item, created for this algorithm.- Specified by:
getAcceleratorKeyStroke
in interfaceAlgorithm
- Overrides:
getAcceleratorKeyStroke
in 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:AbstractAlgorithm
Must return
Important: If you use GraphHelper for undoable edits or any other UndoableEdit tools, do NOT returntrue
to allow Undo/Redo edits.true
, as those are handled in that given class.- Overrides:
doesUndo
in classAbstractAlgorithm
- Returns:
false
by default, meaning the algorithm is not undoable
-
undo
Description copied from class:AbstractAlgorithm
Extend with your Undo functionality.
Don't forget to callsuper()
at the top of your implementation.- Specified by:
undo
in interfaceUndoableEdit
- Overrides:
undo
in classAbstractAlgorithm
- Throws:
CannotUndoException
-