随笔分类 -  Eclipse

Where did Eclipse come from?

Eclipse started out as proprietary technology, led by IBM’s subsidiary, Object Technology International (OTI). IBM wanted to reduce the large number of incompatible development environments being offered to its customers and to increase the reuse of the common components in those environments. By using the same common framework, development teams could leverage one another’s components, integrate to a high degree, and allow developers to roam among projects. ...

摘要:在目前的GEF版本(3.1M6)里,可用的LayoutManager还不是很多,在新闻组里经常会看到要求增加更多布局的帖子,有人也提供了自己的实现,例如这个GridLayout,相当于SWT中GridLayout的Draw2D实现,等等。虽然可以肯定GEF的未来版本里会增加更多的布局供开发者使用(可能需要很长时间),然而目前要用GEF实现表格的操作还没有很直接的办法,这里说说我的做法,仅供参考。 阅读全文
posted @ 2005-05-20 10:14 八进制 阅读(14885) 评论(60) 推荐(1) 编辑
摘要:Eclipse的发展真是势不可当,3.1正式版本就快要发布了,这里是一份详细时间表,顺利的话3.1将在六月底七月初发布。 阅读全文
posted @ 2005-05-09 23:21 八进制 阅读(2718) 评论(2) 推荐(0) 编辑
摘要:howj朋友写的在GEF中利用系统剪贴板实现Copy/Paste功能的文章:http://howj.51.net/works/article-enable-ccp-in-gef.html 阅读全文
posted @ 2005-05-06 19:04 八进制 阅读(2808) 评论(7) 推荐(0) 编辑
摘要:当一个GEF应用程序实现了大部分必需的业务功能后,为了能让用户使用得更方便,我们应该在易用性方面做些考虑。从3.0版本开始,GEF增加了更多这方面的新特性,开发人员很容易利用它们来改善自己的应用程序界面。这篇帖子将介绍主要的几个功能,它们有些在GEF 2.1中就出现了,但因为都是关于易用性的而且以前没有提到,所以放在这里一起来说。(下载示例代码) 阅读全文
posted @ 2005-04-21 11:21 八进制 阅读(18095) 评论(112) 推荐(0) 编辑
摘要:前几天把GEF版本从3.0.1升级到了3.1M6,发现以前运行正常的GEF程序现在总出现下面这个异常,例如在我移动一个节点时,或者创建一个新节点时。java.lang.IllegalAccessError: tried to access method org.eclipse.ui.views.properties.PropertySheetEntry.refreshFromRoot()V from class org.eclipse.gef.ui.properties.UndoablePropertySheetEntry 阅读全文
posted @ 2005-04-19 23:25 八进制 阅读(3025) 评论(0) 推荐(0) 编辑
摘要:GEF的设计没有对模型部分做任何限制,也就是说,我们可以任意构造自己的模型,唯一须要保证的就是模型具有某种消息机制,以便在发生变化时能够通知GEF(通过EditPart)。在以前的几个例子里,我们都是利用java.beans包中的PropertyChangeSupport和PropertyChangeListener来实现消息机制的,这里将介绍一下如何让GEF利用EMF构造的模型(下载例子,可编辑.emfsubject文件,请对比之前功能相同的非EMF例子),假设你对EMF是什么已经有所了解。 阅读全文
posted @ 2005-04-15 18:13 八进制 阅读(17861) 评论(43) 推荐(0) 编辑
摘要:在Eclipse里实现偏好页(PreferencePages)时,我们一般要在Plugin类的start()方法里预先设置好每一项的缺省值,但IPreferenceStore接口只提供了参数为整型、布尔型、字符串等基本类型的setDefault()方法,如果某个偏好项是颜色类型怎么办呢? 阅读全文
posted @ 2005-04-12 14:00 八进制 阅读(2662) 评论(0) 推荐(0) 编辑
摘要:前面的帖子里曾说过如何使用布局,当时主要集中在ToolbarLayout和FlowLayout(统称OrderedLayout),还有很多应用程序使用的是可以自由拖动子图形的布局,在GEF里称为XYLayout,而且这样的应用多半会需要在图形之间建立一些连接线,比如下图所示的情景。连接的出现在一定程度上增加了模型的复杂度,连接线的刷新也是GEF关注的一个问题,这里就主要讨论这类应用的实现,并将特别讨论一下展开/折叠(expand/collapse)功能的实现。请点这里下载本篇示例代码。 阅读全文
posted @ 2005-04-11 15:16 八进制 阅读(14053) 评论(59) 推荐(1) 编辑
摘要:使用Eclipse一年多了,一直都是把所有插件直接安装在plugins和features目录下,虽然目录变得比较乱但也不怎么影响使用。最近因为工作需要,经常更换Eclipse和一些插件的版本,我发现每新装一个Eclipse就要花不少时间来装那几个常用插件,印象里有一种方法可以让插件以链接的方式存在,就在网上查了一下,请看这篇文章,讲得很明白。 阅读全文
posted @ 2005-04-07 15:27 八进制 阅读(14208) 评论(21) 推荐(0) 编辑
摘要:EMF(Eclipse Modeling Framework)对我来说一直很神秘。首先,这个名字就不是很清楚,因为现在是个东西都可以叫Framework。另外,在我看来,EMF是一个可以从模型生成代码的工具,这应该是它的主要功能,但似乎这个功能又是通过别的部件(Jet)实现的,那么EMF的核心在哪里,开发团队都在思考和处理哪些问题呢? 阅读全文
posted @ 2005-03-31 22:48 八进制 阅读(7298) 评论(12) 推荐(1) 编辑
摘要:我发现一旦稍稍体会到GEF的妙处,就会很自然的被它吸引住。不仅是因为用它做出的图形界面好看,更重要的是,UI中最复杂和细微的问题,在GEF的设计中无不被周到的考虑并以适当的模式解决,当你了解了这些,完全可以把这些解决方法加以转换,用来解决其他领域的设计问题。去年黄老大在一个GEF项目结束后,仍然没有放弃对它的继续研究,现在甚至利用业余时间开发了基于GEF的SWT/JFace增强软件包,Eclipse和GEF的魅力可见一斑。我相信在未来的两年里,由于RCP/GEF等技术的成熟,Java Standalone应用程序必将有所发展,在B/S模式难以实现的那部分领域里扮演重要的角色。 阅读全文
posted @ 2005-03-30 17:25 八进制 阅读(23148) 评论(84) 推荐(2) 编辑
摘要:以前只做过两种类型的GEF程序,一种是画布使用XYLayout,子图形可以在上面随意改变大小和位置;另一种是画布使用非XYLayout的布局,子图形的大小和位置由布局决定,用户不能用鼠标拖动的方式改变。现在这个项目有点特殊,因为要实现类似“表格”的功能,所以要求画布使用ToolbarLayout排列表格列,但列的高度要能够改变。 阅读全文
posted @ 2005-03-29 17:59 八进制 阅读(3446) 评论(5) 推荐(0) 编辑
摘要:虽然很多GEF应用程序里都会用到连接(Connection),但也有一些应用是不需要用连接来表达关系的,我们目前正在做的这个项目就是这样一个例子。在这类应用中,模型对象间的关系主要通过图形的包含来表达,所以大多是一对多关系。本文结合具体实例讲解了如何在GEF中使用ToolbarLayout以及自定义简单的布局管理器。 阅读全文
posted @ 2005-03-24 00:23 八进制 阅读(15923) 评论(62) 推荐(0) 编辑
摘要:关于Eclipse RCP的两个小问题和解决方法:使用Resource Navigator和以application方式启动 阅读全文
posted @ 2005-03-16 11:43 八进制 阅读(18482) 评论(28) 推荐(0) 编辑
摘要:这篇帖子将继续上一篇内容,主要讨论如何实现DirectEdit、属性页和大纲视图,这些都是一个完整GEF应用程序需要提供的基本功能。写这篇帖子的时候,我对例子又做了一些修改,都是和这篇帖子所说的内容相关的,所以如果你以前下载过,会发现那时的代码与现在稍有不同(功能还是完全一样的)。 阅读全文
posted @ 2005-03-15 12:31 八进制 阅读(20927) 评论(79) 推荐(0) 编辑
摘要:RCP应用程序的缺省外观是一个空白窗口,一般我们要通过一个WorkbenchAdvisor类对界面进行定制。WorkbenchAdvisor有很多回调方法,可以在preWindowOpen()方法里设置菜单、工具条、状态栏、进度栏、透视图切换工具是否可见,在fillActionBars()方法里添加菜单和工具条项,在getInitialWindowPerspectiveId()方法里指定首选的透视图。 阅读全文
posted @ 2005-03-02 17:23 八进制 阅读(12356) 评论(19) 推荐(1) 编辑
摘要:现在我们来看个例子,它的功能非常简单,用户可以在画布上增加节点(Node)和节点间的连接,可以直接编辑节点的名称以及改变节点的位置,用户可以撤消/重做任何操作,有一个树状的大纲视图和一个属性页。 阅读全文
posted @ 2005-02-19 13:57 八进制 阅读(58088) 评论(280) 推荐(7) 编辑
摘要:GEF的优势是提供了标准的MVC(Model-View-Control)结构,开发人员可以利用GEF来完成以上这些功能,而不需要自己重新设计。与其他一些MVC编辑框架相比,GEF的一个主要设计目标是尽量减少模型和视图之间的依赖,好处是可以根据需要选择任意模型和视图的组合,而不必受开发框架的局限(不过实际上还是很少有脱离Draw2D的实现)。 阅读全文
posted @ 2005-02-13 15:21 八进制 阅读(30224) 评论(19) 推荐(1) 编辑
摘要:鸡年第一天,首先向大家拜个年,恭祝新春快乐,万事如意。一年之计在于春,你对新的一年有什么安排呢?好的,下面还是进入正题吧。 关于Java2D相信大家都不会陌生,它是基于AWT/Swing的二维图形处理包, JDK附带的示例程序向我们展示了Java2D十分强大的图形处理能力。在Draw2D出现以前,SWT应用程序在这方面一直处于下风,而Draw2D这个SWT世界里的Java2D改变了这种形势。 阅读全文
posted @ 2005-02-09 21:49 八进制 阅读(37360) 评论(52) 推荐(3) 编辑
摘要:由于工作的需要,最近开始研究GEF(Graphical Edit Framework)这个框架,它可以用来给用户提供图形化编辑模型的功能,从而提升用户体验,典型的应用如图形化的流程设计器、UML类图编辑器等等。其实一年多来我们做的项目都是和它有关的,只是之前我具体负责的事情和它没什么关系。那时也看过黄老大写的代码,EMF和GEF混在一起特别晕,没能坚持看下去。这次自己要动手做了,正好趁此机会把它搞明白,感觉GEF做出来的东西给人很专业的感觉,功能也很强大,应该挺有前途的。此外,GEF里用到了很多经典模式,最突出的如大量应用Command模式,方便的实现Undo/Redo功能等等,通过学习GEF,等于演练了这些模式,比只是看看书写几个类那种学习方式的效果好很多。 阅读全文
posted @ 2005-02-05 17:17 八进制 阅读(49753) 评论(80) 推荐(2) 编辑

博客已搬家:bjzhanghao.com