package com.horstmann.violet.workspace.editorpart.behavior; import java.util.ArrayList; import com.horstmann.violet.product.diagram.abstracts.IGraph; import com.horstmann.violet.product.diagram.abstracts.edge.IEdge; import com.horstmann.violet.product.diagram.abstracts.node.INode; import com.horstmann.violet.workspace.editorpart.IEditorPart; import com.horstmann.violet.workspace.editorpart.IEditorPartBehaviorManager; import com.horstmann.violet.workspace.editorpart.IEditorPartSelectionHandler; import com.horstmann.violet.workspace.sidebar.graphtools.IGraphToolsBar; public class SelectAllBehavior extends AbstractEditorPartBehavior { public SelectAllBehavior(IEditorPart editorPart, IGraphToolsBar graphToolsBar) { this.editorPart = editorPart; this.graph = editorPart.getGraph(); this.selectionHandler = editorPart.getSelectionHandler(); this.behaviorManager = editorPart.getBehaviorManager(); this.graphToolsBar = graphToolsBar; } /** * Selects all graph element. * */ public void selectAllGraphElements() { ArrayList<Object> selectables = new ArrayList<Object>(); selectables.addAll(graph.getAllNodes()); selectables.addAll(graph.getAllEdges()); if (selectables.size() == 0) return; selectionHandler.clearSelection(); for (Object toSelect : selectables) { if (toSelect instanceof INode) { selectionHandler.addSelectedElement((INode) toSelect); behaviorManager.fireOnNodeSelected((INode) toSelect); } if (toSelect instanceof IEdge) { selectionHandler.addSelectedElement((IEdge) toSelect); behaviorManager.fireOnEdgeSelected((IEdge) toSelect); } } editorPart.getSwingComponent().invalidate(); graphToolsBar.reset(); } private IEditorPart editorPart; private IGraph graph; private IEditorPartSelectionHandler selectionHandler; private IEditorPartBehaviorManager behaviorManager; private IGraphToolsBar graphToolsBar; }