Class BackgroundExecutionAlgorithm

java.lang.Object
org.graffiti.plugin.algorithm.ThreadSafeAlgorithm
org.vanted.plugins.layout.stressminimization.BackgroundExecutionAlgorithm
All Implemented Interfaces:
PropertyChangeListener, EventListener, Algorithm, SessionListener

public class BackgroundExecutionAlgorithm
extends ThreadSafeAlgorithm
implements PropertyChangeListener, SessionListener
This class handles the execution of a given BackgroundAlgorithm in the background, i.e. asynchroneously. This class is an instance of ThreadSafeAlgorithm in order to provide a more flexible options UI in the sidebar.
  • Constructor Details

    • BackgroundExecutionAlgorithm

      public BackgroundExecutionAlgorithm​(BackgroundAlgorithm algorithm)
  • Method Details

    • getName

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

      public void attach​(Graph g, Selection selection)
      Description copied from interface: Algorithm
      Attaches the given graph to this algorithm. A ttaches the given Selection information to the algorithm.
      Specified by:
      attach in interface Algorithm
      Parameters:
      g - the graph to attach.
      selection - the selection to attach.
    • 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.
      Specified by:
      setParameters in interface Algorithm
    • getParameters

      public Parameter[] getParameters()
      Description copied from interface: Algorithm
      Returns a list of Parameter that are set for this algorithm.
      Specified by:
      getParameters in interface Algorithm
      Returns:
      a collection of Parameter that are needed by the 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
      Throws:
      PreconditionException - if the preconditions of the current graph are not satisfied.
    • execute

      public void execute()
      Description copied from interface: Algorithm
      Executes the whole algorithm.
      Specified by:
      execute in interface Algorithm
    • executeBackgroundAlgorithm

      public void executeBackgroundAlgorithm()
      Starts new thread which executes the BackgroundAlgorithm and starts the progress bar
    • reset

      public void reset()
      Description copied from interface: Algorithm
      Resets the internal state of the algorithm.
      Specified by:
      reset in interface 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.
      Specified by:
      getCategory in interface Algorithm
      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
      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
      Specified by:
      getMenuCategory in interface Algorithm
      Returns:
    • 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
      Returns:
    • showMenuIcon

      public boolean showMenuIcon()
      Description copied from interface: Algorithm
      Override this method to give a different look and feel to the application, and to put the plugin icon next to the menu item in the main menu bar.
      Specified by:
      showMenuIcon in interface Algorithm
      Overrides:
      showMenuIcon in class ThreadSafeAlgorithm
      Returns:
      True, if the plugin icon should be shown next to the menu item. Return FALSE (default!), if no icon should be shown in the menu.
    • getAcceleratorKeyStroke

      public KeyStroke getAcceleratorKeyStroke()
      Description copied from interface: Algorithm
      Override this method to provide a accelerator hot key for the algorithm.
      Specified by:
      getAcceleratorKeyStroke in interface Algorithm
      Overrides:
      getAcceleratorKeyStroke in class ThreadSafeAlgorithm
      Returns:
      NULL (default) if no accelerator should be assigned for this algorithm.
    • getDescription

      public String getDescription()
      Specified by:
      getDescription in interface Algorithm
    • setActionEvent

      public void setActionEvent​(ActionEvent a)
      Specified by:
      setActionEvent in interface Algorithm
    • getActionEvent

      public ActionEvent getActionEvent()
      Specified by:
      getActionEvent in interface Algorithm
    • mayWorkOnMultipleGraphs

      public boolean mayWorkOnMultipleGraphs()
      Specified by:
      mayWorkOnMultipleGraphs in interface Algorithm
      Overrides:
      mayWorkOnMultipleGraphs in class ThreadSafeAlgorithm
    • setControlInterface

      public boolean setControlInterface​(ThreadSafeOptions threadSafeOptions, JComponent jc)
      See readme for context
      Specified by:
      setControlInterface in class ThreadSafeAlgorithm
      Parameters:
      threadSafeOptions -
      jc -
      Returns:
    • propertyChange

      public void propertyChange​(PropertyChangeEvent arg0)
      Specified by:
      propertyChange in interface PropertyChangeListener
    • sessionChanged

      public void sessionChanged​(Session s)
      Description copied from interface: SessionListener
      This method is called when the session changes.
      Specified by:
      sessionChanged in interface SessionListener
      Parameters:
      s - the new Session.
    • sessionDataChanged

      public void sessionDataChanged​(Session s)
      Description copied from interface: SessionListener
      This method is called when the data (except the graph data) are changed.
      Specified by:
      sessionDataChanged in interface SessionListener
    • executeThreadSafe

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

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