快速业务通道

在Eclipse中去掉多余的UI组件的几个方法 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-20
t;/" + local-id组成.比如在插件my.example中扩展了 org.eclipse.ui.newWizards,id是mywizard,那么上面这个activityPatternBinding就会disable掉my.example的mywizard扩展,你在 GUI中就看不见这个 wizard了.pattern是支持正则表达式的,所以如果有"."的话需要用转义字符\.注意,这里的disable的意思并不是说我把 mywizard这个扩展删掉了,而是屏蔽了它,mywizard仍然在 ExtensionRegistry中.

3.用代码来动态控制UI

方法2只是隐藏掉一些扩展,但是有一些需求并不是简单的隐藏就可以了,我最近碰到的一个需求就是:有一个flag,只有当flag==1的时候扩展是可见的,否则是不可见的,需要disable这个扩展.这时就必须要加一些代码才能实现了,还是以方法2中的mywizard为例:

IWorkbenchActivitySupport workbenchActivitySupport = PlatformUI.getWorkbench().getActivitySupport();    IActivityManager activityManager = workbenchActivitySupport.getActivityManager();    Set enabledActivityIds = new HashSet(activityManager.getEnabledActivityIds());          if(flag==1)    {            if (enabledActivityIds.add("my.example.activity"))                 workbenchActivitySupport.setEnabledActivityIds(enabledActivityIds);    }    else{             if(enabledActivityIds.remove("my.example.activity"))                workbenchActivitySupport.setEnabledActivityIds(enabledActivityIds);    }

Activities可以是enable或者disable的,当你在plugin.xml中定义好了一个Activity,缺省它是disable 的,就是说activityPatternBinding 匹配的扩展是会被disable的,但你也可以把Activities设成enable的(在 plugin.xml或者用代码都可以设置),它匹配的扩展是可以正常使用的.

在上面的code sample中,我们通过activityManager.getEnabledActivityIds()得到所有enable的 Activities.如果flag==1,那my.example.activity 也应该被加入到enable Activities中,这样mywizard就可以显示在界面上,反之,就要在enable Activities中remove掉my.example.activity,它就变成

disable,会把mywizard隐藏.

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号