快速业务通道

[Eclipse]GEF入门系列(九、增加易用性) - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-17

[Eclipse]GEF入门系列(九、增加易用性)

时间:2011-04-19 cnblogs bjzhanghao

当一个GEF应用程序实现了大部分必需的业务功能后,为了能让用户使用得更方便,我们 应该在易用性方面做些考虑。从3.0版本开始, GEF增加了更多这方面的新特性,开发人员很 容易利用它们来改善自己的应用程序界面。这篇帖子将介绍主要的几个功能,它们有些在GEF 2.1中就出现了,但因为都是关于易用性的而且以前没有提到,所以放在这里一起来说。

可折叠调色板

在以前的例子里,我们的编辑器都继承自GraphicalEditorWithPalette。GEF 3.0提供了 一个功能更加丰富的编辑器父类:GraphicalEditorWithFlyoutPalette,继承它的编辑器具 有一个可以折叠的工具条,并且能够利用Eclipse自带的调色板视图,当调色板视图显示时, 工具条会自动转移到这个视图中。

[Eclipse]GEF入门系列(九、增加易用性) - 编程入门网

图1 可折叠和配置的调色板

与以前的GraphicalEditorWithPalette相比,继承 GraphicalEditorWithFlyoutPalette 的编辑器要多做一些工作。首先要实现getPalettePreferences() 方法,它返回一个 FlyoutPreferences实例,作用是把调色板的几个状态信息(位置、大小和是否展开)保存起 来,这样下次打开编辑器的时候就可以自动套用这些设置。下面使用偏好设置的方式保存和 载入这些状态,你也可以使用其他方法,比如保存为.properties文件:

protected FlyoutPreferences getPalettePreferences() { return new FlyoutPreferences() { public int getDockLocation() { return SubjectEditorPlugin.getDefault().getPreferenceStore().getInt (IConstants.PREF_PALETTE_DOCK_LOCATION); } public void setDockLocation(int location) { SubjectEditorPlugin.getDefault().getPreferenceStore().setValue (IConstants.PREF_PALETTE_DOCK_LOCATION,location); } … }; }

然后要覆盖缺省的createPaletteViewerProvider()实现,在这里为调色板增加拖放支持 ,即指定调色板为拖放源(之所以用这样的方式,原因是在编辑器里没有办法得到它对应的 调色板实例),在以前这个工作通常是在initializePaletteViewer ()方法里完成的,而现 在这个方法已经不需要了:

protected PaletteViewerProvider createPaletteViewerProvider() { return new PaletteViewerProvider(getEditDomain()) { protected void configurePaletteViewer(PaletteViewer viewer) { super.configurePaletteViewer(viewer); viewer.addDragSourceListener(new TemplateTransferDragSourceListener (viewer)); } }; }

GEF 3.0还允许用户对调色板里的各种工具进行定制,例如隐藏某个工具,或是修改工具 的描述等等,这是通过给PaletteViewer定义一个 PaletteCustomizer实例实现的,但由于时 间关系,这里暂时不详细介绍了,如果需要这项功能你可以参考Logic例子中的实现方法。

[Eclipse]GEF入门系列(九、增加易用性)(2)

时间:2011-04-19 cnblogs bjzhanghao

缩放

由于Draw2D中的图形都具有天然的缩放功能,因此在GEF里实现缩放功能是很容易的,而 且缩放的效果不错。GEF为我们提供了 ZoomInAction和ZoomOutAction以及对应的 RetargetAction(ZoomInRetargetAction和 ZoomOutRetargetAction),只要在编辑器里构 造它们的实例,然后在编辑器的ActionBarContributer类里将它们添加到想要的菜单或工具 条位置即可。因为ZoomInAction和ZoomOutAction的构造方法要求一个ZoomManager类型的参 数,而后者需要从GEF的RootEditPart中获得(ScalableRootEditPart或 ScalableFreeformRootEditPart),所以最好在编辑器的 configureGraphicalViewer()里构 造这两个Action比较方便,请看下面的代码:

protected void co

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号