2009-11-20 26 views
1

容易複製在GWT 1.6.4:GWT樹小部件吞下箭頭鍵盤事件,這使得包含在TreeItems文本框不響應箭頭鍵

Tree tree = new Tree(); 
tree.addItem(new TextBox()); 

問題在於onBrowserEvent在樹:

switch (eventType) { 
    case Event.ONKEYDOWN: 
    case Event.ONKEYUP: { 
    if (isArrowKey(DOM.eventGetKeyCode(event))) { 
     DOM.eventCancelBubble(event, true); 
     DOM.eventPreventDefault(event); 
     return; 
    } 
    } 

與許多GWT小部件一樣,它們不會很好地子類。必須有一個簡單的技巧,我可以擺動這個?

回答

5

解決了這一點的黑客。

m_tree = new Tree() 
    { 
     @Override 
     protected boolean isKeyboardNavigationEnabled(TreeItem inCurrentItem) 
     { 
      return false; 
     } 

     @Override 
     public void onBrowserEvent(Event event) { 
      int eventType = DOM.eventGetType(event); 

      switch (eventType) 
      { 
       case Event.ONKEYDOWN: 
       case Event.ONKEYPRESS: 
       case Event.ONKEYUP: 
        return; 
       default: 
        break; 
      } 

      super.onBrowserEvent(event); 
     } 
    }; 
+0

+1非常感謝:) – 2013-05-13 14:43:02