バインディング機能再設計
まず、開発中のS2Swingの現状。以下のような画面があるとします。
public class UserDialog extends JDialog { private JTextField username; private JPasswordField passwd; private JTextField birthDate; ... }
次のモデルクラスを書くと、UserDialogの各コンポーネントにモデルの値を自動バインディングできます。
public class UserModel { @ReadWrite private String username; @ReadWrite(target = "passwd") private String password; @ReadWrite @DateTimeConverter("yyyy/MM/dd") private Date birthDate; ... }
でもこの方式、良く考えるとおかしいですよね。
モデルが画面に依存しているわけです。モデルと画面の本来の依存関係が逆転してしまっている。
そんな訳で、S2Swingのバインディング機能を再設計しようと思っています。具体的なアイデアはこれから考えますが、モデルクラスにアノテーションを極力書かずに済む方向に持っていきたいです。