Eclipse很强大,osgi很灵活,PDE扩展性很强,但是,PDE实在太huge了,加上各种各样的plugin提供的extension point,以及仅仅org.eclipse.ui提供的workbench,workbenchwindow,menumanager,coolbarmanager,toolbarmanager……文档、javadoc就够你受的。今天在修一个issue,很简单,我们实现了一个standalone的基于PDE的界面,可不知道为什么,perspective dock默认出现在了左边(图一),而用户希望出现在常见的右边(图二) 看上去很简单,但是搞了半天没有搞定,上网google,找到了这篇和这篇,结论很简单,要想把dock放到右边,得调用IWorkbenchWindowConfigurer.setShowCoolBar(true);;要拿到IWorkbenchWindowConfigurer的对象,得继承IApplication,然后继承WorkbenchAdvisor,然后继承WorkbenchWindowAdvisor,最后覆盖WorkbenchWindowAdvisor.preWindowOpen()……反正就是得搞出三个类,覆盖三个方法……虽然看着麻烦点,但是能搞定的。然而,对于非standalone的PDE应用,你是不可能继承IApplication的,因为程序入口由Eclipse接管,而不是IApplication……于是上面这些research都是白做…… 于是开始看源代码,然后静态分析上面各个方法的调用关系,最后找到了这么一个方法:WorkbenchWindow.setPerspectiveBarLocation(IWorkbenchPreferenceConstants.TOP_RIGHT);,于是把着个方法放到Activator的子类里,比如这样: public class CompActivator extends AbstractUIPlugin { @Override public void start(BundleContext context) throws Exception { super.start(context); … // put perspective dock to top-right ((WorkbenchWindow) this.getWorkbench().getActiveWorkbenchWindow()) read more
烫手的
- 生活,就是一个期待跟着一个期待 - 被踩了 6,769 脚
- 悼念该悼念的,记住该记住的,知道该知道的 - 被踩了 1,584 脚
- 解决android 2.2下无法更新gmail、voice search、google search、street view - 被踩了 1,254 脚
- 关于 - 被踩了 1,124 脚
- 死于青春 - 被踩了 1,070 脚
近期评论
- CSDN这回一石激起千层浪了 | 拈花微笑 发表在《请教新浪》
- 牛肉丝 发表在《Sina,I服了U》
- 牛肉丝 发表在《一路走好》
- CSDN这回一石激起千层浪了 | 拈花微笑 发表在《猜想:互联网ID,“死号”判定与回收》
- CSDN这回一石激起千层浪了 | 拈花微笑 发表在《Sina,I服了U》
