2013-10-08 11 views
8

Pracuję nad wtyczką Eclipse, w której muszę otworzyć plik z eksploratora projektu. Załóżmy, że mam projekt ABC w eksploratorze projektu. po kliknięciu prawym przyciskiem myszy na projekt mam opcję uruchomienia mojego narzędzia wtyczki. po przetworzeniu otrzymałem wynik podobny do sprawdzenia pliku xyz.java.Wtyczka eclipse jak otworzyć plik w IDE pod kodem

Teraz chcę otworzyć ten plik w IDE kodem

Używam tego

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

tutaj to utworzyć nowy plik o nazwie decider na dysku C, co oznacza, że ​​robi się złą ścieżkę.

, ale kiedy używam kodu ścieżki w jakimś niezależnym pliku java jako normalny projekt JAVA, uzyskuje on poprawną ścieżkę.

+4

Z ciekawości, dlaczego ten głos został odrzucony? –

+0

Czy ktoś może dać mi krótki pomysł lub kierunek, aby iść do przodu – user2379020

+0

Nie wiem, o co pytasz. Czy chcesz po prostu otworzyć domyślny edytor pliku projektu lub konkretnego edytora? –

Odpowiedz

8

Dla pliku w obszarze roboczym należy użyć IFile. Jeśli masz wybór z Project Explorer lub innego widoku, który powinien już być IFile lub może być dostosowany do IFile.

Jeśli masz tylko ścieżkę względną obszaru roboczego, użyj ResourcesPlugin.getWorkspace().getRoot().getFile(path) (ścieżka zawiera projekt).

Aby otworzyć domyślny edytor zawartości pliku użyć

IDE.openEditor(page, file, true); 

otworzyć specyficzny edytor użyć

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

IDE jest org.eclipse.ui.ide.IDE.

+0

Czy można otworzyć edytor w określonej linii? – KrzyH

+0

@ KrzyH Ogólnie, nie, nie można otworzyć edytora w określonej linii - niektórzy redaktorzy nie mają nawet pojęcia linii. 'IDE.openEditor' zwraca" IEditorPart ", który został otwarty, edytory, które implementują' ITextEditor', mają metodę 'selectAndReveal', która pokazuje przesunięcie w pliku. –