2011-06-29 13 views
0

私はLabelを私のカスタムで持っていますFlowPanelHasDoubleClickHandlersを実装しています。GWTのイベントの枠線を設定する方法は?

final Label label = new Label("Click here to write"); 
    label.addClickHandler(new ClickHandler() { 
     @Override 
     public void onClick(ClickEvent event) { 
      clicked(); 
     } 
    }); 
    final CustomFlowPanel customFlowPanel=new CustomFlowPanel(); 
    customFlowPanel.addDoubleClickHandler(new DoubleClickHandler() { 
     @Override 
     public void onDoubleClick(DoubleClickEvent event) { 
      if (event.getSource() instanceof FlowPanel) { 
       doubleClicked(); 
      } 
     } 
    }); 
    custoFlowPanel.add(label); 

問題は、私がラベルdoubleClicked()をダブルクリックして実行しないと問題が発生することです。 ラベルをダブルクリックしたときの実行を防止する方法doubleClicked()? 事前に感謝!

答えて

2

ラベルがクリックされた場合はDoubleClickEventをチェックし、そうでなければdoubleClicked()を呼び出すことができます。

customFlowPanel.addDoubleClickHandler(new DoubleClickHandler() {   
     @Override   
     public void onDoubleClick(DoubleClickEvent event) {    
      Element clicked = event.getNativeEvent(); 
      if (!clicked.Equals(label.getElement()) 
      { 
       doubleClicked();   
      } 
     }  
}); 
1

私はまだそれを試してみましたが、ラベルをダブルクリックハンドラを追加してみて、その上に Event.stopPropagation()を使用していません。これにより、イベントが親に伝播するのを防ぐことができます。

関連する問題