仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 457|回复: 9
打印 上一主题 下一主题

[学习教程] 发布一篇在Eclipse中往失落过剩的UI组件的几个办法

[复制链接]
小妖女 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:19:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
java主要分三块,j2se:java的基础核心语言。j2me:java的微型模块,专门针对内存小,没有持续电源等小型设备。j2ee:java的企业模块,专门针对企业数据库服务器的连接维护。
Eclipse的扩大机制是其一个主要特征,但跟着Eclipse功效越做越强,插件愈来愈多,你会发明GUI上的图标愈来愈多,Menu,toolbar,contextmenu都被占满了,实在良多item并非我们必要的,可是contribute这些item的插件我们是必要的,那怎样往失落它们扩大的那些菜单项呢?
1.在Plugin.xml中定制
这是最复杂的举措,良多时分我们本人想写代码往复失落一些菜单项,但效果其实不好.以是能在Plugin.xml中定制的,我们就 只管写在plugin.xml内里.上面举一个右键菜单的例子:
扩大右键菜单必要扩大org.eclipse.ui.popupMenus扩大点,我们一样平常都在它上面new一个action,但这个action扩大以后不论在 任何界面城市呈现,假如我们想在某些前提下埋没失落它该怎样办?细心察看下org.eclipse.ui.popupMenus扩大点,实在我们还能够新建objectContribution扩大
<extensionpoint="org.eclipse.ui.popupMenus">
   <objectContribution
            id="my.example.objectContribution"
            nameFilter="*example*"
            objectClass="java.io.File">
         <action
               class="my.example.MyAction"
               id="my.example.MyAction"
               label="Exe"
               menubarPath="additional">
         </action>
      </objectContribution>
    </extension>
objectContribution内里也包括一个action,但这个action在popupmenu里呈现是有前提的:我们给它界说了一个nameFilter, 只要当selection()的path中包括了"example"才会显现,不然这个action是不会呈现在 popupmenu里的.这里的selection假定选中的是一个File,假如选中的是你本人写的类,那namefilter会在你的类的toString办法内里找keyword.
2.利用Eclipse的Activities扩大
plugin.xml其实不能办理一切成绩,当我们其实没有举措在plugin.xml中限定某些extension的呈现的时分,能够思索利用Eclipse的Activities.Activities的官方界说人人能够google一下eclipse的help.我团体的了解就是它能够和perspective一样把持UI的显现,可是Perspective计划的太易于扩大了,假设PluginA在perspective上扩大了一个UI,那末PluginB在每次进进这个perspective的时分就必定能够看得见它,并且在Eclipse的扩大机制下,PluginB是没有权力往删了PluginA的contribution的(Eclipse的ExtensionRegistry却是供应了一个removeExtension办法,但运转的时分会报错).在如许的情形下,Activities的代价就表现出来了,你只需给它一个Extension的id,它就能够帮你把这个Extensiondisable失落.比方:
<extension
         point="org.eclipse.ui.activities">
      <activity
            id="my.example.activity"
            name="WizardActivity">
      </activity>
      <activityPatternBinding
            activityId="my.example.activity"
            pattern="my.example/mywizard">
      </activityPatternBinding>
 </extension>
对照主要的是activityPatternBinding中的pattern属性,它是由pluginid+"/"+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大概用代码都能够设置),它婚配的扩大是能够一般利用的.
在下面的codesample中,我们经由过程activityManager.getEnabledActivityIds()失掉一切enable的Activities.假如flag==1,那my.example.activity 也应当被到场到enableActivities中,如许mywizard就能够显现在界面上,反之,就要在enableActivities中remove失落my.example.activity,它就酿成
disable,会把mywizard埋没.

但是我同意你的观点,对于大型项目来说,应该是采用框架的一部分,根据功能的不同而改进,欢迎你能再提出些宝贵意见,我会多多学习的。说到jbuilder,我可能是个人感觉,用的时候确实没有vs爽,我最喜欢的IDE是net网页编程beans,谢谢。
再见西城 该用户已被删除
沙发
发表于 2015-1-20 20:30:33 | 只看该作者
一直感觉JAVA很大,很杂,找不到学习方向,前两天在网上找到了这篇文章,感觉不错,给没有方向的我指了一个方向,先不管对不对,做下来再说。
只想知道 该用户已被删除
板凳
发表于 2015-1-22 07:50:22 | 只看该作者
你现在最缺的是实际的工作经验,而不是书本上那些凭空想出来的程序。
莫相离 该用户已被删除
地板
发表于 2015-1-30 23:53:22 | 只看该作者
一直感觉JAVA很大,很杂,找不到学习方向,前两天在网上找到了这篇文章,感觉不错,给没有方向的我指了一个方向,先不管对不对,做下来再说。
愤怒的大鸟 该用户已被删除
5#
发表于 2015-2-2 22:29:11 | 只看该作者
不过,每次的执行编译后的字节码需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的运行效率。
活着的死人 该用户已被删除
6#
发表于 2015-2-8 14:43:42 | 只看该作者
如果要向java web方向发展也要吧看看《Java web从入门到精通》学完再到《Struts2.0入门到精通》这样你差不多就把代码给学完了。有兴趣可以看一些设计模块和框架的包等等。
冷月葬花魂 该用户已被删除
7#
发表于 2015-2-22 22:37:28 | 只看该作者
Java是一个纯的面向对象的程序设计语言,它继承了 C++语言面向对象技术的核心。Java舍弃了C ++语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading)
小魔女 该用户已被删除
8#
发表于 2015-3-6 19:28:17 | 只看该作者
不过,每次的执行编译后的字节码需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的运行效率。
admin 该用户已被删除
9#
发表于 2015-3-13 06:19:52 | 只看该作者
一直感觉JAVA很大,很杂,找不到学习方向,前两天在网上找到了这篇文章,感觉不错,给没有方向的我指了一个方向,先不管对不对,做下来再说。
兰色精灵 该用户已被删除
10#
发表于 2015-3-20 15:06:30 | 只看该作者
是一种使网页(Web Page)产生生动活泼画面的语言
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-11-15 05:30

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表