eclipse RCP启动修改

  因项目需要,需要在eclipse RCP启动之前弹出登录对话框,登录之后根据人员权限分配功能模块。可以在
    PlatformUI.createAndRunWorkbench(display, new IDEWorkbenchAdvisor());
之前完成这些工作,但是在加载各种视图是遇到问题。于是采用如下方法解决。
  因为要使RCP启动之后,根据数据库中的模块加载插件,所以必须对插件进行判断,并把不属于当前用户的插件从插件注册表中去除。ExtensionRegistry提供了removeExtension方法,但是需要传递一个token,而此令牌来自系统启动时创建,且在此类中是一个private,于是只好先通过反射取得令牌:Object token;
ExtensionRegistry extReg = (ExtensionRegistry) Platform
                .getExtensionRegistry();       
    try {
            Field field = extReg.getClass().getDeclaredField("masterToken");
            field.setAccessible(true);
            token = field.get(extReg);
        } catch (Exception e) {
            return;
        }

然后就可以
  ((ExtensionRegistry) extReg).removeExtension(exts, token);
删除掉指定的插件了。
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值