RCP中获得其他view或editor引用的方法

每个view和editor都有一个ID,正是这个唯一标识他们的ID,使得我们在其他view的控件中,当响应某个事件时,想得到另一个view或editor的引用,进而对他进行修改,可以参照如下代码:
1、针对view,根据其ID获得引用
Java代码 复制代码 收藏代码
  1. View view = (View)PlatformUI.getWorkbench().getActiveWorkbenchWindow().   
  2.                             getActivePage().findView(View.ID);//强制类型转换  
View view = (View)PlatformUI.getWorkbench().getActiveWorkbenchWindow().
                            getActivePage().findView(View.ID);//强制类型转换


2、假设Editor具体的实现类为MyFileEditor,则
Java代码 复制代码 收藏代码
  1. 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获得引用
Java代码 复制代码 收藏代码
  1. View view = (View)PlatformUI.getWorkbench().getActiveWorkbenchWindow().   
  2.                             getActivePage().findView(View.ID);//强制类型转换  
View view = (View)PlatformUI.getWorkbench().getActiveWorkbenchWindow().
                            getActivePage().findView(View.ID);//强制类型转换


2、假设Editor具体的实现类为MyFileEditor,则
Java代码 复制代码 收藏代码
  1. 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
posted @ 2011-08-02 12:20  gladto  阅读(1717)  评论(0编辑  收藏  举报