学习eclipse rcp view 中添加propertysheet 视图,啊找不到一个完整的例子,如何让其显示出来啊。
http://hi.baidu.com/cslg0000/blog/item/a7f12d2a58068f35d42af1e5.html/////////////////...
http://hi.baidu.com/cslg0000/blog/item/a7f12d2a58068f35d42af1e5.html
///////////////// 属性视图求改这个,啊。。。
求修改 展开
///////////////// 属性视图求改这个,啊。。。
求修改 展开
2个回答
展开全部
你的rcp工程中应该有一个实现了IPerspectiveFactory的类
这个类就是控制你的rcp再打开的的时候显示的视图布局
这个类中有一个createInitialLayout(IPageLayout layout)的方法,在里面添加:
String editorArea = layout.getEditorArea();
layout.addView("org.eclipse.ui.views.PropertySheet",IPageLayout.BOTTOM, 0.75f,editorArea);
就可以在rcp中显示属性视图了。
至于你的那种做法,就算是显示了属性视图了也是不行的,PropertySheetPage 不能这样直接用的。
还需要调用:propertySheetPage.init(new PageSite(getViewSite()));
和propertySheetPage.createControl(book);
在selectionChanged里面还需要
propertySheetPage.selectionChanged(currentPart, currentSelection);
至于setPropertySourceProvider这个好像不怎么用的
这个类就是控制你的rcp再打开的的时候显示的视图布局
这个类中有一个createInitialLayout(IPageLayout layout)的方法,在里面添加:
String editorArea = layout.getEditorArea();
layout.addView("org.eclipse.ui.views.PropertySheet",IPageLayout.BOTTOM, 0.75f,editorArea);
就可以在rcp中显示属性视图了。
至于你的那种做法,就算是显示了属性视图了也是不行的,PropertySheetPage 不能这样直接用的。
还需要调用:propertySheetPage.init(new PageSite(getViewSite()));
和propertySheetPage.createControl(book);
在selectionChanged里面还需要
propertySheetPage.selectionChanged(currentPart, currentSelection);
至于setPropertySourceProvider这个好像不怎么用的
更多追问追答
追问
1.修改在目标视图中(这里以用户视图为例)getAdapter(Class key),目标视图的viewer要提供监听源参数由工作台传入,当窗口发生变化时,或者点击。我知道了看的别人的例子,跟你说的略有区别,有具体例子么? 2.这种方法需要监听viewer的事件 另一个问题是比如CAD系统中,点击是画板的某条直线,然后属性视图显示相应内容。一般的控件并没有实现ISectionProvider接口
难道写个类继承换件再实现ISectionProvider?
追答
getAdapter只不过是获取该视图中的某个成员变量而已,不是你的getAdapter中有return什么别人就一定会调什么。在别的类中就不一定会有调用getAdapter(IPropertySheetPage.class)这种这种情况。
所有的views都是实现了ISectionProvider这个接口的,不需要程序员加ISectionProvider的实现。再者说,PropertySheetPage也实现了ISelectionListener这个接口,eclipse会在后台为某一个view添加PropertySheetPage这个监听器。
至于你所的控件也要实现ISectionProvider是你对eclipse的view结构理解错了。
至于这方面的例子,如果有的话我早就给你贴出来了……
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询