BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース JSR 295 Beans Bindingの1.0バージョンが登場

JSR 295 Beans Bindingの1.0バージョンが登場

Sun社のShannon Hickey氏は最近Beans Binding Frameworkの1.0バージョンを発表(source)した。これはJSR 295(サイト・英語)を実装したものであり、下記の項目を目的としてつくられたものである。

...Java Beansのペアプロパティを同期に保つために接続を大幅に簡易化するAPIを定義する。その接続は設定可能となる。プロパティの更新前にタイプコンバージョンと動作検証を行う可能性がある。

ShannonはJSRにおける努力はこのまま続くが、しかしながらそれはAPIの変化をもたらすかもしれないと述べている。Version1.0はBeans Binding APIのアーキテクチャを大幅に変更したものであるといえる。またそれは下記の項目を伴ったものである。

  • プロパティのコンセプトはBean PropertyとELProperty、二つの確固たる実装を伴って抽象プロパティクラスへと分解されている。
  • バインディングは二つのプロパティインスタンスを代表する抽象クラスである。(一般的に二つのオブジェクトに関連している。)
  • 自動同期を伴うバインディングは新たなAutoBindingsサブクラスによって実装されている。
  • Swingを複雑化するためのバインディングは現在カスタムバインディングサブクラスによって行われる。
  • 複数のビヘイビアを提供するsynthetic Swingはプロパティの複数バージョンを介して表している。例: "text", "text_ON_FOCUS_LOST"、"text_ON_ACTION_OR_FOCUS_LOST" for JTextField; "selectedElement"、JListとJTable 用の"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 Bindingsは過去にJGoodies Binging(サイト・英語)のようなプロジェクトを使用していたSwingで採用されている。またEclipse FoundationでのJFace Data Binging(サイト・英語)もそうである。それはSWT、JFace、JavaBeansに対して実装方法を提供する。しかしながらそのフレームワークはSwingやEMFのようなAPIの将来的な成長を目的として記述されたものであるのだ。

原文はこちらです:http://www.infoq.com/news/2007/09/beans-binding

この記事に星をつける

おすすめ度
スタイル

BT