2009-04-10 13 views
9

मुझे लगता है कि कौन सी घटनाएं आग लगती हैं और जब GXT में होती है तो मुझे कोई दस्तावेज नहीं मिल रहा है।मैं कैसे बता सकता हूं कि जीएफटी से कौन सी घटनाएं आग लगती हैं?

एपीआई डॉक्स सभी घटनाओं है कि (Events में) आग सकता है की सूची है। और यह वर्णन करता है कि आप जो घटनाओं को पकड़ते हैं उन्हें कैसे संभालें। लेकिन मुझे विपरीत पक्ष में दिलचस्पी है, जब मैं एक निश्चित कार्रवाई करता हूं तो कौन सी घटनाएं निकाल दी जाती हैं।

मैं विभिन्न विभिन्न घटकों के लिए कुछ श्रोताओं सेट कर सकते हैं, या मैं एक विशिष्ट घटना कोड के साथ addListener उपयोग कर सकते हैं अलग-अलग घटनाओं को पकड़ने के लिए। यह स्पॉटी है, और ऐसा लगता है कि मैं कैसा पकड़ना चाहता हूं, यह अनुमान लगाने के लिए परीक्षण और त्रुटि का उपयोग कर रहा हूं।

वहाँ सभी घटनाओं है कि सक्रिय हो रहे हैं प्रवेश करने के लिए एक तरीका है? या उन सभी को पकड़ो ताकि मैं उन्हें डीबगर में देख सकूं?

या क्या कुछ दस्तावेज हैं जिनमें मुझे याद आ रही है जिसमें जानकारी है? की तर्ज पर कुछ "जब आप एक विजेट पर क्लिक करें, एक ButtonEvent निकाल दिया जाता है। Events.x मंडराना, Events.y क्लिक पर पर निकाल दिया जाता है।"

उत्तर

7

मैं जानवर बल का उपयोग कर समाप्त हो गया: बनाया गया EventType और नाम का एक नक्शा है, तो ऐसी स्थिति में घटक प्राप्त कर सकता है के प्रत्येक प्रकार के लिए एक श्रोता देते हैं। तब मैंने श्रोता के अंदर एक ब्रेकपॉइंट सेट किया, और मैं देख सकता था कि कुछ भी हुआ जब घटनाएं प्राप्त हुईं।

यदि यह throwaway कोड नहीं किया गया था, मैं यह साफ होता है एक उपयोगिता वर्ग में, एक गुमनाम श्रोता वर्ग, आदि का प्रयोग नहीं किया

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

बस एक और संभावित समाधान मिला: http://loianegroner.com/2009/11/ext-js-which-events-are-fired-by-a-component/ – CoverosGene

5

विभिन्न विगेट्स के लिए एपीआई डॉक्स क्या घटनाओं में सक्रिय होगा और जब वे सक्रिय कर देगा का वर्णन। उदाहरण के लिए, मान लीजिए कि जब भी उपयोगकर्ता TabPanel में कोई नया TabItem चुनता है तो हम कोई कार्रवाई करना चाहते थे।

TabPanel का एपीआई दस्तावेज (http://extjs.com/deploy/gxtdocs/com/extjs/gxt/ui/client/widget/TabPanel.html पर स्थित) कई घटनाओं को दिखाता है; हम Select में रुचि रखते हैं:

चुनें: TabPanelEvent (कंटेनर, आइटम) एक आइटम के बाद

आग चुना गया है।

  • कंटेनर: इस
  • आइटम: आइटम है कि

चुना गया था तो, घटना पर कब्जा करने के लिए (जो ऐसा लगता है कि आप समझते हैं, लेकिन मैं पूर्णता 'खातिर शामिल होंगे) प्रक्रिया TabPanel करने के लिए एक श्रोता जोड़ने के लिए, Events.Select घटना के लिए विशेष रूप से देख रहा है:

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

ध्यान दें कि कई कार्यक्रमों में doit नामक एक संपत्ति होती है जिसे आप ईवेंट को रद्द करने के लिए गलत पर सेट कर सकते हैं।

एक पूरा कोड सूची:

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"); 
    } 
} 
संबंधित मुद्दे

 संबंधित मुद्दे