InfoQ

新闻

JSR 295规范参考实现Beans Binding推出1.0版

作者 Scott Delap译者 Jason Lai 发布于 2007年9月24日 上午9时30分

社区
Java
主题
富客户端/桌面
标签
Swing

Sun公司的Shannon Hickey最近刚刚宣布了Beans Binding框架的1.0版本。该框架是JSR 295规范的参考实现,它试图:

[……]定义一套API,使得一对Java Beans属性之间的连接得到大幅度的简化,并保持属性的同步。属性的连接是可配置的:在更新属性之前,可以进行类型转换和值校验操作。

Shannon表示,针对该JSR的工作仍将继续进行,而且可能导致API发生变化。不过,框架的1.0版确实通过以下的显著特性代表了对Beans Binding API架构的一个主要的重新实现:

  • 属性的概念已经被抽取出来,成为一个抽象的Property类,并且提供了两个有趣的具体实现:BeanPropertyELProperty
  • Binding目前已经成为一个表示两个Property实例之间绑定关系的抽象类(通常关联着两个对象)。
  • 使用自动同步的绑定则通过一个新的AutoBinding子类实现出来。
  • 对复杂Swing组件(例如JTableJListJComboBox)的绑定现在由定制的Binding子类处理。
  • 提供多种可能行为的合成型(synthetic)Swing属性现在是通过属性的多个版本的方式来向外暴露。例如:用于JTextField的“text”、“text_ON_FOCUS_LOST”和“text_ON_ACTION_OR_FOCUS_LOST”;用于JListJTable的“selectedElement”和“selectedElement_IGNORE_ADJUSTING”。
  • 所有的代码都被重新打包,放到org.jdesktop之下。

用于该框架的基本API如下所示:

// Bind Duke's first name to the text property of a Swing JTextField
BeanProperty textP = BeanProperty.create("text");
Binding binding =
Bindings.createAutoBinding(READ_WRITE, duke, firstP, textfield, textP);
binding.bind();

// Bind Duke's mother's first name to the text property of a Swing JTextField,
// specifying that the JTextField's text property only reports change
// (thereby updating the source of the READ_WRITE binding) on focus lost
BeanProperty textP = BeanProperty.create("text_ON_FOCUS_LOST");
Binding binding =
Bindings.createAutoBinding(READ_WRITE, duke, motherFirstP, textfield, textP);
binding.bind();

Beans Binding所面向的是Swing的领域,在过去Swing领域曾经用过类似于JGoodies Binding这样的项目。另外的一个项目则是来自于Eclipse Foundation的JFace Data Binding,它为SWT、JFace和JavaBeans提供了核心的实现。不过这个框架早就为Swing和EMF这样的API留好了未来的扩展余地。

查看英文原文:JSR 295 Beans Binding Hits 1.0

没有回复

回复

深度内容

Flex与JSON及XML的互操作

平台需要互操作性。在这篇文章中,作者仔细研究了Flex和JSON及XML的互操作性。文章也包含了使用E4X库来将XML映射到图表和表格组件的内容,还演示了如何使用as3core库来解码JSON消息。

用Qi4j进行面向组合编程

本文将简要介绍面向组合编程(COP,Composite Oriented Programming)的概念,展示它如何规避OOP存在的一些问题,并重新点燃使用可重用部件组装领域模型(Domain Model)的希望。

系统开发——新学科,新教育

一门新的计算机学科——“系统开发”,强调人性化、匠艺、设计、创意、创新和新事物的涌现,并建议用被称为“bottega”的工作室替代乏善可陈的教室。

图书聚焦:Visual Studio 2008 揭秘

Mike Snell和Lars Powers用他们最近由Sams出版的新书《Visual Studio 2008揭秘》,试图帮助大家提高开发人员的生产力。本文包括一个下载样章——第10章调试。

BPEL为何不是BPM的圣杯?

Pierre Vigneras在本文中讨论了作为标准之一的BPEL所存在的问题。Pierre先给我们大致介绍了一个简单的并行流程,接着讨论了从业者在试图以一个结构化模型为基础表达非结构化流程时遇到的一系列问题。

基于范型的多语言编程

你是否仔细思考过,为什么人们总在讨论“要正确的语言做恰当的事情”?在这篇文章中,Sadek Drobi向你解释了为什么应该在系统内部混合使用多种语言。

采访与书摘《Pro Web 2.0 Application Development with GWT》

Jeff Dwyer就关于他的新书(《Pro Web 2.0 Application Development with GWT》)、GWT1.5以及创建可搜索的Ajax应用谈了一些他的见解。

时刻准备着,迎接IT业的春天

我们需要设身处地地为客户及客户的业务本身着想,与客户同舟共济。更多创新的思路、产品和模式也同样将为IT业带来新的出路。IT业并不需要坐以待毙,在春天到来之后,市场将会更加繁荣!