WEB开发网
开发学院软件开发Java 了解 Eclipse 中的 JFace 数据绑定,第 3 部分: 使... 阅读

了解 Eclipse 中的 JFace 数据绑定,第 3 部分: 使用高级功能

 2009-12-14 00:00:00 来源:WEB开发网   
核心提示: 编写可测试的 Presentation Model:业务逻辑现在已经有了针对 ContactPresentationModel 期望的业务逻辑的完整测试,可以开始实现功能了,了解 Eclipse 中的 JFace 数据绑定,第 3 部分: 使用高级功能(7),首先,十分有必要查看一个简短类,使其

编写可测试的 Presentation Model:业务逻辑

现在已经有了针对 ContactPresentationModel 期望的业务逻辑的完整测试,可以开始实现功能了。

首先,十分有必要查看一个简短类。该类包含两个属性:contact 和 enableYearsMarried。Contact 对象引用已公开,因此其他类可以根据需要通过 Presentation Model 来访问该对象。将 enableYearsMarried 属性而不是 Contact 对象添加到 Presentation Model 中,因为更改对象的状态和业务逻辑都是绑定到 Contact 编辑操作而不是对象本身。

现在可以修改 ContactPresentationModel 来实现测试中指定的约定。在 Eclipse Java 编辑器中打开类。需要的第一处更改是实现对 enableYearsMarried 属性的属性更改支持,以供将来与 JFace 数据绑定结合使用。这个更改可以通过将其 setter 更改为匹配清单 4 中所示的代码来完成。


清单 4. 支持属性更改的启用状态 setter
public void setEnableYearsMarried(boolean enableYearsMarried) { 
 boolean oldVal = this.enableYearsMarried; 
 this.enableYearsMarried = enableYearsMarried; 
 firePropertyChange("enableYearsMarried", \ 
 oldVal, this.enableYearsMarried); 
} 

接下来,需要重写受损示例的 ModifyListener 中的逻辑,使其对 Contact 对象进行操作,而不是直接对 UI 的小部件进行操作。清单 5 中显示了这个新的属性更改侦听程序。


清单 5. 在 Presentation Model 中实现业务逻辑的新属性更改侦听程序
private class EnablementPropertyChangeListener implements  
 PropertyChangeListener { 
 
 public void propertyChange(PropertyChangeEvent evt) { 
 boolean enable = false; 
 if ((getContact().getName() != null && 
  getContact().getName().trim().length() > 0) && 
  (getContact().getSpouse() != null && 
  getContact().getSpouse().trim().length() > 0)) { 
  enable = true; 
 } else { 
  getContact().setYearsMarried(null); 
 } 
 setEnableYearsMarried(enable); 
 }  
} 

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

Tags:了解 Eclipse JFace

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