首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 开源软件 >

扩张点中的表达式总结

2012-06-27 
扩展点中的表达式总结本文来自:http://www.ceclipse.org/read-cec-tid-28291.html?在扩展点中,我们进场能

扩展点中的表达式总结

本文来自:http://www.ceclipse.org/read-cec-tid-28291.html

?

在扩展点中,我们进场能够看到一些表达式:

?

?

?只有选中的对象是文件,而且名称符合*.html才会返回true。?

?

?

?

or

与not功能相类似,and是将所有的子结点结果进行与运算

?

?那么该配置只有当前JVM的默认编码为GB2312(即中文时),才会返回true.?

?

?

iterate

iterate是一个非常少用的属性,它主要用来处理java.util.Collection中子元素的内容。它会逐渐遍历集合的所有子元素,然后再将每个子元素放入子表达式中进行计算,其实operator有or和and两种可选,是用来支持子表达的或运算和与运算,与前面的or和and相似。

?

?

?这个属性虽然用的少,但是却不可少,以资源管理器为例,当一个工作区没有任何项目的时候,那么对应的size就为0,如果需要在这种情况出现一个菜单,那么就肯定需要这样一个表达式才能正确的处理。?

?

?

with

通过variable属性取得选中对象的相应数据,比如通过选中对象的getAffectedProjects方法得到一个java.util.Collection对象,再通过iterate和test来进行表达式处理。

?

?

?

resolve

它和with属性基本一致,但是它多了一个args属性,从而有更高的灵活性,其它方面与with并无区别。

?

?

?

adapt

adapter是Eclipse架构的根本所在,它不仅仅解决了上下文环境的问题,对系统的扩展和灵活性都是一个非常好的解决方案,因此在表达式中也充分的利用这个特点。它可以将待处理的对象转换成指定的对象,这样也会有效的增加表达式的灵活性。

?

?

它表示会先将指定的对象通过adapter方式转成一个IResource的实例,如果转换成功,再判断其扩展名是否为datasetx,如果转换不成功,也会返回false。

?

?

test
以上提供了很多功能,但是可能对于开发人员,并不能完全满足他们相应的需求。所以Expression插件提供了test结点,这个结点允许用户通过一个扩展点来定义各种新的表达式处理功能,象org.eclipse.core.resources就提供了对扩展名等一系列的支持。在以后的文章将会详细的描述如何进行扩展。

?

?

这个例子会调用,org.eclipse.core.internal.propertytester.ResourcePropertyTester类来处理数据,从而获得更高的灵活性

?

注意:org.eclipse.core.resources.extension中的org.eclipse.core.resources是

org.eclipse.core.expressions.propertyTesters扩展中的命名空间,extension才是定义的属性。

?

?

最后关于test 的使用,涉及到另一个扩展点,org.eclipse.core.expressions.propertyTesters,自己定义的property

必须扩展一个PropertyTester来判断合法性。关于org.eclipse.core.expressions.propertyTesters扩展,

参考:http://salever.iteye.com/blog/944824

热点排行