[Eclipse]GEF入门系列(九、增加易用性) - 编程入门网
nfigureGraphicalViewer() {
super.configureGraphicalViewer();
ScalableFreeformRootEditPart root = new ScalableFreeformRootEditPart();
getGraphicalViewer().setRootEditPart(root);
getGraphicalViewer().setEditPartFactory(new PartFactory());
action = new ZoomInAction(root.getZoomManager());
getActionRegistry().registerAction(action);
getSite().getKeyBindingService().registerAction(action);
action = new ZoomOutAction(root.getZoomManager());
getActionRegistry().registerAction(action);
getSite().getKeyBindingService().registerAction(action);
}
假设我们想把这两个命令添加到主工具条上,在DiagramActionBarContributor里应该做 两件事:在 buildActions()里构造对应的RetargetAction,然后在contributeToToolBar() 里添加它们到工具条(原理请参考前面关于菜单和工具条的 帖子):
请注意,在contributeToToolBar()方法里我们额外添加了一个 ZoomComboContributionItem 的实例,这个类也是GEF提供的,它的作用是显示一个缩放百分 比的下拉框,用户可以选择或输入想要的数值。为了让这个下拉框能与编辑器联系在一起, 我们要修改一下编辑器的getAdapter()方法,增加对它的支持:
[Eclipse]GEF入门系列(九、增加易用性)(3)时间:2011-04-19 cnblogs bjzhanghao现在,打开编辑器后主工具条中将出现下图所示的两个按钮和一个下拉框: 图2 缩放工具条 有时候我们想让程序把用户当前的缩放值记录下来,以便下次打开时显示同样的比例。这 就须要在画布模型里增加一个zoom变量,在编辑器的初始化过程中增加下面的语句,其中 diagram是我们的画布实例:
在保存模型前得到当前的缩放比例放在画布模型里一起保存:
辅助网格 你可能用过一些这样的应用程序,画布里可以显示一个灰色的网格帮助定位你的图形元素 ,当被拖动的节点接近网格线条时会被"吸附"到网格上,这样可以很容易的把画布上的图形 元素排列整齐,GEF 3.0里就提供了显示这种辅助网格的功能。 图3 辅助编辑网格 是否显示网格以及是否打开吸附功能是由GraphicalViewer的两个布尔类型的属性 (property)值决定的,它们分别是 SnapToGrid.PROPERTY_GRID_VISIBLE和 SnapToGrid.PROPERTY_GRID_ENABLED,这些属性是通过GriaphicalViewer.getProperty()和 setProperty()方法来操作的。GEF为我们提供了一个 ToggleGridAction用来同时切换它们的 值(保持这两个值同步确实符合一般使用习惯), |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |