综合二区_欧美成人综合_欧美成人二区_a黄视频_亚洲视频在线播放_一区二区三区视频免费看

当前位置:首页 > 网站旧栏目 > 学习园地 > 设计软件教程 > Eclipse Action 深入学习笔记(2)

Eclipse Action 深入学习笔记(2)
2010-01-14 23:11:04  作者:  来源:

Object Action
这种Action是跟弹出的上下文菜单相关的, 因此它主要用在org.eclipse.ui.popupMenus扩展点下的objectContribution 节点中, 这里有几个属性需要做一下说明:
adaptable:true表示能将选中对象适配为objectClass中指定的类型
nameFilter:这个是用来指定哪种文件类型为当前contribution可用, 比如设置为*.java表示当前action只针对java文件
objectClass:指定contribution只用于那种对象类型
contribution的其他属性跟前面介绍的大同小异

对contribition过滤和可用性的控制
只有当前选中的文件类型是nameFilter指定的类型, 或者选中的对象是objectClass指定的类型,contribution才会在右键菜单中出现,而是否可用则要通过判断选中的对象是否和enablesFor属性中表达式规定的数量, 表达式的定义包括:!表示选中0个, ?表示0个或1个, +表示1个或多个, multiple, 2+两个或多个, n表示具体个数, *表示任意个

objectContribution还提供visibility节点来控制contribution可见性, 它比通过nameFilter 和objectClass控制功能更强, 比如要达到和objectClass="org.eclipse.core.resources.IResource"同样的效果可以这样写:

xml 代码
 
  1. <objectContribution ...   
  2.   <visibility>  
  3.       <objectClass  
  4.          name="org.eclipse.core.resources.IResource"/>  
  5.   visibility>  
  6.    ...the other stuff here...   
  7. objectContribution>  

如果当前contribution只用于可写的对象,可以这样写:

xml 代码
 
  1. <objectContribution ...>  
  2.    <visibility>  
  3.       <and>  
  4.          <objectClass  
  5.             name="org.eclipse.core.resources.IResource"/>  
  6.          <objectState name="readOnly" value="false"/>  
  7.       and>  
  8.     visibility>  
  9.    ... the other stuff here ...   
  10. objectContribution>  

visibility包括了not, and和or逻辑表达式节点以及adapt等Boolean表达式节点, adapt节点会先将选中对象适配为指定类型然后给其下级节点使用,比如这里:

xml 代码
 
  1. <adapt type="org.eclipse.core.resources.IResource">  
  2.    <objectState name="readOnly" value="false"/>  
  3. adapt>  


首先适配成IResource,然后判断其状态,该节点通常和and操作符结合使用, 如果适配器或者引用的类型没有加载,那么将返回EvaluationResult.NOT_LOADED, 如果指定的类型不存在,将抛出ExpressionException 异常
and节点只有下级子节点表达式都返回true才为true
instanceof节点 只有选中的对象是指定的名称时才为true, 和objectClass不同之处在于,它还可以与其他的元素通过and和or元素一起使用
not节点只有在下级节点返回false才为true
objectClass看上面的例子就知道了
objectState 比较选中的对象的状态是否指定的值
or节点只要下级节点中有一个为true就返回为true
pluginState节点对指定的插件的状态进行检测, 这里的状态有两种:installed或者actived, 比如这样写:

xml 代码
 
  1. <pluginState id="org.eclipse.pde" value="installed"/>   


表示只有org.eclipse.pde插件安装才可见
systemProperty 举个例子就知道怎么用了

xml 代码
 
  1. <systemProperty name="user.language" value="en"/>  


systemTest 跟systemProperty大同小异,只不过它可以通过and和or与其他的节点联合使用
test节点举个例子来说吧:

xml 代码
 
  1. <test  
  2.     property="org.eclipse.debug.ui.projectNature"  
  3.     value="org.eclipse.jdt.core.javanature"/>  


表示只有选中的是java项目下的对象当前contribution才可见, 如果进行比较的property没有加载,将返回EvaluationResult.NOT_LOADED, 这里指定的进行比较的属性能通过使用org.eclipse.core.expressions.propertyTesters进行扩展,具体的实现可参考org.eclipse.debug.internal.ui.ResourceExtender类


安徽新华电脑学校专业职业规划师为你提供更多帮助【在线咨询
相关热词搜索:笔记 学习
主站蜘蛛池模板: 免费成人在线播放 | 91国内视频在线 | 国产精品日韩一区二区 | 91免费观看视频网站 | 天天干夜夜爱 | 国产成人免费在线视频 | 亚洲美女在线一区 | 999精品视频一区二区三区 | 97操碰| 国产日韩一区二区在线 | 久草色香蕉| 91啦在线观看 | 911影院在线观看网站 | 91视频在线观看 | 91免费在线视频观看 | 国产性久久久 | 久久久久久国产精品久久 | 国产成人福利在线观看 | 国产日本视频 | 国产激情91久久精品导航 | av片大全| 51嫩草亚洲精品永久 | 亚洲一区二区三区四区免费观看 | 久久久免费视频网站 | 99热国| 亚洲精品美女视频 | 91视频在线看 | 久久久91av | 国产成人午夜精品影院游乐网 | 国产成人一区在线 | 91视频首页| 国产成人精品亚洲日本在线桃色 | 亚洲天堂一 | 久中文字幕 | 91最新视频在线观看 | 午夜成人免费视频 | 91精品久久久久久久久入口 | 国产精品二区三区 | 亚洲一区二区三区四区免费观看 | 日本女优久久久 | 99久久免费看精品国产一区非洲 |