2016-04-26 11 views
0

私はEclipseプラグインを開発中です。プロジェクトエクスプローラにはいくつかのプロジェクトがあり、それらのプロジェクトを別のワークスペースに保存しています(新しいプロジェクトを追加しましたが、別のワークスペースを追加しています)。選択したプロジェクトのワークスペースを取得するために、私はコードプロジェクト選択に対応する別のワークスペースを取得する方法

ResourcesPlugin.getWorkspace().getRoot().getLocation().toString(); 

以下の使用が、それは常に私がプロジェクトを初めて開いたときに、私が選択したワークスペースを返します。異なるプロジェクト選択に対応する異なるワークスペースをプロジェクトエクスプローラから取得する方法はありますか?

+0

プロジェクトは常に現在のワークスペースにあるため、「新しいプロジェクトを追加することはできますが、別のワークスペースを追加する」ことはできません。実際に何をしましたか? –

+0

私はファイル - >新規 - >プロジェクト - ><プロジェクトの種類を選択> - ><デフォルトのプロジェクトの場所を使用>のチェックを外して新しい場所を参照し、プロジェクト名を入力します - >終了します。同じプロジェクトエクスプローラ –

+0

プロジェクトは現在のワークスペースで作成されますが、別の場所にあるファイルを参照して作成されます。 –

答えて

0

すべてのプロジェクトは、現在のワークスペースに作成されます。 Eclipseは一度に1つ以上のワークスペースをアクティブにすることはありません。

別の場所を使用してプロジェクトを作成した場合は、プロジェクトの場所に表示されます。

IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot(); 

IProject project = root.getProject("Project"); 

IPath pathInWorkspace = project.getFullPath(); 

IPath actualLocation = project.getLocation(); 

「プロジェクト」をプロジェクトの名前に置き換えるか、選択したプロジェクトからプロジェクトを探します。

pathInWorkspaceはワークスペースの相対パスで、この場合はちょうど/Projectになります。

actualLocationは、ファイルシステム内のプロジェクトの実際の場所です。

+0

pathInWorkspaceから "/ Poject"の値を取得し、actualLocationからnullを返します –

+0

プロジェクトを選択するたびに対応するパスを取得する必要があります –

+0

"プロジェクト"はプロジェクトの名前にする必要があります。 –

1

プロジェクト選択リスナーでは、このようなことができます。私はあなたが標準のEclipseプロジェクトのエクスプローラを参照していることを願っています。

ISelectionService service = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getSelectionService(); 
    IStructuredSelection structured = (IStructuredSelection) service.getSelection(IPageLayout.ID_PROJECT_EXPLORER); 
    if (structured instanceof IStructuredSelection) 
    { 
     Object selectedObject = ((IStructuredSelection) structured).getFirstElement(); 
     if (selectedObject instanceof IAdaptable) 
     { 
      IResource resource = (IResource) ((IAdaptable) selectedObject).getAdapter(IResource.class); 
      if (resource != null) 
      { 
       IProject project = resource.getProject(); 
       IPath location = project.getLocation(); 
      } 
     } 
    } 
+0

ありがとうKondalそれは働く.. :) –

関連する問題