1 19 package org.lucane.applications.whiteboard.graph; 20 21 import java.awt.Color ; 22 import java.awt.Graphics ; 23 import java.awt.Point ; 24 import java.awt.event.MouseEvent ; 25 26 27 import org.jgraph.graph.BasicMarqueeHandler; 28 import org.lucane.applications.whiteboard.graph.shapes.ShapeManager; 29 import org.lucane.applications.whiteboard.gui.ShapeToolBar; 30 31 public class MyMarqueeHandler extends BasicMarqueeHandler 32 { 33 private MyGraph graph; 34 private ShapeToolBar toolBar; 35 private ShapeManager shapes; 36 private Point mouseStart = null; 37 private Point mouseCurrent = null; 38 39 public MyMarqueeHandler(MyGraph graph, ShapeToolBar toolBar, ShapeManager shapes) 40 { 41 this.graph = graph; 42 this.toolBar = toolBar; 43 this.shapes = shapes; 44 } 45 46 public void mousePressed(MouseEvent event) 47 { 48 if(shapes.getSelectedShape() == null) 49 { 50 super.mousePressed(event); 51 return; 52 } 53 54 if(!graph.isEditable()) 55 return; 56 57 this.mouseStart = event.getPoint(); 58 } 59 60 public void mouseDragged(MouseEvent event) 61 { 62 if(shapes.getSelectedShape() == null) 63 { 64 super.mouseDragged(event); 65 return; 66 } 67 68 if(!graph.isEditable()) 69 return; 70 71 Graphics g = graph.getGraphics(); 72 Color bg = graph.getBackground(); 73 Color fg = Color.black; 74 g.setColor(fg); 75 g.setXORMode(bg); 76 77 78 if(mouseCurrent != null) 80 this.shapes.paintSelectedShape(g, mouseStart, mouseCurrent); 81 82 mouseCurrent = event.getPoint(); 84 this.shapes.paintSelectedShape(g, mouseStart, mouseCurrent); 85 } 86 87 public void mouseReleased(MouseEvent event) 88 { 89 if(shapes.getSelectedShape() == null) 90 { 91 super.mouseReleased(event); 92 return; 93 } 94 95 if(!graph.isEditable()) 96 return; 97 98 this.shapes.addSelectedShape(graph, mouseStart, event.getPoint()); 99 100 mouseStart = null; 103 mouseCurrent = null; 104 } 105 } | Popular Tags |