2013-10-08 15 views
8

私はプロジェクトエクスプローラからファイルを開く必要があるEclipseプラグインに取り組んでいます。 プロジェクトエクスプローラにプロジェクトABCがあるとします。私はプラグインツールを実行するオプションを持ってプロジェクトを右クリックした後。処理後、xyz.javaをチェックするような結果が得られました。eclipse pluginコードでIDEでファイルを開く方法

今、私はこの

File absolute = new File("/Decider.java"); 
File file = new File("/Decider.java"); 
IFileStore fileOnLocalDisk = EFS.getLocalFileSystem().getStore(absolute.toURI()); 

FileStoreEditorInput editorInput = new FileStoreEditorInput(fileOnLocalDisk); 

IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow(); 
IWorkbenchPage page = window.getActivePage(); 

try { 
    page.openEditor(editorInput, "org.eclipse.ui.DefaultTextEditor");   

    page.openEditor(editorInput, "MyEditor.editor");   

     IFileStore fileStore = EFS.getLocalFileSystem().getStore(absolute.toURI()); 
     IDE.openEditorOnFileStore(page, fileStore); 

     } catch (PartInitException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 


    try { 
     System.out.println(file.getCanonicalPath()); 
    } catch (IOException e1) { 
     // TODO Auto-generated catch block 
     e1.printStackTrace(); 
    } 


    IPath path = new Path(" /DirectoryReader.java"); 
    IFile sampleFile = ResourcesPlugin.getWorkspace().getRoot().getFile(path); 

    IEditorInput editorInput1 = new FileEditorInput(sampleFile); 
    IWorkbenchWindow window1=PlatformUI.getWorkbench().getActiveWorkbenchWindow(); 
    IWorkbenchPage page1 = window1.getActivePage(); 
    try { 
     page1.openEditor(editorInput1, "org.eclipse.ui.DefaultTextEdtior"); 
    } catch (PartInitException e1) { 

     e1.printStackTrace(); 
    } 

を使用していたコード

により、IDEでこのファイルを開きたい、ここでそれは間違ったパスを取得しています意味し、Cドライブにサイダーという名前の新しいファイルを作成します。

しかし、通常のJAVAプロジェクトでは、いくつかの独立したJavaファイルでパスコードを使用すると、正しいパスが得られます。

+4

好奇心の高まりから、なぜこれが投票されたのですか? –

+0

誰でも私に先に進むための簡単なアイデアや方向を教えてもらうことができます – user2379020

+0

私はあなたが何を求めているのか明確ではありません。デフォルトのエディタをプロジェクトファイル、または特定のエディタで開きたいだけですか? –

答えて

8

ワークスペース内のファイルについては、IFileを使用する必要があります。プロジェクトエクスプローラから選択したもの、またはすでにIFileになっている別のビューがある場合、またはIFileに適合させることができます。

ワークスペースの相対パスを使用している場合は、ResourcesPlugin.getWorkspace().getRoot().getFile(path)(パスにはプロジェクトが含まれます)を使用します。

は、特定のエディタが

IDE.openEditor(page, file, "editor id"); 

IDEを使用開くために

IDE.openEditor(page, file, true); 

を使用してファイルの内容のためのデフォルトのエディタを開くにはorg.eclipse.ui.ide.IDEです。

+0

特定の行でエディタを開くことはできますか? – KrzyH

+0

@ KrzyH一般的に、いいえ、特定の行にエディタを開くことはできません。エディタの中には、行の概念さえ持たないものもあります。 'IDE.openEditor'は開かれた' IEditorPart'を返し、 'ITextEditor'を実装するエディタはファイル内のオフセットを示す' selectAndReveal'メソッドを持っています。 –

関連する問題