Feeling

    三人行,必有我师焉

   ::  :: 新随笔 :: 联系 ::  :: 管理 ::
  185 随笔 :: 0 文章 :: 392 评论 :: 0 Trackbacks

Eclipse 3.2的What's new 正式推出了“The Eclipse Tabbed Properties View”,这个东西以前就是IBM的一个内部项目,最近由于WTP的缘故给开放了出来。有的时候不得不佩服IBM的创意和能力,人多就是力量大。3.2推出了很多新的Feature,都颇有亮点。不知道IBM为这些新的Feature投入了多少人力物力。

Eclipse Tabbed Properties View实际上是对传统的PropertySheet的一个替换,在Eclipse3.2的new feature中,可以看到一个共同点,那就是界面变得花梢了,Eclipse Tabbed Properties View也是如此。Tab标签和UI-Form的结合,界面显得更加清爽。所有的Property都可以自定义编辑界面,重用性也得到了提高,另外还有完美的MVC架构。

实际上Eclipse Tabbed Properties View的代码我并不会感到陌生,我手头上的项目关于Property上的架构和它基本一致,都是Element,setInput,createContent,refresh这一套逻辑。不过这段逻辑不是我写的,不知道是是谁从IBM抄来的,当时抄的是GEF的架构,说是为了保持架构的一致,实际上非常冗余,挖了无数的坑。现在这个Tabbed Properties View走的还是一样的套路,由此可见IBM内部项目的架构应当非常一致。

Eclipse官方提供了一篇关于Tabbed Properties View的文章:
http://www.eclipse.org/articles/ Article-Tabbed-Properties/tabbed_properties_view.html ,里面的介绍还算详细。我这儿只说一些它没有提到的东西。

Tabbed Properties View 的Tab以及Section都定义在Plugin.xml中,这里包含了一个依赖关系,Section依赖于input object,而Tab依赖于Section,于是当我们选中一个element的时候,系统会判断哪些Section的input object和这个element类型一致。这些Section将会被Property Page加载,每个Section都对应一个Tab,这个Tab会在Section创建之前先创建出来。当Section创建完毕之后,会进行setInput操作,将Model传给Section,最后在refresh的时候,给Section赋值。

另外一点,一个Section可以对应多个input,这样不同的input object可以采用同一个Section,提高了系统的可重用性。

不足的地方是Section的enablefor属性过于简单,对上下文支持不够,只能把上下文写在Section的逻辑里面了。
 

posted on 2006-07-04 17:16 三人行,必有我师焉 阅读(2253) 评论(3)  编辑  收藏

评论

# re: The Eclipse Tabbed Properties View 2007-12-19 20:50 jerry.xu
最近一直在做和gef相关的工作,目前,想使用上面提到过的扩展点做模型的属性页。可是对于如何把属性页中的变化通知给模型,还没搞清楚,能不能给些提示。对了,这种form型的属性页已经被模型监听了。能发到下面
邮箱:huanxu20011572@yahoo.com.cn
不胜感谢!
  回复  更多评论
  

# re: The Eclipse Tabbed Properties View 2007-12-21 08:35 jerry.xu
已经解决了  回复  更多评论
  

# re: The Eclipse Tabbed Properties View 2009-07-08 14:22 Highnoon
@jerry.xu
怎么解决的? 模型监听属性页ISelectChangeListener ??/  回复  更多评论
  


只有注册用户登录后才能发表评论。


网站导航:
 
GitHub |  开源中国社区 |  maven仓库 |  文件格式转换