Hatena::ブログ(Diary)

すーじー@日暮 このページをアンテナに追加 RSSフィード

この日記のはてなブックマーク数

2008-05-28

Toolbarを表示したい その1

UrumaでToolbarを表示させたいけど、XMLスキーマuruma.xsd)には特にそれらしきものがないのでまだ対応してないみたい。

追記:すいません。スキーマにありました。

ということで、Toolbarを表示するためには、どうしたら良いかUrumaをHackしてみる。


まず、UrumaXMLを解析してオブジェクトグラフを作成する仕組みを理解する。

  • TemplateManagerがXMLをロードする
  • TemplateManagerはComponentTreeBuilderによってXMLからTemplateオブジェクトを生成する
  • ComponentTreeBuilderはSAXXMLを解析
  • TemplateオブジェクトXMLの各ノードをUIComponent(抽象)として保持する
  • UIComponentはXMLアトリビュートと対応した変数名がありXMLの値を保持する
  • UIComponentは再帰構造でUIComponentを保持する
  • UIComponentはWindowComponentやToolbarComponentなど各実装がある

WindowComponentの中身抜粋。


/**
 * {@link Window} のコンポーネント情報を保持するためのクラスです。<br />
 * 
 * @author y-komori
 */
@ComponentElement
public class WindowComponent extends CompositeComponent {
    @RenderingPolicy(targetType = TargetType.NONE)
    @ComponentAttribute
    @FieldDescription("ウィンドウタイトル")
    public String title;

    @RenderingPolicy(targetType = TargetType.NONE)
    @ComponentAttribute
    @FieldDescription("最小幅")
    public String minimumWidth;

    @RenderingPolicy(targetType = TargetType.NONE)
    @ComponentAttribute
    @FieldDescription("最小高さ")
    public String minimumHeight;

    @RenderingPolicy(targetType = TargetType.NONE)
    @ComponentAttribute
    @FieldDescription("幅")
    public String width;
    
    ・・・

ふむふむ。

XMLに設定項目を追加したい場合は、uruma.xsdにエレメントやアトリビュートを追加して、対応するUIComponentを用意してあげれば、XMLの内容をオブジェクトで扱える。

まとめ

XMLの内容にアクセスしたい場合は、TemplateManager#getTemplage#getRootComponent でComponentを取得する。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証