2014-12-17 6 views
1

jface treeviewer를 만들었고 트리 뷰어에 요소 드래그 앤 드롭을 추가하고 있습니다. 항목을 하위 뷰에 추가해야합니다. tree.How 어떻게 하위 요소 이름을 얻을 수 있습니다 내가 요소를 삭제합니다. 예를 들어 대한 : 나는 1에 드래그 앤 드롭 할 때 우리가 어떻게 할 수있는 1로우리는 treeviewer에서 드롭을하고있는 항목을 어떻게 얻을 수 있습니까?

tree-> 
     A-> 
     1 
     2 
     B 
     C 

는 그래서 그것은의 selectedItem을 얻어야한다.

나는를 선택할 수 아니에요 항목을 삭제하는 동안은 selecteditem.but에 treeviewer에 항목을 추가하는 코드를 쓴 addItem를 기능에

int operationsn = DND.DROP_COPY | DND.DROP_MOVE; 
     Transfer[] transferType = new Transfer[]{TestTransfer.getInstance()}; 

     DropTarget targetts = new DropTarget(treeComposite, operationsn); 
     targetts.setTransfer(new Transfer[] { TestTransfer.getInstance() }); 

     targetts.addDropListener(new DropTargetListener() { 
      public void dragEnter(DropTargetEvent event) { 
       System.out.println("dragEnter in target "); 
       if (event.detail == DND.DROP_DEFAULT) { 
        if ((event.operations & DND.DROP_COPY) != 0) { 
         event.detail = DND.DROP_COPY; 
        } else { 
         event.detail = DND.DROP_NONE; 
        } 
       } 

      } 
      public void dragOver(DropTargetEvent event) { 
       System.out.println("dragOver in target "); 
       event.feedback = DND.FEEDBACK_SELECT | DND.FEEDBACK_SCROLL; 

      } 
      public void dragOperationChanged(DropTargetEvent event) { 
       System.out.println("dragOperationChanged in target "); 
       if (event.detail == DND.DROP_DEFAULT) { 
        if ((event.operations & DND.DROP_COPY) != 0) { 
         event.detail = DND.DROP_COPY; 
        } else { 
         event.detail = DND.DROP_NONE; 
        } 
       } 

      } 
      public void dragLeave(DropTargetEvent event) { 
       System.out.println("dragLeave in target "); 
      } 
      public void dropAccept(DropTargetEvent event) { 
       System.out.println("dropAccept in target "); 
      } 


      public void drop(DropTargetEvent event) { 
       //if (textTransfer.isSupportedType(event.currentDataType)) 
        if (event.data != null) { 
         Test tsType = (Test) event.data; 
          addItem(tsType); 
       System.out.println("test step name is" +tsType); 
         } 




      } 

     }); 

여기에 다음과 같이 드롭에 대한 코드입니다 항목을 트리에 드롭하는 동안 항목을 어떻게 선택할 수 있습니까?

답변

1

JFace 뷰어를 사용하는 경우 DropTargetListener이 아닌 JFace ViewDropAdapter 클래스를 사용할 수 있습니다.

이 클래스는 더 많은 작업을 수행하며 현재 대상 요소를 반환하는 방법이 getCurrentTarget()입니다.