1 31 32 package org.antlr.xjlib.appkit.gview.event; 33 34 import org.antlr.xjlib.appkit.gview.GView; 35 import org.antlr.xjlib.appkit.gview.base.Vector2D; 36 37 import java.awt.*; 38 import java.awt.event.InputEvent ; 39 import java.awt.event.MouseEvent ; 40 41 public class GEventDragRootElement extends GAbstractEvent { 42 43 private boolean dragging = false; 44 45 public GEventDragRootElement(GView view) { 46 super(view); 47 } 48 49 public void mousePressed(MouseEvent e, Point mousePosition) { 50 if(hasExclusiveValue(GEventManager.EXCLUSIVE_DRAG_VALUE)) 51 return; 52 53 if(e.getClickCount() != 1) 54 return; 55 56 int mask = InputEvent.SHIFT_DOWN_MASK + InputEvent.BUTTON1_DOWN_MASK; 57 if((e.getModifiersEx() & mask) == mask && delegate.eventQueryElementAtPoint(mousePosition) == null) { 58 addExclusiveValue(GEventManager.EXCLUSIVE_DRAG_VALUE); 59 delegate.eventQueryRootElement().beginDrag(); 60 dragging = true; 61 } 62 } 63 64 public void mouseReleased(MouseEvent e, Point mousePosition) { 65 removeExclusiveValue(GEventManager.EXCLUSIVE_DRAG_VALUE); 66 delegate.eventShouldRepaint(); 67 dragging = false; 68 } 69 70 public void mouseDragged(MouseEvent e, Point mousePosition) { 71 if(dragging) { 72 delegate.eventQueryRootElement().drag(Vector2D.vector(mousePosition)); 73 delegate.eventChangeDone(); 74 delegate.eventShouldRepaint(); 75 } 76 } 77 } 78 | Popular Tags |