2011-08-12 55 views
1

我想知道是否有办法让一次不能打开一个以上的编辑器?我现在拥有的是一个按钮,每次按下它都会给出一个新的编辑器。 我使用Eclipse RCP的一次只有一个编辑器? RCP

感谢

+1

你为什么使用编辑器? - 不会让点击按钮时刷新的ViewPart更有意义吗? - 如果编辑器很脏,会发生什么情况,如果编辑器包含无效值会怎么样? –

回答

1

你可以在一个新的编辑器打开时关闭所有其他编辑的IWorkbenchWindowIPartService添加IPartListener。您可以通过IWorkbenchPage.getEditorReferences()找到当前编辑器。

+0

假设总是只有一个编辑器打开,IWorkbenchPage.getActiveEditor()应该是足够的;) –

+1

@Tom呃,问题是,你只会得到通知_after_新的编辑器打开,然后'IWorkbenchPage.getActiveEditor()'将返回新的编辑器而不是旧的编辑器。无论如何,我通常更喜欢尽可能少的前置条件的算法 - 即使它稍微复杂一些... :-) –

+0

你是对的。我的评论是误导性的,getActiveEditor必须在**打开新编辑器之前调用**。无论如何,最简单的可能是IWorkbenchPage.closeAllEditors(保存),然后再打开一个新的:) –