Views Tutorial
视图(View)是我们在插件开发中用的比较多的一个组件,我们常用的视图有PackageExplorer,Navigator,Outline,Properties等。
org.eclipse.ui.views
扩展视图就要用到这个扩展点org.eclipse.ui.views
,它里面的主要内容有:
- category:Category是用来将视图进行分组的。
- e4View:定义一个e4风格的视图。
- view:定义一个普通的视图。
- stickyView:定义一个常驻Window的视图,这个视图可以在任何的透视图(Perspective)中都显示,除非用户手动的去关闭。
- e4View和view的定义方法是不一样的,我们通常意义上的视图指的都是Eclipse 3.x版本的视图,实现视图的类必须继承IViewPart的接口。但e4中的视图就不用实现这个接口,只需要在类中添加一些Injection Annotation(如@Inject)就能实现。
- stickyView中其实没有定义真正的视图,它只是引用一个已有的视图去设置一个常驻Window的位置。
Category
- id:唯一标识,在View中引用的时候就靠它。
- name:显示的名称。
- parentCategory:定义父节点。
如图:
View
- id:
- name:
- class:实现
org.eclipse.ui.IViewPart
接口,或是继承org.eclipse.ui.part.ViewPart
类。 - category:分组的Category的id,多个可以用
/
分开。 - icon:
- fastViewWidthRatio:视图宽度和Workbench宽度的比例值,介于0.05到0.95之间。
- allowMultiple:是不是允许多个视图同时存在,默认值是false。
- restorable:是不是允许Workbench启动时自动打开视图,默认是true。
IViewPart,ViewPart
一般情况下,我们通过继承ViewPart类来实现我们的视图。而createPartControl()
方法就是我们用来创建视图界面的入口方法。
public class SampleView extends ViewPart {
public void createPartControl(Composite parent) {
}
public void setFocus() {
}
}
Contributing Actions
定义好了视图,我们可以给视图添加相应的Action,与视图相关的Action有三类:
- 上下文菜单(Context Menu):可以在视图实现类里完成,也可以通过实现Menu扩展点的方式完成。
- 视图工具栏(ToolBar):在视图实现类里完成。
- 视图菜单(Local Menu):在视图实现类里完成。
如图:
Context Menu
MenuManager menuMgr = new MenuManager("#PopupMenu");
menuMgr.setRemoveAllWhenShown(true);
menuMgr.addMenuListener(new IMenuListener() {
public void menuAboutToShow(IMenuManager manager) {
// 创建上下文菜单
}
});
Menu menu = menuMgr.createContextMenu(viewer.getControl());
[viewControl].setMenu(menu); //给视图控件添加上下文菜单。
getSite().registerContextMenu(menuMgr, [ISelectionProvider]);//注册上下文菜单,以便通过扩展点实现。
ToolBar
IActionBars bars = getViewSite().getActionBars();
IToolBarManager manager = bars.getToolBarManager();
manager.add(action1);
manager.add(action2);
Local Menu
IActionBars bars = getViewSite().getActionBars();
IMenuManager manager = bars.getMenuManager();
manager.add(action1);
manager.add(new Separator());
manager.add(action2);
Back to Home 上一篇:Plug-in Development Tutorial 下一篇:Editors Tutorial