📄 dispatcher.java
字号:
/*
* Created on 2003-12-22
*
* To change the template for this generated file go to
* Window - Preferences - Java - Code Generation - Code and Comments
*/
package com.product.util.event;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
/**
* @author Renzhichao
*
*
*/
public class Dispatcher implements Runnable{
private boolean flag = true ;
private String canHandlerEventClass = "" ;
public Dispatcher(){
}
Collection handlers = new ArrayList() ;
public synchronized void stop(){
flag=false ;
}
/* (non-Javadoc)
* @see java.lang.Runnable#run()
*/
public void run() {
while(flag){
if (canHandlerEventClass!=null&&canHandlerEventClass.length()>0){
dispatchEvent(getEvent(canHandlerEventClass)) ;
}
else {
dispatchEvent(getEvent()) ;
}
}
}
/**
* 当为true的时候表示如果不能全部处理就扔回事件池中。
* 当为false的时候表示如果不能处理也扔掉
*/
public boolean willTurnBack=false ;//是否扔回事件池中?
private Event getEvent(){
return EventQueue.getInstance().getEvent() ;
}
private Event getEvent(String evtClass){
return EventQueue.getInstance().getEvent(evtClass) ;
}
private void dispatchEvent(Event evt){
if (null==evt) return ;
boolean flag = true ;
try {
for (Iterator iter = handlers.iterator(); iter.hasNext(); ) {
EventHandler element = (EventHandler) iter.next();
flag = flag && element.handleEvent(evt) ;
}
if (flag){
EventSerialManager.deleteEvent(evt) ;
}
else if (willTurnBack){
EventQueue.getInstance().putEvent(evt) ;
}
else {
EventSerialManager.deleteEvent(evt) ;
}
} catch (Exception e) {
e.printStackTrace();
EventQueue.getInstance().putEvent(evt) ;
}
}
public static void main(String[] args){
}
/**
* @param o
* @return
*/
public boolean add(EventHandler handler) {
return handlers.add(handler);
}
/**
* @return Returns the canHandlerEventClass.
*/
public String getCanHandlerEventClass() {
return this.canHandlerEventClass;
}
/**
* @param canHandlerEventClass The canHandlerEventClass to set.
*/
public void setCanHandlerEventClass(String canHandlerEventClass) {
this.canHandlerEventClass = canHandlerEventClass;
}
/**
* @return Returns the willTurnBack.
*/
public boolean isWillTurnBack() {
return this.willTurnBack;
}
/**
* @param willTurnBack The willTurnBack to set.
*/
public void setWillTurnBack(boolean willTurnBack) {
this.willTurnBack = willTurnBack;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -