将来的なアイデアをいくつか

今日、会社の人と話していてもらったアイデアをいくつか書き留めておきます。

スクリプト対応

たとえば、ボタンが押されたらディスエーブルにするなど、ちょっとした画面の変化については、いちいちJavaのコードを書きたくありません。

その場合は、ある程度、XML上にスクリプト的なものが書けてもよいかな、と考えています。

<control type="buttton" action="button.setEnabe(false)" />

みたいな感じです。

ただ、これだとデザインとロジックの分離を破ることになるので、美しさをとるか、現実的な便利さを取るか悩みどころ。(私は便利さを取る人間なので後者に傾きそう)

・・・一応、根拠もあります。(^^; S2JFaceにおいては、デザインとロジックの分離、というよりも開発現場における役割分担に基づきたいのです。今のところ、こんな分離。

画面定義XML
コードが書けない人でも作れる(将来的にはエディタを提供するため。ちょっと玄人な人は、XML直書きもOK)
Javaコード
開発者が書く

つまり、画面定義XMLは「コードは書けないけど、エンドユーザさんとバンバン話して画面仕様を決めちゃうよ!」という人が、簡単に作れるようにしたいのです。
ようするに、デザインとロジックの分離というのは、作る人の役割分担なわけですよね。

そういう意味で、先ほどの「スクリプト的なもの」=「Javaがわからなくても書ける」はOKかと考えています。

画面コンポーネントの新規追加

S2JFace は、画面コンポーネントの新規追加にも対応する仕組みを用意します。つまり、独自に作ったSWTWidgetなども追加可能なFWを用意します。

ただ、これだけだと敷居が高いので、既存コンポーネントの組み合わせであれば、もう少し簡単に独自コンポーネントを用意できる仕組みも作りたい。

たとえば、「OK」ボタンと「キャンセル」ボタンを組み合わせた「OK・キャンセル」コンポーネントとか。

実現方法は・・・まだ考えていません、はい。

ロジックと画面コンポーネントの組み合わせ

これはちょっと悩みどころ。

たとえば、データベースのとあるテーブルの内容を初期表示内容にするようなコンポボックスって、よくあると思います。

現状の S2JFace では、XML上ではコンボボックスとして定義しておいて、Actionクラス側で、初期表示時のロジックとして「DBから取得→コンボボックスに追加」という処理を書きます。

これが一カ所ならばよいのですが、この手のものは大抵再利用したくなります。そうすると、こんな感じで画面定義XMLの中にテーブル名やらカラム名を書きたくなります。

<control type="comboBox">
  <property table="employee" />
  <property column="name" />
</control>

でも、個人的にはこれはちょっとやだな、と。

うーん、あとで考えよう・・・