2014-04-25 37 views
0

我有兩個編輯器註冊了一個文件擴展名,一個擴展名的文件在其中一個編輯器中打開。我現在想在其他編輯器中以編程方式打開此文件,但不必知道它的ID。是否可以檢索已註冊一個文件擴展名的編輯列表,或者是否有更好的方法來執行此操作?如何檢索在Eclipse中爲某個文件擴展名註冊的編輯器?

+0

右鍵單擊要編輯的文件。其中一個選項是「打開...」。將鼠標懸停在該選項上,您將看到爲該擴展程序註冊的編輯列表。 –

+0

對不起,我的意思是通過編程方式打開文件:) – user2035039

回答

1

您使用編輯器註冊表來執行此操作。獲取註冊表有:

IEditorRegistry registry = PlatformUI.getWorkbench().getEditorRegistry(); 

註冊表有找到編輯,例如一些方法:

IEditorDescriptor [] desc = registry.getEditors("file name"); 

返回,將在文件名稱上工作的編輯。還有一些方法可以獲取與文件內容類型相關聯的默認編輯器和編輯器。

IEditorDescriptor包含編輯器ID,您可以通過此編輯器ID打開方法IWorkbenchPage

更新:

如果你想打開兩個編輯同一個文件的同時,你將不得不使用IWorkbenchPageopenEditor調用,它具有「匹配標誌」選項的版本:

public IEditorPart openEditor(final IEditorInput input, 
     final String editorId, final boolean activate, final int matchFlags) 

指定IWorkbenchPage.MATCH_NONE作爲matchFlags停止搜索現有的打開編輯器。

+0

如果我之前關閉了editor1,我只能打開editor2中的文件。否則,當我嘗試在editor2中打開文件時沒有任何反應。 – user2035039

+0

添加了使用的匹配標誌選項。注意:Eclipse不會協調在兩個編輯器中所做的更改。 –

+0

就是這樣,再次感謝:) – user2035039

相關問題