WEB开发网
开发学院软件开发Java 在Eclipse中去掉多余的UI组件的几个方法 阅读

在Eclipse中去掉多余的UI组件的几个方法

 2009-09-24 00:00:00 来源:WEB开发网   
核心提示: 3.用代码来动态控制UI方法2只是隐藏掉一些扩展,但是有一些需求并不是简单的隐藏就可以了,我最近碰到的一个需求就是:有一个flag,只有当flag==1的时候扩展是可见的,否则是不可见的,需要disable这个扩展.这时就必须要加一些代码才能实现了,还是以方法2中的mywizard为例:IWor

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隐藏.

上一页  1 2 3 

Tags:Eclipse 去掉 多余

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接