2011-11-29 2 views

답변

1
여러 이벤트
public interface MultipleEventsHandler extends EventHandler { 
    void onMyEvent(MyEvent event); 
    void onMyOtherEvent(MyOtherEvent event); 
} 

처리 그런 다음 이벤트 클래스에 당신이

public class MyEvent extends GwtEvent<MultipleEventsHandler> { 
    public static final Type<MultipleEventsHandler> TYPE = new Type<MultipleEventsHandler>(); 

    @Override 
    public Type<MultipleEventsHandler> getAssociatedType() { 
      return TYPE; 
    } 

    @Override 
    protected void dispatch(MultipleEventsHandler handler) { 
      handler.onMyEvent(this); 
    } 
} 

public class MyOtherEvent extends GwtEvent<MultipleEventsHandler> { 
    public static final Type<MultipleEventsHandler> TYPE = new Type<MultipleEventsHandler>(); 

    @Override 
    public Type<MultipleEventsHandler> getAssociatedType() { 
      return TYPE; 
    } 

    @Override 
    protected void dispatch(MultipleEventsHandler handler) { 
      handler.onMyOtherEvent(this); 
    } 
} 

하는 경우라고해야 할 방법을 정의 할 수 있습니다에 대한 자신의 EventHandler 인터페이스를 만들 수 있습니다

당신은 단지 클래스/인터페이스의 수를 줄이고 싶다면 EventHandler을 이벤트 클래스 안에 넣을 수 있습니다.

public class MyEvent extends GwtEvent<MyEvent.Handler> { 

    public interface Handler extends EventHandler { 
     void onMyEvent(SomeEvent event); 
    } 

    public static final Type<MyEvent.Handler> TYPE = new Type<MyEvent.Handler>(); 


    @Override 
    public Type<MyEvent.Handler> getAssociatedType() { 
      return TYPE; 
    } 

    @Override 
    protected void dispatch(MyEvent.Handler handler) { 
      handler.onMyOtherEvent(this); 
    } 
} 
+0

위대한 예를 들어 주셔서 감사합니다. :) –

관련 문제