RCP中获得其他view或editor引用的方法
每个view和editor都有一个ID,正是这个唯一标识他们的ID,使得我们在其他view的控件中,当响应某个事件时,想得到另一个view或editor的引用,进而对他进行修改,可以参照如下代码:
1、针对view,根据其ID获得引用
2、假设Editor具体的实现类为MyFileEditor,则
注意:这里根据指定的input(IEditorInput)得到Editor的引用(Editor已实现EditorPart)
之所以不能根据ID得到是因为一个ID对应一个Editor,而一个Editor一般对应几个input并以选项卡的形式来表现这几个input
1、针对view,根据其ID获得引用
- View view = (View)PlatformUI.getWorkbench().getActiveWorkbenchWindow().
- getActivePage().findView(View.ID);//强制类型转换
View view = (View)PlatformUI.getWorkbench().getActiveWorkbenchWindow(). getActivePage().findView(View.ID);//强制类型转换
2、假设Editor具体的实现类为MyFileEditor,则
- MyFileEditor myFileEditor = (MyFileEditor)PlatformUI.getWorkbench().getActiveWorkbenchWindow(). getActivePage().findEditor(IEditorInput input);
MyFileEditor myFileEditor = (MyFileEditor)PlatformUI.getWorkbench().getActiveWorkbenchWindow(). getActivePage().findEditor(IEditorInput input);
注意:这里根据指定的input(IEditorInput)得到Editor的引用(Editor已实现EditorPart)
之所以不能根据ID得到是因为一个ID对应一个Editor,而一个Editor一般对应几个input并以选项卡的形式来表现这几个input
每个view和editor都有一个ID,正是这个唯一标识他们的ID,使得我们在其他view的控件中,当响应某个事件时,想得到另一个view或editor的引用,进而对他进行修改,可以参照如下代码:
1、针对view,根据其ID获得引用
2、假设Editor具体的实现类为MyFileEditor,则
注意:这里根据指定的input(IEditorInput)得到Editor的引用(Editor已实现EditorPart)
之所以不能根据ID得到是因为一个ID对应一个Editor,而一个Editor一般对应几个input并以选项卡的形式来表现这几个input
1、针对view,根据其ID获得引用
- View view = (View)PlatformUI.getWorkbench().getActiveWorkbenchWindow().
- getActivePage().findView(View.ID);//强制类型转换
View view = (View)PlatformUI.getWorkbench().getActiveWorkbenchWindow(). getActivePage().findView(View.ID);//强制类型转换
2、假设Editor具体的实现类为MyFileEditor,则
- MyFileEditor myFileEditor = (MyFileEditor)PlatformUI.getWorkbench().getActiveWorkbenchWindow(). getActivePage().findEditor(IEditorInput input);
MyFileEditor myFileEditor = (MyFileEditor)PlatformUI.getWorkbench().getActiveWorkbenchWindow(). getActivePage().findEditor(IEditorInput input);
注意:这里根据指定的input(IEditorInput)得到Editor的引用(Editor已实现EditorPart)
之所以不能根据ID得到是因为一个ID对应一个Editor,而一个Editor一般对应几个input并以选项卡的形式来表现这几个input