2013-07-12 4 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); 
      } 
     } 
    }); 

내가 이것 때문에 처음처럼 onDragMove 내부 onRowHover 화재 싶습니다이 onDragMove이라고를하고 완료 후에는 onRowHover이라고합니다. 노드가 드래그 노드의 부모가 될 수있는 경우 노드가 즉시 강조 표시되어야합니다. 노드가 노드에 드롭 될 때가 아닙니다. onDragStart 및 onFolderDroped 이벤트도 있습니다. 하지만 onRowHover와 onDragMove 만 동기화하려고합니다.

답변

1

onRowHover 이벤트를 발생시키지 않아도됩니다. onDragMove 핸들러에서 동일한 로직을 호출하기 만하면됩니다.

+0

하지만 onDragMove에서는이 작업을 수행 할 수 없습니다. Node _node = (Node) event.getRecord(). – Katerina

+0

이벤트에 액세스 할 필요가없는 경우 getRecord (getEventRow())를 사용하여 언제든지 마우스가 끝났음을 알 수 있습니다. –