2011-02-04 4 views
4

독점 프로젝트 파일 형식을 지원하는 Eclipse 플러그인을 만들려고합니다. 내 목표는 프로젝트 탐색기 (모든 유형의 파일) 에 파일을 끌어다 놓고 유형 I의 파일을 지원하고 끌어서 놓는 파일의 이름을 독점 파일의 끝에 추가 할 수있게하는 것입니다. .Eclipse 내에서 파일 끌어서 놓기 처리 패키지 탐색기

지금은 기존 파일의 일부 데이터를 관리 가능한 방식으로 분석 할 수있는 사용자 지정 편집기가 있습니다. 즉, 파일 유형과 관련된 편집기가있어서 그 옆에 특수 아이콘이 표시됩니다. 그게 관련이 있는지 나는 모른다.

확장 점 "org.eclipse.ui.dropActions"를 사용하려고하는데 DropActionDelegate (org.eclipse.ui.part.IDropActionDelegate 구현)를 등록하는 방법을 모르겠습니다. 파일이 내의 프로젝트 탐색기에 놓을 때 호출됩니다.

아무도 아이디어가 있습니까? DropActionDelegate를 사용하여 올바른 방향으로 가고 있습니까?

답변

2

당신은 구현 올바른 궤도에 IDropActionDelegate :

class DropActionDelegate implements IDropActionDelegate { 

    @Override 
    public boolean run(Object source, Object target) { 
     String transferredData (String) target; // whatever type is needed 
     return true; // if drop successful 
    } 
} 

org.eclipse.ui.dropActions 당신이 (프로젝트 탐색기처럼) 자신을 정의하지 않는 뷰에 드롭 동작을 제공하는 확장 점의 목적.

당신은이 같은 drop action extension 등록 :

<extension point="org.eclipse.ui.dropActions"> 
     <action 
      id="my_drop_action" 
      class="com.xyz.DropActionDelegate"> 
     </action> 
</extension> 

이 플러그인 코드 편집기에 적절한 리스너를 부착하는 것을 잊지 마세요 :

class DragListener implements DragSourceListener { 

@Override 
public void dragStart(DragSourceEvent event) { 
} 

@Override 
public void dragSetData(DragSourceEvent event) { 
    PluginTransferData p; 
    p = new PluginTransferData(
     "my_drop_action", // must be id of registered drop action 
     "some_data" // may be of arbitrary type 
     ); 
    event.data = p; 
} 

@Override 
public void dragFinished(DragSourceEvent event) { 
} 

} 
+1

내가 가진 오랫동안 버려진이 특정 프로젝트 이후, 그러나 당신의 대답에 감사드립니다. 완벽 해 보이고 따르기 쉽기 때문에 의심의 이익을 줄 것입니다! :) –

+0

좋아, 고마워, 고마워! ... 나는 비슷한 요구 사항을 가진 프로젝트에서 일하고 있었고 이런 방식으로 구현했다. 어딘가에 방법을 문서화하기로 결정했는데 이것은 좋은 장소처럼 보였습니다. – mtsz

+0

[IDropActionDelegate documentation]에 대한 링크가 업데이트되었습니다. (http://help.eclipse.org/mars/index.jsp?topic=%2Forg.eclipse.platform.doc .isv % 2Freference % 2Fextension-points % 2Forg_eclipse_ui_dropActions.html & resultof = % 22IDropActionDelegate % 22 % 20 % 22idropactiondeleg % 22) –