Class ForceDirectedLayoutWrapper

java.lang.Object
org.graffiti.plugin.algorithm.ThreadSafeAlgorithm
org.vanted.plugins.layout.multilevelframework.ForceDirectedLayoutWrapper
All Implemented Interfaces:
Algorithm

public class ForceDirectedLayoutWrapper
extends ThreadSafeAlgorithm
Wrapper class to enable usage of the PatternspringEmbedder (a.k.a. force-directed layout) provided in the VANTED core as part of the Multilevel Framework.

This class provides two things:

  1. It waits for the layouting to finish before returning in the execute method (busy waiting). Otherwise, the multilevel framework would proceed to placing the next level with an unfinished layout as input.
  2. it makes all relevant Parameters of the available, some of which are not included in getParameters()/setParameters() in the original PatternspringEmbedder.
See Also:
LayoutAlgorithmWrapper.layoutAlgWhitelist
  • Constructor Details

    • ForceDirectedLayoutWrapper

      public ForceDirectedLayoutWrapper()
  • Method Details

    • getName

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

      public void execute()
      Description copied from interface: Algorithm
      Executes the whole algorithm.
    • getParameters

      public Parameter[] getParameters()
      Description copied from interface: Algorithm
      Returns a list of Parameter that are set for this algorithm.
      Returns:
      a collection of Parameter that are needed by the Algorithm.
    • setParameters

      public void setParameters​(Parameter[] params)
      Description copied from interface: Algorithm
      Sets the parameters for this algorithm. Must have the same types and order as the array returned by getParameter.
    • attach

      public void attach​(Graph g, Selection s)
      Description copied from interface: Algorithm
      Attaches the given graph to this algorithm. A ttaches the given Selection information to the algorithm.
      Parameters:
      g - the graph to attach.
      s - the selection to attach.
    • check

      public void check() throws PreconditionException
      Description copied from interface: Algorithm
      Checks whether all preconditions of the current graph are satisfied.
      Throws:
      PreconditionException - if the preconditions of the current graph are not satisfied.
    • reset

      public void reset()
      Description copied from interface: Algorithm
      Resets the internal state of the algorithm.
    • 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.
      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
      Returns:
      Set of Category Enums that classify this algorithm.
    • getMenuCategory

      public String getMenuCategory()
      Description copied from interface: Algorithm
      Returns a path to a menu category. This is s '.' separated string which reflects the position of this Algorithm in the Menu Hierarchy e.g. "Network.Layout" would put this algorithm in the menu 'Network' and its submenu 'Layout' If this menu is not existent it will be created If this method returns 'null' the algorithm will not appear in the menu
      Returns:
    • isLayoutAlgorithm

      public boolean isLayoutAlgorithm()
      Description copied from interface: Algorithm
      A LayoutAlgorithm should return true. All other types of algorithms should return false.
      Returns:
    • getDescription

      public String getDescription()
    • getActionEvent

      public ActionEvent getActionEvent()
    • setActionEvent

      public void setActionEvent​(ActionEvent a)
    • setControlInterface

      public boolean setControlInterface​(ThreadSafeOptions options, JComponent jc)
      Description copied from class: ThreadSafeAlgorithm
      DOCUMENT ME!
      Specified by:
      setControlInterface in class ThreadSafeAlgorithm
      Returns:
      true, if an GUI was set, false if no interface is needed
    • executeThreadSafe

      public void executeThreadSafe​(ThreadSafeOptions options)
      Specified by:
      executeThreadSafe in class ThreadSafeAlgorithm
    • resetDataCache

      public void resetDataCache​(ThreadSafeOptions options)
      Specified by:
      resetDataCache in class ThreadSafeAlgorithm