2013-07-12 46 views
3

我正在研究Java,SmartGWT 2.5 & Mozilla FF 3.6.x.我在我的應用程序中使用Tree,TreeGrid & TreeNode。我有這些事件:onRowHover和onDragMove事件之間的同步

addDragMoveHandler(new DragMoveHandler() { 
     @Override 
     public void onDragMove(DragMoveEvent event) { 
      // this is the Node which is moving to other parent 
      // it's parent is instance of PageFolder 
      Node movingNode = (Node) getSelectedRecord(); 
     } 
    }); 

addRowHoverHandler(new RowHoverHandler() { 
     @Override 
     public void onRowHover(RowHoverEvent event) { 
      Node _node = (Node) event.getRecord(); 
      if (_node.getModel() instanceof PageFolder) { 
       // this _node can be the parent of the moving node 
       // and it will change it's color using it's attribute in getBaseStyle 
       _node.setAttribute("canBeParent", true); 
      } 
     } 
    }); 

我想火onRowHover內onDragMove,因爲像這樣的第一種被稱爲onDragMove並完成後它被稱爲onRowHover。如果節點可以是拖動節點的父節點,則應該立即高亮顯示,而不是節點將被放入其中。還有onDragStart和onFolderDroped事件。但我只想讓onRowHover和onDragMove同步。

回答

1

沒有必要嘗試觸發onRowHover事件,只需從onDragMove處理程序調用相同的邏輯即可。

+0

但在onDragMove中,我不能這樣做:Node _node =(Node)event.getRecord()。 – Katerina

+0

您不需要訪問事件,您可以隨時使用getRecord(getEventRow())獲取鼠標結束的記錄。 –