2009-04-10 16 views
9

私はGXTのイベントや火事に関する文書を見つけることができません。GXTからどのようなイベントが発生するのかを教えてください。

APIドキュメントには、(Eventsに)発生するすべてのイベントのリストがあります。そして、あなたが捕まえるイベントをどのように扱うかを記述します。しかし、私は反対側に興味があり、イベントは特定の行動を取ると解雇されます。

さまざまなコンポーネントに対していくつかのリスナーを設定することも、addListenerに特定のイベントコードを使用して個々のイベントをキャッチすることもできます。それは不安定で、私が試してみたいことを推測するために試行錯誤しているようです。

発砲しているすべてのイベントをログに記録する方法はありますか?あるいは、デバッガでそれらを見ることができるようにそれらのすべてをキャッチしますか?

または情報が不足しているドキュメントがありますか? 「ウィジェットをクリックすると、ButtonEventが発射されます。Events.xがホバリングで発砲されます。クリックするとEvents.yが表示されます。

答えて

7

私はブルートフォースを使用して終了:イベントタイプと名前の地図作成されたが、その後、コンポーネントが受け取ることができるとイベントの種類ごとにリスナーを添付します。その後、リスナーの中にブレークポイントを設定するだけで、何が起こったときにどのようなイベントが受信されたかがわかりました。

捨てられたコードではないなら、私はそれをユーティリティクラスにクリーンアップし、匿名のListenerクラスなどを使用しなかったでしょう。

final Map<EventType, String> eventTypeNames = new HashMap<EventType, String>(); 
    eventTypeNames.put(Events.BeforeExpand, "BeforeExpand"); 
    eventTypeNames.put(Events.Expand, "Expand"); 
    ... 
    eventTypeNames.put(Events.BeforeStateSave, "BeforeStateSave"); 
    eventTypeNames.put(Events.StateSave, "StateSave"); 

    for (EventType eventType : Arrays.asList(
      Events.BeforeExpand, 
      Events.Expand, 
      ... 
      Events.BeforeStateSave, 
      Events.StateSave 
    )) { 
     this.addListener(eventType, new Listener<BaseEvent>() { 
      public void handleEvent(final BaseEvent be) { 
       String type = eventTypeNames.get(be.getType()); 
       String ev = be.toString(); 
      } 
     }); 
    } 
+0

もう1つの解決策が見つかりました:http://loianegroner.com/2009/11/ext-js-which-events-are-fired-by-a-component/ – CoverosGene

5

さまざまなウィジェットのAPIドキュメントは、どのイベントが発生するのか、どのイベントが発生するのかを記述します。たとえば、ユーザーがTabPanelの新しいTabItemを選択するたびに行動を起こしたいとします。

