Vaadin双击和浏览器行为

时间:2013-04-12 12:28:18

标签: java google-chrome firefox vaadin

我正在开发一个带有树组件的Vaadin应用程序(版本6.8.10)。我们需要对项目的双击做出反应。但是在我们的跨浏览器测试中,我们发现双击并不总是在 Firefox 中工作(有时会工作)。

这里是我们的eventListener代码:

 @Override
  public void itemClick(ItemClickEvent event) {
  *  if (event.isDoubleClick()) {  // Breakpoint line
       // our action
    }
  } 

在Eclipse中调试我们收到以下值(在双击Vaadin收到2个事件后,在每个浏览器中)

收到1°事件

  

event.getButton()==> 1

     

event.isDoubleClick()==>假

     

event.getButtonName()==>左

收到2°事件

  

event.getButton()==> 1

     

event.isDoubleClick()==>的

     

event.getButtonName()==>左

火狐

收到1°事件

  

event.getButton()==> 1

     

event.isDoubleClick()==>假

     

event.getButtonName()==>左

收到2°事件

  

event.getButton()==> 1

     

event.isDoubleClick()==>的

     

event.getButtonName()==>左

恢复,在Firefox中我的双击被检测为2次单击!!!!

您是否经历过类似的事情?你有解决方法吗?

谢谢!

1 个答案:

答案 0 :(得分:2)

解决!!

我们看到Vaadin论坛上有一个旧的Ticket (#8384)来描述这种行为。

建议的解决方案是在树对象上 setImmediate(false),但我们想让代码更清晰,我们决定删除 setImmediate() 来自代码。我们测试了new Tree().isImmediate() == false(默认值),因此它应该可以工作。

经过大量的测试,研究和调试......我决定实际编写 setImmediate(false)我们的代码(应该没有必要)和神奇地现在,我们的代码在Firefox中工作得很好!!!

我希望这会对某人有所帮助。