package com.horstmann.violet.workspace.editorpart; import java.awt.event.MouseEvent; import java.awt.event.MouseWheelEvent; import java.awt.geom.Point2D; import java.beans.PropertyChangeEvent; import java.util.List; import com.horstmann.violet.product.diagram.abstracts.IColorable; import com.horstmann.violet.product.diagram.abstracts.edge.IEdge; import com.horstmann.violet.product.diagram.abstracts.node.INode; import com.horstmann.violet.workspace.editorpart.behavior.IEditorPartBehavior; public interface IEditorPartBehaviorManager { public abstract void addBehavior(IEditorPartBehavior newBehavior); public abstract List<IEditorPartBehavior> getBehaviors(); public abstract <T extends IEditorPartBehavior> List<T> getBehaviors(Class<T> type); public abstract void fireOnMousePressed(MouseEvent event); public abstract void fireOnMouseDragged(MouseEvent event); public abstract void fireOnMouseReleased(MouseEvent event); public abstract void fireOnMouseClicked(MouseEvent event); public abstract void fireOnMouseMoved(MouseEvent event); public abstract void fireOnMouseWheelMoved(MouseWheelEvent event); public abstract void fireBeforeEditingNode(INode node); public abstract void fireWhileEditingNode(INode node, PropertyChangeEvent event); public abstract void fireAfterEditingNode(INode node); public abstract void fireBeforeEditingEdge(IEdge edge); public abstract void fireWhileEditingEdge(IEdge edge, PropertyChangeEvent event); public abstract void fireAfterEditingEdge(IEdge edge); public abstract void fireBeforeRemovingSelectedElements(); public abstract void fireAfterRemovingSelectedElements(); public abstract void fireBeforeAddingNodeAtPoint(INode node, Point2D location); public abstract void fireAfterAddingNodeAtPoint(INode node, Point2D location); public abstract void fireBeforeAddingEdgeAtPoints(IEdge edge, Point2D startPoint, Point2D endPoint); public abstract void fireAfterAddingEdgeAtPoints(IEdge edge, Point2D startPoint, Point2D endPoint); public abstract void fireOnNodeSelected(INode node); public abstract void fireOnEdgeSelected(IEdge edge); public abstract void fireBeforeChangingTransitionPointsOnEdge(IEdge edge); public abstract void fireAfterChangingTransitionPointsOnEdge(IEdge edge); public abstract void fireBeforeChangingColorOnElement(IColorable element); public abstract void fireAfterChangingColorOnElement(IColorable element); }