KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > foxtrot > test > EventFilterableTest


1 /**
2  * Copyright (c) 2002-2005, Simone Bordet
3  * All rights reserved.
4  *
5  * This software is distributable under the BSD license.
6  * See the terms of the BSD license in the documentation provided with this software.
7  */

8
9 package foxtrot.test;
10
11 import java.awt.AWTEvent JavaDoc;
12
13 import javax.swing.SwingUtilities JavaDoc;
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 /**
22  * @version $Revision: 1.5 $
23  */

24 public class EventFilterableTest extends FoxtrotTestCase
25 {
26    public EventFilterableTest(String JavaDoc s)
27    {
28       super(s);
29    }
30
31    public void testEventNotFiltered() throws Exception JavaDoc
32    {
33        invokeTest(Worker.getWorkerThread(), new Runnable JavaDoc()
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 JavaDoc()
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 JavaDoc 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 JavaDoc run()
69                    {
70                       sleep(5000);
71                       return null;
72                    }
73                 });
74              }
75              finally
76              {
77                 if (filterable != null) filterable.setEventFilter(oldFilter);
78              }
79
80              // Ensure that we've passed from the filter and dispatched the event
81
if (check.get() != Boolean.TRUE) fail();
82
83              check.set(null);
84
85              // Be sure that after everything is again ok
86
Worker.post(new Job()
87              {
88                 public Object JavaDoc run()
89                 {
90                    sleep(5000);
91                    return null;
92                 }
93              });
94
95              // Should not have been called again
96
if (check.get() != null) fail();
97           }
98        }, null);
99    }
100
101    public void testEventFiltered() throws Exception JavaDoc
102    {
103        invokeTest(Worker.getWorkerThread(), new Runnable JavaDoc()
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 JavaDoc()
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 JavaDoc 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 JavaDoc run()
140                    {
141                       sleep(5000);
142                       return null;
143                    }
144                 });
145              }
146              finally
147              {
148                 if (filterable != null) filterable.setEventFilter(oldFilter);
149              }
150
151              // Ensure that we've passed from the filter and not dispatched the event
152
if (check.get() != Boolean.FALSE) fail();
153
154              check.set(null);
155
156              // Be sure that after everything is again ok
157
Worker.post(new Job()
158              {
159                 public Object JavaDoc run()
160                 {
161                    sleep(5000);
162                    return null;
163                 }
164              });
165
166              // Should not have been called again
167
if (check.get() != null) fail();
168           }
169        }, null);
170    }
171 }
172
Popular Tags