TabPanelのAPIドキュメント(http://extjs.com/deploy/gxtdocs/com/extjs/gxt/ui/client/widget/TabPanel.html)にはいくつかのイベントが表示されます。我々はSelectに興味を持っている:

選択:TabPanelEvent(コンテナ、アイテム)のアイテムが選択されている

火災後。

  • コンテナ:この
  • 項目:だから

を選択されたアイテム、イベントキャプチャする(あなたが理解して表示されますが、私は完全ために含まれます)プロセスは Events.Selectイベントのために特別鑑賞、 TabPanelにリスナーを追加することです:

tp.addListener(Events.Select, new Listener<TabPanelEvent>(){ 
    public void handleEvent(TabPanelEvent be) 
    { 
    MessageBox.alert("Test", be.item.getText(), null); 
    } 
}); 

多くのイベントにはdoitというプロパティがあり、イベントをキャンセルするにはfalseに設定することができます。

完全なコード・リスト:

package edu.fresno.client; 

import com.extjs.gxt.ui.client.Events; 
import com.extjs.gxt.ui.client.event.Listener; 
import com.extjs.gxt.ui.client.event.TabPanelEvent; 
import com.extjs.gxt.ui.client.widget.ContentPanel; 
import com.extjs.gxt.ui.client.widget.MessageBox; 
import com.extjs.gxt.ui.client.widget.TabItem; 
import com.extjs.gxt.ui.client.widget.TabPanel; 
import com.extjs.gxt.ui.client.widget.layout.FitLayout; 
import com.google.gwt.core.client.EntryPoint; 
import com.google.gwt.user.client.ui.RootPanel; 

public class GWTSandbox implements EntryPoint { 
    public void onModuleLoad() { 

     TabPanel tp = new TabPanel(); 

     TabItem ti1 = new TabItem("TabItem1"); 
     TabItem ti2 = new TabItem("TabItem2"); 

     tp.add(ti1); 
     tp.add(ti2); 

     tp.addListener(Events.Select, new Listener<TabPanelEvent>(){ 
      public void handleEvent(TabPanelEvent be) 
      { 
       MessageBox.alert("Test", be.item.getText(), null); 
      } 
     }); 


     ContentPanel panel = new ContentPanel(); 
     panel.setLayout(new FitLayout()); 
     panel.add(tp); 
     RootPanel.get().add(panel); 

    } 
} 
+0

これは私の質問の反対側です。私は解雇されたイベントを処理しようとしているわけではありません。 – CoverosGene

3

あなたは、コンストラクタのために、次のコードを追加することができます。

ContentPanel panel =new ContentPanel(){ 
     public boolean fireEvent(EventType type) { 
      System.out.println(type.getEventCode()); 
      return super.fireEvent(type); 
     } 
     public boolean fireEvent(EventType eventType, BaseEvent be) { 
      System.out.println(eventType.getEventCode()); 
      return super.fireEvent(eventType, be); 
     } 
     public boolean fireEvent(EventType type, ComponentEvent ce) { 
      System.out.println(type.getEventCode()); 
      return super.fireEvent(type, ce); 
     } 
    }; 

が、それは、このコンポーネントが受信できるすべてのイベントを表示します。

9

誰かがこれを役に立つと思うかもしれませんが、私はどんな種類の出来事が起きたかを見るためのユーティリティークラスを作成しました。その考え方は、受け入れられた答えで提案されました。

import java.util.HashMap; 
import java.util.Map; 

import com.extjs.gxt.ui.client.event.BaseEvent; 
import com.extjs.gxt.ui.client.event.EventType; 
import com.extjs.gxt.ui.client.event.Events; 
import com.extjs.gxt.ui.client.event.Listener; 
import com.extjs.gxt.ui.client.widget.Component; 

/** 
* Class for debugging purposes. Sometimes it is hard to tell what type of event 
* is invoked and when. During debug process you can just do: 
* 
* EventUtils.attachDebugListeners(c); 
* EventUtils.attachDebugListeners(c, "NAME"); 
* 
* You'll then get information about events as they are invoked. 
* 
* List of events copied from {@link Events} class. 
* 
*/ 
public class EventUtils { 

    public static void attachDebugListeners(final Component c) { 
     attachDebugListeners(c, null); 
    } 

    public static void attachDebugListeners(final Component c, final String msg) { 
     for (final EventType type : eventTypeNames.keySet()) { 
      c.addListener(type, new Listener<BaseEvent>() { 
       @Override 
       public void handleEvent(BaseEvent be) { 
        String typeName = eventTypeNames.get(type); 
        if (msg != null) 
         System.out.print(msg + " -> "); 
        System.out.println(typeName); 
       } 
      }); 
     } 
    } 

    final static Map<EventType, String> eventTypeNames = new HashMap<EventType, String>(); 
    static { 
     eventTypeNames.put(Events.Activate, "Events.Activate"); 
     eventTypeNames.put(Events.Add, "Events.Add"); 
     eventTypeNames.put(Events.Adopt, "Events.Adopt"); 
     eventTypeNames.put(Events.AfterEdit, "Events.AfterEdit"); 
     eventTypeNames.put(Events.AfterLayout, "Events.AfterLayout"); 
     eventTypeNames.put(Events.ArrowClick, "Events.ArrowClick"); 
     eventTypeNames.put(Events.Attach, "Events.Attach"); 
     eventTypeNames.put(Events.AutoHide, "Events.AutoHide"); 
     eventTypeNames.put(Events.BeforeAdd, "Events.BeforeAdd"); 
     eventTypeNames.put(Events.BeforeAdopt, "Events.BeforeAdopt"); 
     eventTypeNames.put(Events.BeforeBind, "Events.BeforeBind"); 
     eventTypeNames.put(Events.BeforeCancelEdit, "Events.BeforeCancelEdit"); 
     eventTypeNames.put(Events.BeforeChange, "Events.BeforeChange"); 
     eventTypeNames 
       .put(Events.BeforeCheckChange, "Events.BeforeCheckChange"); 
     eventTypeNames.put(Events.BeforeClose, "Events.BeforeClose"); 
     eventTypeNames.put(Events.BeforeCollapse, "Events.BeforeCollapse"); 
     eventTypeNames.put(Events.BeforeComplete, "Events.BeforeComplete"); 
     eventTypeNames.put(Events.BeforeEdit, "Events.BeforeEdit"); 
     eventTypeNames.put(Events.BeforeExpand, "Events.BeforeExpand"); 
     eventTypeNames.put(Events.BeforeHide, "Events.BeforeHide"); 
     eventTypeNames.put(Events.BeforeLayout, "Events.BeforeLayout"); 
     eventTypeNames.put(Events.BeforeOpen, "Events.BeforeOpen"); 
     eventTypeNames.put(Events.BeforeOrphan, "Events.BeforeOrphan"); 
     eventTypeNames.put(Events.BeforeQuery, "Events.BeforeQuery"); 
     eventTypeNames.put(Events.BeforeRemove, "Events.BeforeRemove"); 
     eventTypeNames.put(Events.BeforeRender, "Events.BeforeRender"); 
     eventTypeNames.put(Events.BeforeSelect, "Events.BeforeSelect"); 
     eventTypeNames.put(Events.BeforeShow, "Events.BeforeShow"); 
     eventTypeNames.put(Events.BeforeStartEdit, "Events.BeforeStartEdit"); 
     eventTypeNames.put(Events.BeforeStateRestore, 
       "Events.BeforeStateRestore"); 
     eventTypeNames.put(Events.BeforeStateSave, "Events.BeforeStateSave"); 
     eventTypeNames.put(Events.BeforeSubmit, "Events.BeforeSubmit"); 
     eventTypeNames.put(Events.Bind, "Events.Bind"); 
     eventTypeNames.put(Events.Blur, "Events.Blur"); 
     eventTypeNames.put(Events.BodyScroll, "Events.BodyScroll"); 
     eventTypeNames.put(Events.BrowserEvent, "Events.BrowserEvent"); 
     eventTypeNames.put(Events.CancelEdit, "Events.CancelEdit"); 
     eventTypeNames.put(Events.CellClick, "Events.CellClick"); 
     eventTypeNames.put(Events.CellDoubleClick, "Events.CellDoubleClick"); 
     eventTypeNames.put(Events.CellMouseDown, "Events.CellMouseDown"); 
     eventTypeNames.put(Events.CellMouseUp, "Events.CellMouseUp"); 
     eventTypeNames.put(Events.Change, "Events.Change"); 
     eventTypeNames.put(Events.CheckChange, "Events.CheckChange"); 
     eventTypeNames.put(Events.CheckChanged, "Events.CheckChanged"); 
     eventTypeNames.put(Events.Clear, "Events.Clear"); 
     eventTypeNames.put(Events.Close, "Events.Close"); 
     eventTypeNames.put(Events.Collapse, "Events.Collapse"); 
     eventTypeNames.put(Events.ColumnClick, "Events.ColumnClick"); 
     eventTypeNames.put(Events.ColumnResize, "Events.ColumnResize"); 
     eventTypeNames.put(Events.Complete, "Events.Complete"); 
     eventTypeNames.put(Events.ContextMenu, "Events.ContextMenu"); 
     eventTypeNames.put(Events.Deactivate, "Events.Deactivate"); 
     eventTypeNames.put(Events.Detach, "Events.Detach"); 
     eventTypeNames.put(Events.Disable, "Events.Disable"); 
     eventTypeNames.put(Events.DoubleClick, "Events.DoubleClick"); 
     eventTypeNames.put(Events.DragCancel, "Events.DragCancel"); 
     eventTypeNames.put(Events.DragEnd, "Events.DragEnd"); 
     eventTypeNames.put(Events.DragEnter, "Events.DragEnter"); 
     eventTypeNames.put(Events.DragFail, "Events.DragFail"); 
     eventTypeNames.put(Events.DragLeave, "Events.DragLeave"); 
     eventTypeNames.put(Events.DragMove, "Events.DragMove"); 
     eventTypeNames.put(Events.DragStart, "Events.DragStart"); 
     eventTypeNames.put(Events.Drop, "Events.Drop"); 
     eventTypeNames.put(Events.EffectCancel, "Events.EffectCancel"); 
     eventTypeNames.put(Events.EffectComplete, "Events.EffectComplete"); 
     eventTypeNames.put(Events.EffectStart, "Events.EffectStart"); 
     eventTypeNames.put(Events.Enable, "Events.Enable"); 
     eventTypeNames.put(Events.Exception, "Events.Exception"); 
     eventTypeNames.put(Events.Expand, "Events.Expand"); 
     eventTypeNames.put(Events.Focus, "Events.Focus"); 
     eventTypeNames.put(Events.HeaderChange, "Events.HeaderChange"); 
     eventTypeNames.put(Events.HeaderClick, "Events.HeaderClick"); 
     eventTypeNames 
       .put(Events.HeaderContextMenu, "Events.HeaderContextMenu"); 
     eventTypeNames 
       .put(Events.HeaderDoubleClick, "Events.HeaderDoubleClick"); 
     eventTypeNames.put(Events.HeaderMouseDown, "Events.HeaderMouseDown"); 
     eventTypeNames.put(Events.HiddenChange, "Events.HiddenChange"); 
     eventTypeNames.put(Events.Hide, "Events.Hide"); 
     eventTypeNames.put(Events.Invalid, "Events.Invalid"); 
     eventTypeNames.put(Events.KeyDown, "Events.KeyDown"); 
     eventTypeNames.put(Events.KeyPress, "Events.KeyPress"); 
     eventTypeNames.put(Events.KeyUp, "Events.KeyUp"); 
     eventTypeNames.put(Events.LiveGridViewUpdate, 
       "Events.LiveGridViewUpdate"); 
     eventTypeNames.put(Events.Maximize, "Events.Maximize"); 
     eventTypeNames.put(Events.MenuHide, "Events.MenuHide"); 
     eventTypeNames.put(Events.MenuShow, "Events.MenuShow"); 
     eventTypeNames.put(Events.Minimize, "Events.Minimize"); 
     eventTypeNames.put(Events.Move, "Events.Move"); 
     eventTypeNames.put(Events.OnBlur, "Events.OnBlur"); 
     eventTypeNames.put(Events.OnChange, "Events.OnChange"); 
     eventTypeNames.put(Events.OnClick, "Events.OnClick"); 
     eventTypeNames.put(Events.OnContextMenu, "Events.OnContextMenu"); 
     eventTypeNames.put(Events.OnDoubleClick, "Events.OnDoubleClick"); 
     eventTypeNames.put(Events.OnError, "Events.OnError"); 
     eventTypeNames.put(Events.OnFocus, "Events.OnFocus"); 
     eventTypeNames.put(Events.OnKeyDown, "Events.OnKeyDown"); 
     eventTypeNames.put(Events.OnKeyPress, "Events.OnKeyPress"); 
     eventTypeNames.put(Events.OnKeyUp, "Events.OnKeyUp"); 
     eventTypeNames.put(Events.OnLoad, "Events.OnLoad"); 
     eventTypeNames.put(Events.OnLoseCapture, "Events.OnLoseCapture"); 
     eventTypeNames.put(Events.OnMouseDown, "Events.OnMouseDown"); 
     eventTypeNames.put(Events.OnMouseMove, "Events.OnMouseMove"); 
     eventTypeNames.put(Events.OnMouseOut, "Events.OnMouseOut"); 
     eventTypeNames.put(Events.OnMouseOver, "Events.OnMouseOver"); 
     eventTypeNames.put(Events.OnMouseUp, "Events.OnMouseUp"); 
     eventTypeNames.put(Events.OnMouseWheel, "Events.OnMouseWheel"); 
     eventTypeNames.put(Events.OnScroll, "Events.OnScroll"); 
     eventTypeNames.put(Events.Open, "Events.Open"); 
     eventTypeNames.put(Events.Orphan, "Events.Orphan"); 
     eventTypeNames.put(Events.Ready, "Events.Ready"); 
     eventTypeNames.put(Events.Refresh, "Events.Refresh"); 
     eventTypeNames.put(Events.Register, "Events.Register"); 
     eventTypeNames.put(Events.Remove, "Events.Remove"); 
     eventTypeNames.put(Events.Render, "Events.Render"); 
     eventTypeNames.put(Events.Resize, "Events.Resize"); 
     eventTypeNames.put(Events.ResizeEnd, "Events.ResizeEnd"); 
     eventTypeNames.put(Events.ResizeStart, "Events.ResizeStart"); 
     eventTypeNames.put(Events.Restore, "Events.Restore"); 
     eventTypeNames.put(Events.RowClick, "Events.RowClick"); 
     eventTypeNames.put(Events.RowDoubleClick, "Events.RowDoubleClick"); 
     eventTypeNames.put(Events.RowMouseDown, "Events.RowMouseDown"); 
     eventTypeNames.put(Events.RowMouseUp, "Events.RowMouseUp"); 
     eventTypeNames.put(Events.RowUpdated, "Events.RowUpdated"); 
     eventTypeNames.put(Events.Scroll, "Events.Scroll"); 
     eventTypeNames.put(Events.Select, "Events.Select"); 
     eventTypeNames.put(Events.SelectionChange, "Events.SelectionChange"); 
     eventTypeNames.put(Events.Show, "Events.Show"); 
     eventTypeNames.put(Events.SortChange, "Events.SortChange"); 
     eventTypeNames.put(Events.SpecialKey, "Events.SpecialKey"); 
     eventTypeNames.put(Events.StartEdit, "Events.StartEdit"); 
     eventTypeNames.put(Events.StateChange, "Events.StateChange"); 
     eventTypeNames.put(Events.StateRestore, "Events.StateRestore"); 
     eventTypeNames.put(Events.StateSave, "Events.StateSave"); 
     eventTypeNames.put(Events.Submit, "Events.Submit"); 
     eventTypeNames.put(Events.Toggle, "Events.Toggle"); 
     eventTypeNames.put(Events.TriggerClick, "Events.TriggerClick"); 
     eventTypeNames.put(Events.TwinTriggerClick, "Events.TwinTriggerClick"); 
     eventTypeNames.put(Events.UnBind, "Events.UnBind"); 
     eventTypeNames.put(Events.Unregister, "Events.Unregister"); 
     eventTypeNames.put(Events.Update, "Events.Update"); 
     eventTypeNames.put(Events.Valid, "Events.Valid"); 
     eventTypeNames.put(Events.ValidateDrop, "Events.ValidateDrop"); 
     eventTypeNames.put(Events.ValidateEdit, "Events.ValidateEdit"); 
     eventTypeNames.put(Events.ViewReady, "Events.ViewReady"); 
    } 
} 
関連する問題