现在的位置: 首页 > 综合 > 正文

eclipse RCP启动修改

2013年10月06日 ⁄ 综合 ⁄ 共 683字 ⁄ 字号 评论关闭
  因项目需要,需要在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);
删除掉指定的插件了。

抱歉!评论已关闭.