GWT /文本框 - 单个和双击处理程序选项?可能?

时间:2013-10-01 22:31:16

标签: java gwt textbox event-handling textinput

我创建了一个扩展DialogBox的弹出框,并使用包含值列表的cellTable,其中一个将被选中并插入到textBox中。

- 我有一个onSelectionChange处理程序,当单击其中一行时会触发该处理程序。

- 我有一个onDoubleClick处理程序,当双击相同的行时会触发它。

当对方被注释掉时,两者都有效。但是当它们都在实时代码中时,无论哪一个被写入,都会被另一个覆盖而不再被调用。

有什么方法吗?

代码片段:

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 个答案:

答案 0 :(得分: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");
    }
});