package com.horstmann.violet.workspace.editorpart.behavior;
import java.awt.Graphics2D;
import java.awt.event.MouseEvent;
import java.awt.event.MouseWheelEvent;
import java.awt.geom.Point2D;
import java.beans.PropertyChangeEvent;
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.sidebar.graphtools.GraphTool;
public interface IEditorPartBehavior
{
public void onMousePressed(MouseEvent event);
public void onMouseDragged(MouseEvent event);
public void onMouseReleased(MouseEvent event);
public void onMouseClicked(MouseEvent event);
public void onMouseMoved(MouseEvent event);
public void onMouseWheelMoved(MouseWheelEvent event);
public void onToolSelected(GraphTool selectedTool);
public void onNodeSelected(INode node);
public void onEdgeSelected(IEdge edge);
public void beforeEditingNode(INode node);
public void whileEditingNode(INode node, PropertyChangeEvent event);
public void afterEditingNode(INode node);
public void beforeEditingEdge(IEdge edge);
public void whileEditingEdge(IEdge edge, PropertyChangeEvent event);
public void afterEditingEdge(IEdge edge);
public void beforeRemovingSelectedElements();
public void afterRemovingSelectedElements();
public void beforeAddingNodeAtPoint(INode node, Point2D location);
public void afterAddingNodeAtPoint(INode node, Point2D location);
public void beforeAddingEdgeAtPoints(IEdge edge, Point2D startPoint, Point2D endPoint);
public void afterAddingEdgeAtPoints(IEdge edge, Point2D startPoint, Point2D endPoint);
public void beforeChangingTransitionPointsOnEdge(IEdge edge);
public void afterChangingTransitionPointsOnEdge(IEdge edge);
public void beforeChangingColorOnElement(IColorable element);
public void afterChangingColorOnElement(IColorable element);
public void onPaint(Graphics2D g2);
}