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

GEF 框架中的设计模式

 2010-06-07 00:00:00 来源:WEB开发网   
核心提示: deactivationListener 是 EditPartListener.Stub 类型的实例,用来观察源 EditPart 的状态,GEF 框架中的设计模式(5),当源 EditPart 的状态由激活变为非激活时,及时通知工具 ConnectionCreationTool 做出停止创建连

deactivationListener 是 EditPartListener.Stub 类型的实例,用来观察源 EditPart 的状态。当源 EditPart 的状态由激活变为非激活时,及时通知工具 ConnectionCreationTool 做出停止创建连接的工作。

清单 2. AbstractEditPart 类中部分代码

 package org.eclipse.gef.editparts; 
 
 public abstract class AbstractEditPart 
 implements EditPart, RequestConstants, IAdaptable { 
  ... ... 
 
  protected void fireDeactivated() { 
 Iterator listeners = getEventListeners(EditPartListener.class); 
 while (listeners.hasNext()) 
   ((EditPartListener)listeners.next()). 
  partDeactivated(this); 
  } 
 
  /** 
   * Adds an EditPartListener. 
   * @param listener the listener 
   */ 
  public void addEditPartListener(EditPartListener listener) { 
 eventListeners.addListener(EditPartListener.class, listener); 
  } 
 
  public void removeEditPartListener(EditPartListener listener) { 
 eventListeners.removeListener(EditPartListener.class, listener); 
  } 
 } 

在这个过程中,EditPart 成为被观察的目标,提供了注册和删除观察者对象的接口。EditPartListener.Stub 类型的实例 deactivationListener 扮演了观察者的角色,在目标 EditPart 的状态变成非激活时,获取更新并通知 ConnectionCreationTool 取消连接的创建。

上一页  1 2 3 4 5 6 7 8 9  下一页

Tags:GEF 框架 设计模式

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