簡體   English   中英

eclipse插件如何通過代碼在IDE中打開文件

[英]eclipse plugin how to open file in IDE by code

我正在研究eclipse插件,我必須從項目資源管理器中打開一個文件。 假設我在項目資源管理器中有一個項目ABC。 右鍵單擊項目后,我有一個選項來運行我的插件工具。 在處理之后我得到了一些結果,比如檢查文件xyz.java。

現在我想通過代碼在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();
    } 

這里它在c盤中創建一個名為decider的新文件,這意味着它的路徑錯誤。

但是當我在一些獨立的java文件中使用路徑代碼作為普通的JAVA項目時,它正在獲得正確的路徑。

對於工作空間中的文件,您應該使用IFile 如果您從Project Explorer或其他視圖中選擇了應該已經是IFile或可以適應IFile

如果您只有一個工作空間相對路徑,請使用ResourcesPlugin.getWorkspace().getRoot().getFile(path) (路徑將包含一個項目)。

要打開文件內容的默認編輯器,請使用

IDE.openEditor(page, file, true);

打開特定的編輯器使用

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

IDE是org.eclipse.ui.ide.IDE。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM