WEB开发网
开发学院软件开发Java GEF 框架中的设计模式 阅读

GEF 框架中的设计模式

 2010-06-07 00:00:00 来源:WEB开发网   
核心提示: 需要注意的是,上图关于 Tool 的继承层次部分并不是严格按照 GEF 框架进行描述,GEF 框架中的设计模式(9),本文作者为了描述方便做了某种程度的简化,具体层次请参考 GEF 框架代码,本文作者从事 Eclipse RCP 开发多年,通过这篇文章,示例代码描述了 EditDomain 是如

需要注意的是,上图关于 Tool 的继承层次部分并不是严格按照 GEF 框架进行描述,本文作者为了描述方便做了某种程度的简化。具体层次请参考 GEF 框架代码。

示例代码描述了 EditDomain 是如何将与视图输入相关的请求委托给它的 Tool 实例 activeTool。

清单 5. EditDomain 类中部分代码

 package org.eclipse.gef; 
 
 public class EditDomain { 
  ...... 
 
  private Tool activeTool; 
 
  private void handlePaletteToolChanged() { 
      PaletteViewer paletteViewer = getPaletteViewer(); 
        if (paletteViewer != null) { 
        ToolEntry entry = paletteViewer.getActiveTool(); 
        if (entry != null) 
  setActiveTool(entry.createTool()); 
   else 
  setActiveTool(getDefaultTool()); 
 } 
  } 
 
  public void setActiveTool(Tool tool) { 
 if (activeTool != null) 
  activeTool.deactivate(); 
 activeTool = tool; 
 if (activeTool != null) { 
   activeTool.setEditDomain(this); 
   activeTool.activate(); 
 } 
  } 
 } 

工具会执行某些操作,这些操作可能包括:

要求 editparts 显示或隐藏反馈

从 editparts 获得命令

在命令栈执行命令

更新鼠标光标

后记

GEF 出现的模式远不止我们列出来的这么多。我们只是列出了对 GEF 框架理解有帮助的一些模式。本文作者从事 Eclipse RCP 开发多年,通过这篇文章,希望能将在 GEF 中体会到的一些设计思想与大家分享。

上一页  4 5 6 7 8 9 

Tags:GEF 框架 设计模式

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接