1.在Eclipse中去掉多余的UI组件的方法是怎样的?
Eclipse的扩展机制是其一个重要特色,但随着Eclipse功能越做越强,插件越来越多,你会发现GUI上的图标越来越多,Menu,toolbar,context menu都被占满了,其实很多item并不是我们需要的,但是contribute这些item的插件我们是需要的,那怎么去掉它们扩展的那些菜单项呢? 1。
在Plugin。xml中定制 这是最简单的办法,很多时候我们自己想写代码来去掉一些菜单项,但效果并不好。
所以能在Plugin。xml中定制的,我们就 尽量写在plugin。
xml里面。下面举一个右键菜单的例子: 扩展右键菜单需要扩展org。
eclipse。ui。
popupMenus扩展点,我们一般都在它下面new一个action,但这个action扩展之后不管在 任何界面都会出现,如果我们想在某些条件下隐藏掉它该怎么办?仔细观察下org。eclipse。
ui。popupMenus扩展点,其实我们还可以新建 objectContribution扩展 class="my。
example。MyAction" id="my。
example。MyAction" label="Exe" menubarPath="additional"> 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设计的太易于扩展了,假如Plugin A在perspective上扩展了一个UI,那么Plugin B在每次进入这个perspective的时候就一定可以看得见它,而且在Eclipse的扩展机制下,Plugin B是没有权利去删了Plugin A的contribution的(Eclipse的ExtensionRegistry倒是提供了一个removeExtension方法,但运行的时候会报错)。 在这样的情况下,Activities的价值就体现出来了,你只要给它一个Extension的id,它就可以帮你把这个Extension disable掉。
例如: id="my。example。
activity" name="WizardActivity"> activityId="my。 example。
activity" pattern="my\。example/mywizard"> 比较重要的是中的pattern属性,它是由plugin id + "/" + local-id组成。
比如在插件my。example中扩展了 org。
eclipse。ui。
newWizards,id是mywizard,那么上面这个就会 disable掉my。example的mywizard扩展,你在 GUI中就看不见这个wizard了。
pattern是支持正则表达式的,所以如果有"。"的话需要用转义字符\。
注意,这里的disable的意思并不是说我把mywizard这个扩展删掉了,而是屏蔽了它,mywizard仍然在 ExtensionRegistry中。 3。
用代码来动态控制UI 方法2只是隐藏掉一些扩展,但是有一些需求并不是简单的隐藏就可以了,我最近碰到的一个需求就是:有一个flag,只有当flag==1的时候扩展是可见的,否则是不可见的,需要disable这个扩展。 这时就必须要加一些代码才能实现了,还是以方法2中的mywizard为例: = PlatformUI。
getWorkbench()。getActivitySupport(); IActivityManager activityManager = 。
getActivityManager(); Set enabledActivityIds = new HashSet(activityManager。getEnabledActivityIds()); if(flag==1) { if (enabledActivityIds。
add("my。example。
activity")) 。setEnabledActivityIds(enabledActivityIds); } else{ if(enabledActivityIds。
remove("my。example。
activity")) 。setEnabledActivityIds(enabledActivityIds); } Activities可以是enable或者disable的,当你在plugin。
xml中定义好了一个Activity,缺省它是disable的,就是说 匹配的扩展是会被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隐藏。 以上是我对于这个问题的解答,希望能够帮到大家。
2.windows.old文件没删除 win10怎么没有回退win7这一项 还没1个月
Win7/Win8。
1升级Win10正式版是最近的一大热点。在很多用户纷纷加入到Windows10之后,难免会有用户因为各种原因需要降级到原来的Windows7/Windows 8。
1系统。按照一般思路,若想降级到低版本操作系统,基本上就是“简单粗暴”的格式化重装这一种方式。
但在Win10时代, 由于大量用户是从Win7/Win8。1升级而来,因此微软为这部分用户提供了更加人性化的降级选项:系统回退。
但需要注意的是,这项“后悔药”功能是有“保质期”的:成功升级到Win10后的一个月内可以使用,过期不候。 也就是说如果你在一个月后反悔,就只能沿用之前传统的“简单粗暴”方式进行格式化重装了。
另外还需要提醒各位注意的是,成功升级Win10后如果想反悔的话,之前Win7/Win8。1保留的系统文件夹Windows。
old绝对不能删除。因为这是“后悔药”的根本所在,一旦你在一个月内想回退到低版本的Windows,就首先要保证原有操作系统文件实际存在。
该文件夹被删除后,也同样只能通过格式化重装的方式来降级Win10了。 如果你符合上述两个可以降级Win10的基本条件: ①在一个月内 ②没有删除Windows。
old文件夹 那么你就可以通过Win10自带的“回退”功能实现“和平降级”。 具体方法如下(回退Win7/Win8。
1操作相同,本文以回退Win7为例): 1、打开设置→更新和安全→恢复,找到“回退到Windows7(或Windows 8。1)”,点击“开始”。
2、选择“回退”理由(可多选),然后点击“下一步”继续(以下每一步随时都可以取消“回退”操作)。 3、仔细阅读注意事项,全过程需要有稳定电源支持,也就是说笔记本和平板电脑需要在接入电源线的状态下进行回退操作,电池模式不被允许;另外,系统还提示了一些关于文件和程序可能受到的影响。
了解并采取措施之后,点击“下一步”继续。 4、对于已经设定登录密码的用户,回退后密码将被恢复,因此你需要知道该密码才能正常登录。
确认该消息不会影响到你的使用后,点击“下一步”继续。 5、需要确认的最后一步,提醒Win7/Win8。
1用户可以随时再次升级到Win10。今后免费安装Win10将不再受到“正式版发布1年内”的时间限制,也不受安装方式的限制,纯净安装也将完全免费。
6、点击“回退到Windows7(或Windows 8。 1)”后,系统自动重启,并开始回退过程,该过程耗费时间和原系统软件安装等使用情况有直接关系。
回退后的Win7/Win8。1系统仍然保持激活状态。
转载请注明出处windows之家 » win10如何删除eclipse