2013-10-01 38 views
0

我創建了一個彈出框來擴展DialogBox,並使用一個包含值列表的單元格,其中一個將被選中並插入到文本框中。GWT /文本框 - 單擊和雙擊處理程序選項?可能?

- 我有一個onSelectionChange處理程序,當單擊其中一行時會觸發它。

- 我有一個onDoubleClick處理程序,當雙擊相同的行時觸發。

這兩個工作時,另一個被註釋掉。但是,當它們都在實時代碼中時,首先被寫入的代碼會被另一個覆蓋,而不再被調用。

任何方法?

代碼snipbit:

final SingleSelectionModel<popUpBoxContent> selectionModel= new <popUpBoxContent>(); 
cellTable.setSelectionModel(selectionModel); 
selectionModel.addSelectionChangeHandler(new SelectionChangeEvent.Handler(){ 
public void onSelectionChange (selectionChangeEvent event){ 
//Do something 
}}); 


final SingleSelectionModel<popUpBoxContent> selectionModel2= new <popUpBoxContent>(); 
cellTable.setSelectionModel(selectionMode2); 
cellTable.addDomHandler(new DoubleClickHandler(){ 
public void onDoubleClick(final DoubleClickEvent event){ 
//Do something else 
}}, 

DoubleClickEvent.getType()); 

謝謝!

回答

1

是的,它們會覆蓋我在代碼片段中看到的內容。假設「popUpBoxContent」是數據類型與正在填充CellTable(我相信cellTable是CellTable),你可以試試這個,看看它的工作原理:

final SingleSelectionModel<PopUpBoxContent> selectionModel = new SingleSelectionModel<PopUpBoxContent>(); 
cellTable.setSelectionModel(selectionModel); 
cellTable.addDomHandler(new DoubleClickHandler() { 
    public void onDoubleClick(final DoubleClickEvent event) { 
     PopUpBoxContent selected = selectionModel.getSelectedObject(); 
     if (selected != null) { 
      System.out.println("double clicked"); 
     } 
    } 
}, 
DoubleClickEvent.getType()); 

selectionModel.addSelectionChangeHandler(new SelectionChangeEvent.Handler() { 
    public void onSelectionChange(SelectionChangeEvent event) { 
     System.out.println("clicked"); 
    } 
}); 
+0

工作就像一個魅力,謝謝! – TheJavaBeast