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

KOMORI Yusuke y-komori @ nifty.ne.jp
2006年 8月 24日 (木) 21:56:21 JST


 小森です。

 亀谷さん、bskuronekoさん、ご意見ありがとうございます。

bskuroneko さん wrote:
> まずはXMLパースの部分で吸収して動作するようにすることで賛成です。
> レンダラーのコードは変更なしで動かすということですよね?

 そうです。それが一番変更が少なくて楽かと。
 なので・・・

亀谷さん wrote:
> これは現状あるRendererの類がHandlerに移植ってことになるんですかね?
> ちょっと作業が大変そうですがやるなら早いうちがいいかもです。

 Rendererの方は、修正せずにそのままでよいはずです。

 あと、パーサーやレンダラーは、確かに似たコードが多いので自動生成的なこ
とをやってもいいかなと、私も思ってました。

 ただ、自動生成自体はコードの管理が複雑になるので、個人的には以下のどち
らかがいいかな、と思ってます。

1.リフレクションを使う
    S2ContainerのBeanDescがキャッシュしてくれるおかげで、パフォーマンス
    劣化をあまり気にせず使えます。
    
2.Interceptorを使う
    S2Container 2.4 で追加される Interceptor を使えば、オン・ザ・フライ
    でのバイトコードレベルの自動生成ができてしまいます。
    上記案でパフォーマンスが気になる場合はこちらの手もあります。
   

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

 ですね。コンポーネントによっては属性がかなり増えそうですが、DTD補完の
利点を考えると、しかたないですね。


> widgetクラスやcontrolクラスが持っている見た目のプロパティを
> まとめて指定できるような定義を作れるとよさそうですね。
> eclipseの色やフォント指定のように部品タイプ(?)ごとに指定できる
> 仕組みでも面白いかと思います。
> それ以外は「青くてフラットなボタン」みたいな部品が作れて、
> それを利用できるような定義があれば十分な気がします。

 ですね。

 <label font="arial" size="18" weight="bold">文字列</label>

というように、個別指定できるパターンと・・・

 <label styleClass="title">文字列</label>

というように、スタイルシートのクラスみたいに指定できるパターンがあると良
いですね。

 レイアウトにはわたしも散々苦労させられているので、なにか叩き台の案を作
りたいと思います。

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

 ありがとうございます!
 とりあえず、いくつかのコンポーネントについて作っていただければ、
またそれをベースに議論できると思います。

 よろしくお願いします。m(_ _)m

On Thu, 24 Aug 2006 00:35:59 +0900, bskuroneko <bskuroneko @ gmail.com> wrote:

> 小森さん、亀谷さん。
> 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 mailing list
> Seasar-dev @ ml.seasar.org
> https://www.seasar.org/mailman/listinfo/seasar-dev

----------------------------------------------
 小森 裕介 / Yusuke Komori

  E-Mail:y-komori @ nifty.ne.jp
    Blog:http://d.hatena.ne.jp/y-komori/
     URL:http://www.littleforest.jp/




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