1 31 32 package org.antlr.xjlib.appkit.gview.event; 33 34 import org.antlr.xjlib.appkit.gview.object.GElement; 35 36 import java.awt.*; 37 import java.awt.event.MouseEvent ; 38 import java.util.*; 39 import java.util.List ; 40 41 public class GEventManager { 42 43 private List <GAbstractEvent> eventObjects = new ArrayList<GAbstractEvent>(); 44 private Set exclusiveValueSet = new HashSet(); 45 private GEventDelegate eventDelegate = null; 46 47 public static final int EVENT_DRAW = 1; 48 public static final int EVENT_MOUSE_PRESSED = 2; 49 public static final int EVENT_MOUSE_RELEASED = 3; 50 public static final int EVENT_MOUSE_DRAGGED = 4; 51 public static final int EVENT_MOUSE_MOVED = 5; 52 53 public static final Integer EXCLUSIVE_DRAG_VALUE = new Integer (99); 54 public static final Integer EXCLUSIVE_CREATE_LINK_VALUE = new Integer (100); 55 56 public GEventManager(GEventDelegate delegate) { 57 this.eventDelegate = delegate; 58 } 59 60 public void add(GAbstractEvent event) { 61 event.setManager(this); 62 event.setDelegate(eventDelegate); 63 eventObjects.add(event); 64 } 65 66 public boolean canFocusOnElement(GElement element) { 67 Iterator<GAbstractEvent> iterator = eventObjects.iterator(); 68 while(iterator.hasNext()) { 69 GAbstractEvent eventObject = iterator.next(); 70 if(!eventObject.shouldFocusOnElement(element)) 71 return false; 72 } 73 return true; 74 } 75 76 public void addExclusiveValue(Object value) { 77 exclusiveValueSet.add(value); 78 } 79 80 public void removeExclusiveValue(Object value) { 81 exclusiveValueSet.remove(value); 82 } 83 84 public boolean hasExclusiveValue(Object value) { 85 return exclusiveValueSet.contains(value); 86 } 87 88 public void performEventObjects(int action, Object event, Point mousePosition, Object param) { 89 Iterator<GAbstractEvent> iterator = eventObjects.iterator(); 90 while(iterator.hasNext()) { 91 GAbstractEvent eventObject = iterator.next(); 92 switch(action) { 93 case EVENT_DRAW: 94 eventObject.draw((Graphics)param); 95 break; 96 case EVENT_MOUSE_PRESSED: 97 eventObject.mousePressed((MouseEvent )event, mousePosition); 98 break; 99 case EVENT_MOUSE_RELEASED: 100 eventObject.mouseReleased((MouseEvent )event, mousePosition); 101 break; 102 case EVENT_MOUSE_DRAGGED: 103 eventObject.mouseDragged((MouseEvent )event, mousePosition); 104 break; 105 case EVENT_MOUSE_MOVED: 106 eventObject.mouseMoved((MouseEvent )event, mousePosition); 107 break; 108 } 109 } 110 } 111 112 113 } 114 | Popular Tags |