+++ /dev/null
-package fr.orsay.lri.varna.applications.templateEditor;
-
-import java.awt.geom.Point2D;
-
-import javax.swing.undo.AbstractUndoableEdit;
-import javax.swing.undo.CannotRedoException;
-import javax.swing.undo.CannotUndoException;
-import javax.swing.undo.UndoableEdit;
-
-public class TemplateEdits {
- public static final double MAX_DISTANCE= 15.0;
-
- public static class ElementAddTemplateEdit extends AbstractUndoableEdit
- {
- private GraphicalTemplateElement _h;
- private TemplatePanel _p;
- public ElementAddTemplateEdit(GraphicalTemplateElement h,TemplatePanel p)
- {
- _h = h;
- _p = p;
- }
- public void undo() throws CannotUndoException {
- _p.removeElement(_h);
- _p.repaint();
- }
- public void redo() throws CannotRedoException {
- _p.addElement(_h);
- _p.repaint();
- }
- public boolean canUndo() { return true; }
- public boolean canRedo() { return true; }
- public String getPresentationName() { return "Graphical element added"; }
- };
- public static class ElementRemoveTemplateEdit extends AbstractUndoableEdit
- {
- private GraphicalTemplateElement _h;
- private TemplatePanel _p;
- public ElementRemoveTemplateEdit(GraphicalTemplateElement h,TemplatePanel p)
- {
- _h = h;
- _p = p;
- }
- public void undo() throws CannotUndoException {
- _p.addElement(_h);
- _p.repaint();
- }
- public void redo() throws CannotRedoException {
- _p.removeElement(_h);
- _p.repaint();
- }
- public boolean canUndo() { return true; }
- public boolean canRedo() { return true; }
- public String getPresentationName() { return "Graphical element removed"; }
- };
- public static class ElementAttachTemplateEdit extends AbstractUndoableEdit
- {
- Connection _c;
- private TemplatePanel _p;
- public ElementAttachTemplateEdit(Connection c,
- TemplatePanel p)
- {
- _c = c;
- _p = p;
- }
- public void undo() throws CannotUndoException {
- _p.removeConnection(_c);
- _p.repaint();
- }
- public void redo() throws CannotRedoException {
- _c = _p.addConnection(_c._h1,_c._edge1,_c._h2,_c._edge2);
- _p.repaint();
- }
- public boolean canUndo() { return true; }
- public boolean canRedo() { return true; }
- public String getPresentationName() { return "Graphical elements attached"; }
- };
- public static class ElementDetachTemplateEdit extends AbstractUndoableEdit
- {
- Connection _c;
- private TemplatePanel _p;
- public ElementDetachTemplateEdit(Connection c,
- TemplatePanel p)
- {
- _c = c;
- _p = p;
- }
- public void undo() throws CannotUndoException {
- _c = _p.addConnection(_c._h1,_c._edge1,_c._h2,_c._edge2);
- _p.repaint();
- }
- public void redo() throws CannotRedoException {
- _p.removeConnection(_c);
- _p.repaint();
- }
- public boolean canUndo() { return true; }
- public boolean canRedo() { return true; }
- public String getPresentationName() { return "Graphical elements detached"; }
- };
-
- public static class ElementEdgeMoveTemplateEdit extends AbstractUndoableEdit
- {
- private GraphicalTemplateElement _ur;
- GraphicalTemplateElement.RelativePosition _edge;
- private double _ox;
- private double _oy;
- private double _nx;
- private double _ny;
- private TemplatePanel _p;
- public ElementEdgeMoveTemplateEdit(GraphicalTemplateElement ur, GraphicalTemplateElement.RelativePosition edge, double nx, double ny, TemplatePanel p)
- {
- _ur = ur;
- _edge = edge;
- _ox = ur.getEdgePosition(edge).x;
- _oy = ur.getEdgePosition(edge).y;
- _nx = nx;
- _ny = ny;
- _p = p;
- }
- public void undo() throws CannotUndoException {
- _ur.setEdgePosition(_edge,new Point2D.Double(_ox,_oy));
- _p.repaint();
- }
- public void redo() throws CannotRedoException {
- _ur.setEdgePosition(_edge,new Point2D.Double(_nx,_ny));
- _p.repaint();
- }
- public boolean canUndo() { return true; }
- public boolean canRedo() { return true; }
- public String getPresentationName() { return "Edge moved "+_edge; }
- public boolean addEdit(UndoableEdit anEdit)
- {
- if (anEdit instanceof ElementEdgeMoveTemplateEdit)
- {
- ElementEdgeMoveTemplateEdit e = (ElementEdgeMoveTemplateEdit) anEdit;
- if (e._edge==_edge)
- {
- Point2D.Double po1 = new Point2D.Double(_ox,_oy);
- Point2D.Double pn1 = new Point2D.Double(_nx,_ny);
- Point2D.Double po2 = new Point2D.Double(e._ox,e._oy);
- Point2D.Double pn2 = new Point2D.Double(e._nx,e._ny);
- if ((_ur==e._ur)&&(pn1.equals(po2))&&(po1.distance(pn2)<MAX_DISTANCE))
- {
- _nx = e._nx;
- _ny = e._ny;
- return true;
- }
- }
- }
- return false;
- }
- };
- public static class HelixFlipTemplateEdit extends AbstractUndoableEdit
- {
- private Helix _h;
- private TemplatePanel _p;
- public HelixFlipTemplateEdit(Helix h, TemplatePanel p)
- {
- _h = h;
- _p = p;
- }
- public void undo() throws CannotUndoException {
- _h.toggleFlipped();
- _p.repaint();
- }
- public void redo() throws CannotRedoException {
- _h.toggleFlipped();
- _p.repaint();
- }
- public boolean canUndo() { return true; }
- public boolean canRedo() { return true; }
- public String getPresentationName() { return "Helix flipped "; }
- };
-
-}