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 Details

    • ExchangeNodePositionsAlgorithm

      public ExchangeNodePositionsAlgorithm()
  • Method Details

    • getName

      public String getName()
      Description copied from interface: Algorithm
      Returns the name (ID) of the algorithm.
      Returns:
      DOCUMENT ME!
    • getCategory

      public String 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 interface Algorithm
      Overrides:
      getCategory in class AbstractAlgorithm
      Returns:
      The category an algorithm should assigned to.
    • getSetCategory

      public Set<Category> 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 interface Algorithm
      Overrides:
      getSetCategory in class AbstractAlgorithm
      Returns:
      Set of Category Enums that classify this algorithm.
    • check

      public void check() throws PreconditionException
      Description copied from interface: Algorithm
      Checks whether all preconditions of the current graph are satisfied.
      Specified by:
      check in interface Algorithm
      Overrides:
      check in class AbstractAlgorithm
      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 interface Algorithm
      Overrides:
      isLayoutAlgorithm in class AbstractAlgorithm
      Returns:
    • getAcceleratorKeyStroke

      public KeyStroke getAcceleratorKeyStroke()
      Description copied from class: AbstractAlgorithm
      Default: no accelerator for the menu item, created for this algorithm.
      Specified by:
      getAcceleratorKeyStroke in interface Algorithm
      Overrides:
      getAcceleratorKeyStroke in class AbstractAlgorithm
      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 true to allow Undo/Redo edits.

      Important: If you use GraphHelper for undoable edits or any other UndoableEdit tools, do NOT return true, as those are handled in that given class.
      Overrides:
      doesUndo in class AbstractAlgorithm
      Returns:
      false by default, meaning the algorithm is not undoable
    • undo

      public void undo() throws CannotUndoException
      Description copied from class: AbstractAlgorithm

      Extend with your Undo functionality.

      Don't forget to call super() at the top of your implementation.
      Specified by:
      undo in interface UndoableEdit
      Overrides:
      undo in class AbstractAlgorithm
      Throws:
      CannotUndoException