2013-10-08 9 views
8

Ich arbeite an Eclipse-Plugin, in dem ich eine Datei aus Projekt Explorer öffnen muss. Angenommen, ich habe ein Projekt ABC im Projekt-Explorer. Nachdem ich mit der rechten Maustaste auf das Projekt geklickt hatte, bekam ich eine Option, um mein Plugin-Tool zu starten. Nach der Verarbeitung habe ich ein Ergebnis wie Check file xyz.java bekommen.eclipse plugin wie man Datei in IDE durch Code öffnet

Jetzt möchte ich diese Datei von Code in IDE öffnen

ich bin mit diesen

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(); 
    } 

hier ist es eine neue Datei mit dem Namen decider in c-Laufwerk einrichten, bedeutet es einen falschen Weg zu bekommen.

aber wenn ich Pfadcode in einigen unabhängigen Java-Datei als eine normale JAVA Projekt verwenden, erhält es den richtigen Pfad.

+4

Aus Neugier, warum wurde dies abgelehnt? –

+0

kann jemand mir eine kurze Idee oder Richtung geben, um voranzukommen – user2379020

+0

Ich bin nicht klar, was Sie fragen. Möchten Sie nur den Standardeditor für eine Projektdatei oder einen bestimmten Editor öffnen oder was? –

Antwort

8

Für eine Datei im Arbeitsbereich sollten Sie IFile verwenden. Wenn Sie eine Auswahl aus dem Projekt Explorer oder einer anderen Ansicht haben, die bereits eine IFile sein soll oder an eine IFile angepasst werden kann.

Wenn Sie nur einen relativen Pfad für den Arbeitsbereich verwenden, verwenden Sie ResourcesPlugin.getWorkspace().getRoot().getFile(path) (Pfad enthält ein Projekt).

Um den Standard-Editor für den Inhalt der Datei zu öffnen verwenden

IDE.openEditor(page, file, true); 

verwenden einen bestimmten Editor

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

IDE zu öffnen ist org.eclipse.ui.ide.IDE.

+0

Ist es möglich, den Editor an einer bestimmten Zeile zu öffnen? – KrzyH

+0

@KrzyH Im Allgemeinen, nein, Sie können einen Editor an einer bestimmten Zeile nicht öffnen - einige Editoren haben nicht einmal das Konzept einer Zeile. 'IDE.openEditor' gibt das' IEditorPart' zurück, das geöffnet wurde, Editoren, die 'ITextEditor' implementieren, haben eine 'selectAndReveal'-Methode, die einen Offset in der Datei anzeigt. –