KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > apache > slide > event > TransientEventCollector


1 /*
2  * $Header: /home/cvs/jakarta-slide/src/share/org/apache/slide/event/TransientEventCollector.java,v 1.3 2004/07/28 09:36:18 ib Exp $
3  * $Revision: 1.3 $
4  * $Date: 2004/07/28 09:36:18 $
5  *
6  * ====================================================================
7  *
8  * Copyright 1999-2004 The Apache Software Foundation
9  *
10  * Licensed under the Apache License, Version 2.0 (the "License");
11  * you may not use this file except in compliance with the License.
12  * You may obtain a copy of the License at
13  *
14  * http://www.apache.org/licenses/LICENSE-2.0
15  *
16  * Unless required by applicable law or agreed to in writing, software
17  * distributed under the License is distributed on an "AS IS" BASIS,
18  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
19  * See the License for the specific language governing permissions and
20  * limitations under the License.
21  *
22  */

23
24 package org.apache.slide.event;
25
26 import java.util.EventObject JavaDoc;
27
28 /**
29  * Transient event collector class
30  *
31  * @version $Revision: 1.3 $
32  */

33 public class TransientEventCollector implements GlobalListener {
34     private static ThreadLocal JavaDoc eventCollection = new ThreadLocal JavaDoc();
35
36     public void vetoableEventFired(VetoableEventMethod method, EventObject JavaDoc event) throws VetoException {
37         if ( eventCollection.get() != null ) {
38             ((EventCollection)eventCollection.get()).addEvent(method, event);
39         }
40     }
41
42     public void eventFired(EventMethod method, EventObject JavaDoc event) {
43         if ( method == TransactionEvent.BEGIN ) {
44             eventCollection.set(new EventCollection(this));
45         } else if ( method == TransactionEvent.COMMITED ) {
46             final EventCollection collection = (EventCollection)eventCollection.get();
47             new Thread JavaDoc(new Runnable JavaDoc() {
48                 public void run() {
49                     if ( EventCollection.COLLECTED.isEnabled() ) EventDispatcher.getInstance().fireEvent(EventCollection.COLLECTED, collection);
50                 }
51             }).start();
52         } else if ( eventCollection.get() != null ) {
53             ((EventCollection)eventCollection.get()).addEvent(method, event);
54         }
55     }
56 }
Popular Tags