[seasar-dev:491] Re: [S2JFace] DTDの変更について

bskuroneko bskuroneko @ gmail.com
2006年 8月 24日 (木) 00:35:59 JST


小森さん、亀谷さん。
bskuronekoです。

>  1.
>    内部的なコンポーネント情報の持ち方はそのままにして、
>
>    <label text="" font="" ・・・ />
>
>    みたいなタグを追加していく。
>    (XMLパースの部分で吸収できるはず)

まずはXMLパースの部分で吸収して動作するようにすることで賛成です。
レンダラーのコードは変更なしで動かすということですよね?
その後でコードの構造を見てからの判断でよいのですが、
可能であればDTDに対応したパーサーとレンダラーを
ある程度まで自動生成してしまうような仕組みにできないかな〜
と考えてたりします。
結構今のレンダラーって同じようなコードになっている気がするので、
DTDをうまく作ればかなり自動化できるように思います。
逆にコードからDTDを生成した方がうまくいくのかもしれませんけど。

あと文字列、数値、SWT定数などの簡単なデータは
属性として指定すればよいですが、
構造を持ったデータなどは要素として個別に書いて、
なるべく補完できるような形にできればなと思います。
これに該当するのはレイアウト周りが多そうですけどね。

>  2.
>    現行の control タグや composite タグはそのまま残して、カスタムコン
>    ポーネントを作る場合はそれを利用してもらう。(つまり、現状のコンポー
>    ネントはすべてカスタムコンポーネント的な作り方、となる)

レンダラーとのマッピング方法など細かい部分は検討が必要でしょうけど、
概ねOKだと思います。

>  3.
>    考えなければならないこと
>
>    ・プロパティの引き継ぎ機能をどうするか
>        → もともとはスタイルシート的なことがしたかったので、
>           代替的な案(フォントや色などをまとめて指定する方法)があればよ
>
widgetクラスやcontrolクラスが持っている見た目のプロパティを
まとめて指定できるような定義を作れるとよさそうですね。
eclipseの色やフォント指定のように部品タイプ(?)ごとに指定できる
仕組みでも面白いかと思います。
それ以外は「青くてフラットなボタン」みたいな部品が作れて、
それを利用できるような定義があれば十分な気がします。

>    ・レイアウトの指定方法をどうするか
>        → 現状はSWTベタベタで、SWTのレイアウトを理解しきれていないと書
>           けない。(特にGridLayoutが)
>           もう少し簡単にしたい

簡単に指定できる方法があるとうれしいですね。
レイアウトに詳しくないので、楽しみです。(他人まかせ?w)
でも個人的にはそのまま書ける仕組みも残してほしいです。
細かい指定ができないのも理解している人にはストレスになると思います。
レイアウトを全然理解できていない私が言うのもなんですが…


その他、テンプレートの継承、部品化の定義なども整理できるといいですね。

改善案のたたき台になりそうなDTDを作ってます。
もう少し形になったら出しますので、たたきまくってください(w


06/08/22 に KOMORI Yusuke<y-komori @ nifty.ne.jp> さんは書きました:
> S2JFace コミッタの皆さん
>
> bskuroneko さんのブログ議論していた、DTDの件ですが、
> ML上に議論を移したいと思います。
> http://d.hatena.ne.jp/bskuroneko/20060811/1155314849
>
> とりあえず、今までの整理・・・
>
> ■現状の問題点
>    各GUI要素を記述する要素が以下のように control (または composite)タグで
>    統一されているため、XMLエディタ上で DTD 補完が効かず、書きにくい。
>
>    <control type="label" ・・・>
>
>    ・・・ということでした。
>
> ■もともとの思想
>    bskuroneko さんのところでもコメントしたように、
>
>    --------------------------------------------------------------------
>    「S2JFaceを利用する開発者が自由にコンポーネントを追加できる」という
>    のがあります。今はSWTやJFaceのコンポーネントをラップしたものしか提供
>    できていませんが、実際に業務で使い出すと、いくつかのコンポーネントを
>    組み合わせたようなオリジナルコンポーネントが必要になってくることが多
>    いと思うのです。そういったとき、DTDを毎回変えなきゃならないのはとて
>    も重いので、いまのように property タグで任意のプロパティを指定する方
>    式にしているのです。
>    --------------------------------------------------------------------
>
>    というのが私の考えでした。
>
>    でもでも・・・
>
>    「自分でコンポーネントを追加するパワーユーザ」よりも「DTDで手軽に
>    補完したいユーザ」の方が圧倒的に多いわけで、やはり補完が効きやすいよ
>    うにHTMLに近い形のタグに整理したほうがよいと思い始めました。
>
>
> ■とりあえずの案
>    議論の入り口として、今考えていることだけ書きます。
>
>  1.
>    内部的なコンポーネント情報の持ち方はそのままにして、
>
>    <label text="" font="" ・・・ />
>
>    みたいなタグを追加していく。
>    (XMLパースの部分で吸収できるはず)
>
>  2.
>    現行の control タグや composite タグはそのまま残して、カスタムコン
>    ポーネントを作る場合はそれを利用してもらう。(つまり、現状のコンポー
>    ネントはすべてカスタムコンポーネント的な作り方、となる)
>
>  3.
>    考えなければならないこと
>
>    ・プロパティの引き継ぎ機能をどうするか
>        → もともとはスタイルシート的なことがしたかったので、
>           代替的な案(フォントや色などをまとめて指定する方法)があればよ
>>    ・レイアウトの指定方法をどうするか
>        → 現状はSWTベタベタで、SWTのレイアウトを理解しきれていないと書
>           けない。(特にGridLayoutが)
>           もう少し簡単にしたい
>
>  と、こんなところです。
>
>  特に3番のところについて、もう少しイメージを固めたいと思っていますが、
>  いかがでしょうか。
>
>
> ----------------------------------------------
>  小森 裕介 / Yusuke Komori
>
>  E-Mail:y-komori @ nifty.ne.jp
>    Blog:http://d.hatena.ne.jp/y-komori/
>     URL:http://www.littleforest.jp/
>
>
> _______________________________________________
> Seasar-dev mailing list
> Seasar-dev @ ml.seasar.org
> https://www.seasar.org/mailman/listinfo/seasar-dev
>


Seasar-dev メーリングリストの案内