2012-05-22 36 views
0

我正在使用GXT2.2.5的Grid並且想要處理ClickDoubleClick事件。如何防止GXT Grid中的Click和DoubleClick事件衝突?

問題是,當這樣做時,Click事件有時被稱爲每個DoubleClick被觸發兩次。我的目標是防止第二次致電Click

下面是相關代碼:

grid.addListener(Events.OnDoubleClick, new Listener<BaseEvent>() { 
    public void handleEvent(BaseEvent e) { 
     GridEvent event = (GridEvent) e; 
     doubleClick(getSelectedContent()); 
    } 
}); 

view.getGridContent().addListener(Events.OnClick, new Listener<BaseEvent>() { 
    public void handleEvent(BaseEvent be) { 
     final GridEvent event = (GridEvent) be; 

     Date date = new Date(); 
     long current = date.getTime(); 

     if ((current - lastClicked) > 1000){ 
      click(getSelectedContent()); 
     } 
     lastClicked = current;        
    } 
}); 

可以看出,我目前的做法是檢查第二次點擊後是1000毫秒觸發,比委託調用click(),但不功能正常。

如何解決這個問題呢?

回答

0

試試這個...

使用getClickCount()方法。這種方法告訴點擊的類型(即單一,雙重,三重,和進一步....等),但不保留跟蹤的點擊次數...

使用這種方法,你可以知道無論點擊是單倍還是雙倍,三倍等......然後根據您的決定即可做出決定。

+0

如何從GridEvent獲取getClickCount()方法? –