Class RemoveSelectedNodesPreserveEdgesAlgorithm
java.lang.Object
org.graffiti.plugin.algorithm.AbstractAlgorithm
de.ipk_gatersleben.ag_nw.graffiti.plugins.misc.invert_selection.RemoveSelectedNodesPreserveEdgesAlgorithm
- All Implemented Interfaces:
UndoableEdit
,Algorithm
,AlgorithmWithComponentDescription
public class RemoveSelectedNodesPreserveEdgesAlgorithm extends AbstractAlgorithm implements AlgorithmWithComponentDescription
Labels all selected nodes with unique numbers. Does not touch existing
labels.
-
Constructor Summary
Constructors Constructor Description RemoveSelectedNodesPreserveEdgesAlgorithm()
-
Method Summary
Modifier and Type Method Description void
check()
Checks whether all preconditions of the current graph are satisfied.void
execute()
Executes the whole algorithm.KeyStroke
getAcceleratorKeyStroke()
Default: no accelerator for the menu item, created for this algorithm.String
getCategory()
Returns the category an algorithm should assigned to.String
getDescription()
The algorithm description.JComponent
getDescriptionComponent()
String
getName()
Returns the name (ID) of the algorithm.Parameter[]
getParameters()
Returns a list ofParameter
that are set for this algorithm.Set<Category>
getSetCategory()
Returns a set of categories to classify this algorithm .boolean
isAlwaysExecutable()
Indicates, if an algorithm is always executable - even without an active session.boolean
isLayoutAlgorithm()
A LayoutAlgorithm should return true.boolean
mayWorkOnMultipleGraphs()
static int
removeNodesPreserveEdges(ArrayList<Node> workNodes, Graph graph, boolean ignoreDirection, boolean layoutParallelEdges, BackgroundTaskStatusProviderSupportingExternalCall optStatus)
void
reset()
Resets the internal state of the algorithm.void
setParameters(Parameter[] params)
Sets the parameters for this algorithm.void
setSelection(Selection selection)
Sets the selection on which the algorithm works.Methods inherited from class org.graffiti.plugin.algorithm.AbstractAlgorithm
addEdit, attach, canRedo, canUndo, die, doesUndo, getActionEvent, getMenuCategory, getPresentationName, getRedoPresentationName, getUndoPresentationName, isSignificant, markExecutionDone, markRedoDone, markUndoDone, redo, replaceEdit, setActionEvent, showMenuIcon, undo
-
Constructor Details
-
RemoveSelectedNodesPreserveEdgesAlgorithm
public RemoveSelectedNodesPreserveEdgesAlgorithm()
-
-
Method Details
-
getParameters
Description copied from interface:Algorithm
Returns a list ofParameter
that are set for this algorithm.- Specified by:
getParameters
in interfaceAlgorithm
- Overrides:
getParameters
in classAbstractAlgorithm
- Returns:
- a collection of
Parameter
that are needed by theAlgorithm
.
-
getDescriptionComponent
- Specified by:
getDescriptionComponent
in interfaceAlgorithmWithComponentDescription
-
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.
-
setParameters
Description copied from interface:Algorithm
Sets the parameters for this algorithm. Must have the same types and order as the array returned bygetParameter
.- Specified by:
setParameters
in interfaceAlgorithm
- Overrides:
setParameters
in classAbstractAlgorithm
- Parameters:
params
- Parameter array
-
execute
public void execute()Description copied from interface:Algorithm
Executes the whole algorithm. -
removeNodesPreserveEdges
public static int removeNodesPreserveEdges(ArrayList<Node> workNodes, Graph graph, boolean ignoreDirection, boolean layoutParallelEdges, BackgroundTaskStatusProviderSupportingExternalCall optStatus) -
reset
public void reset()Description copied from interface:Algorithm
Resets the internal state of the algorithm.- Specified by:
reset
in interfaceAlgorithm
- Overrides:
reset
in classAbstractAlgorithm
-
getName
Description copied from interface:Algorithm
Returns the name (ID) of the algorithm. -
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.
-
getDescription
Description copied from class:AbstractAlgorithm
The algorithm description.- Specified by:
getDescription
in interfaceAlgorithm
- Overrides:
getDescription
in classAbstractAlgorithm
- Returns:
- String, could be HTML-styled.
-
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.
-
setSelection
Sets the selection on which the algorithm works.- Parameters:
selection
- the selection
-
mayWorkOnMultipleGraphs
public boolean mayWorkOnMultipleGraphs()- Specified by:
mayWorkOnMultipleGraphs
in interfaceAlgorithm
- Overrides:
mayWorkOnMultipleGraphs
in classAbstractAlgorithm
-
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:
-
isAlwaysExecutable
public boolean isAlwaysExecutable()Description copied from class:AbstractAlgorithm
Indicates, if an algorithm is always executable - even without an active session.- Overrides:
isAlwaysExecutable
in classAbstractAlgorithm
- Returns:
- true, when there are no preconditions
-