2017-05-23 7 views
0

私はXtextファイルを持つEclipseプロジェクトを持っています。それらについてのメトリクスを見つけるためには、EclipseプロジェクトのすべてのファイルをXtextResourceにする必要があります。これまでのところ、私は以下のことを試しました:IFileをXtextResourceに変換する

1.プロジェクト内のファイルのリスト全体を網羅し、IFileとして取得しましたが、私はIFileXtextResourceに変換できません。

2.I成功私は(IworkBenchPageで)すべてのプロジェクトにあるページのみアクティブではないを見つけることができますので、もし、IWorkBenchPageでのみアクティブページからXtextResourceを取得または多分アクティブIなど、プロジェクト内のすべてのページを設定しますそれが機能すると思う。

これは私がprivate static void setResource() { IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage(); IEditorPart activeEditor = page.getActiveEditor(); if (activeEditor instanceof XtextEditor) { XtextEditor xtextEditor = (XtextEditor) activeEditor; xtextEditor.getDocument().readOnly((XtextResource resource) -> {
ResourceHandler.resource = resource; return null; }); } }

を持っている場合、私は日食のすべてのそれらの関係を持つ専門家ではないですし、somecanが私をここに保存することを願ってやっていることへのコード例です。感謝! ありがとう!

+0

だけのEclipse長くて、ずっと前に1ページ分があったが、これは長年にわたりそうではなかった。 –

答えて

0

次は動作するはずです(

...あなたは、これはGuiceの意識延長工場を経由して使用されている場所を作成すると仮定し
@Inject 
IResourceSetProvider resourceSetProvider; 

... 
IProject project = file.getProject(); 
URI uri = URI.createPlatformResourceURI(file.getFullPath().toString(), true); 
ResourceSet rs = resourceSetProvider.get(project); 
Resource r = rs.getResource(uri, true); 
r.load(null) 

あなたがあなたの場所での使用でGuiceのを持っていけない場合

ResourceSet rs = IResourceServiceProvider.Registry.INSTANCE.getResourceServiceProvider(uri).get(IResourceSetProvider.class).get(project); 
+0

それは働く!!!ありがとう! – Matan

関連する問題