1 8 9 package foxtrot.test; 10 11 import java.awt.AWTEvent ; 12 13 import javax.swing.SwingUtilities ; 14 15 import foxtrot.EventPump; 16 import foxtrot.Job; 17 import foxtrot.Worker; 18 import foxtrot.pumps.EventFilter; 19 import foxtrot.pumps.EventFilterable; 20 21 24 public class EventFilterableTest extends FoxtrotTestCase 25 { 26 public EventFilterableTest(String s) 27 { 28 super(s); 29 } 30 31 public void testEventNotFiltered() throws Exception 32 { 33 invokeTest(Worker.getWorkerThread(), new Runnable () 34 { 35 public void run() 36 { 37 EventPump pump = Worker.getEventPump(); 38 39 final MutableHolder check = new MutableHolder(null); 40 EventFilterable filterable = null; 41 EventFilter oldFilter = null; 42 try 43 { 44 SwingUtilities.invokeLater(new Runnable () 45 { 46 public void run() 47 { 48 if (check.get() == Boolean.FALSE) check.set(Boolean.TRUE); 49 } 50 }); 51 52 if (pump instanceof EventFilterable) 53 { 54 filterable = (EventFilterable)pump; 55 oldFilter = filterable.getEventFilter(); 56 filterable.setEventFilter(new EventFilter() 57 { 58 public boolean accept(AWTEvent event) 59 { 60 if (check.get() == null) check.set(Boolean.FALSE); 61 return true; 62 } 63 }); 64 } 65 66 Worker.post(new Job() 67 { 68 public Object run() 69 { 70 sleep(5000); 71 return null; 72 } 73 }); 74 } 75 finally 76 { 77 if (filterable != null) filterable.setEventFilter(oldFilter); 78 } 79 80 if (check.get() != Boolean.TRUE) fail(); 82 83 check.set(null); 84 85 Worker.post(new Job() 87 { 88 public Object run() 89 { 90 sleep(5000); 91 return null; 92 } 93 }); 94 95 if (check.get() != null) fail(); 97 } 98 }, null); 99 } 100 101 public void testEventFiltered() throws Exception 102 { 103 invokeTest(Worker.getWorkerThread(), new Runnable () 104 { 105 public void run() 106 { 107 EventPump pump = Worker.getEventPump(); 108 109 final MutableHolder check = new MutableHolder(null); 110 EventFilterable filterable = null; 111 EventFilter oldFilter = null; 112 try 113 { 114 SwingUtilities.invokeLater(new Runnable () 115 { 116 public void run() 117 { 118 if (check.get() == Boolean.FALSE) check.set(Boolean.TRUE); 119 } 120 }); 121 122 if (pump instanceof EventFilterable) 123 { 124 filterable = (EventFilterable)pump; 125 oldFilter = filterable.getEventFilter(); 126 filterable.setEventFilter(new EventFilter() 127 { 128 public boolean accept(AWTEvent event) 129 { 130 boolean result = check.get() != null; 131 check.set(Boolean.FALSE); 132 return result; 133 } 134 }); 135 } 136 137 Worker.post(new Job() 138 { 139 public Object run() 140 { 141 sleep(5000); 142 return null; 143 } 144 }); 145 } 146 finally 147 { 148 if (filterable != null) filterable.setEventFilter(oldFilter); 149 } 150 151 if (check.get() != Boolean.FALSE) fail(); 153 154 check.set(null); 155 156 Worker.post(new Job() 158 { 159 public Object run() 160 { 161 sleep(5000); 162 return null; 163 } 164 }); 165 166 if (check.get() != null) fail(); 168 } 169 }, null); 170 } 171 } 172 | Popular Tags |