UiBinderがうまく動作した件
更新が大幅に遅れてしまいましたが、前回のUiBinderがうまく動作しない件の後、
なんとか最初のとっかかりが出来たので報告します。
最初に、UiBInderで作ったオブジェクトをUiBinder.java、それのui.xmlをUiBinder.ui.xml、gタグで表示されるウィジェットをWigetと呼ぶことにします。
1.最初のページは必ずDockLayoutPanelにする
2.HTMLページへのバインドは必ずRootLayoutPanelにする
これでDockLayoutPanelのスタイルをwidth:100%;height:100%にするとちゃんと表示されます。
ここからいろいろなWidgetなりUiBinderをDockLayoutPanelくっつけていきます。
3.イベントはUiBinder.javaに直接記述する
ButtonのClickもそうですが、TreeのSelectionも直接書けます。
これのいいところは記述量が減るところ、.netのFormのように画面のオブジェクトの動作を
それにくっついているオブジェクトで直接指定できることです。
逆に悪いところは、GWTのサンプルに有るMVPのようにイベントが分離できないことです。
(でもまぁ@fieldでオブジェクトを抽出することで分離することは出来るので不可能ではありません)
4.WidgetのsetなんちゃらメソッドはUiBInder.ui.xmlのプロパティに書ける
これは次の原則とあわせると理解が早いです。
5.Hyperlinkを使ってHistoryの処理を簡単にできる
Historyとの絡みで画面遷移はHyperlinkを使います。
このとき、UiBInder.ui.xmlへは<g:Hyperlink ui:field="main" targetHistoryToken="main">main</g:Hyperlink>
のようにすると、そのHyperlinkをクリックしたとき自動でHistoryにTokenが追加されます。
最後に
6.画面遷移はSimplePanelを挿む
例えばナビゲーターのデータをメインコンテンツのタブに渡すときは、
メインコンテンツをSimplePanelでラップし、データの受け渡しはUiBInder.javaで行うようにします。
画面上のデータを取得するのはUiBinder.ui.xmlではなくUiBinder.javaの方だからです。
また、他のコンテンツに移動したいときもここだけを書き直せばよいので
@UiFactoryを使うよりこっちの方が楽だと思います。
いろいろ書いてきましたが、UiBinderの一番の魅力はこういうことではなくて
従来のHTMLの書き方でGWTのいろんな画面が作れるという点です。(えっ…)
ただそれを可能にするHTMLPanelを使い、その下にDockLayoutPanelを配置すると
DockLaytouPanelがうまく動作しないので、あくまでDockLayoutPanelの下にHTMLPanelを使うか、
DockLayoutPanelを使わずRootに直接書くようにします。
今はBlueprintなどのCSSフレームワークとGWTを組み合わせるのと、
HTML5のタグとWidgetを組み合わせて魅力的なアプリケーションが出来ないかなと考えています。
しかし業務アプリとなると普通のHTMLページとは異なり、
いろいろな機能をそこに追加しそこで何かしらの作業をするわけで、
そうすると例えばLombardiのblueprint(GWT Blueprintでググるとこれが出てきましたが、CSSのBlueprintとは関係が無いようです…)のような
動的な生成やコンテンツ作りには骨が折れる作業になると思います。
その辺を軽減してくれるのがGWTの各種Widget、特にDockLayoutPanelとTabLayoutPanelとなんちゃらSplitPanel、
およびHyperlinkなどなので、表や文章の表示をするUiBinderには
見た目がすっきりするBlueprintのGridを使おうかなと考えています。
なんとか最初のとっかかりが出来たので報告します。
最初に、UiBInderで作ったオブジェクトをUiBinder.java、それのui.xmlをUiBinder.ui.xml、gタグで表示されるウィジェットをWigetと呼ぶことにします。
1.最初のページは必ずDockLayoutPanelにする
2.HTMLページへのバインドは必ずRootLayoutPanelにする
これでDockLayoutPanelのスタイルをwidth:100%;height:100%にするとちゃんと表示されます。
ここからいろいろなWidgetなりUiBinderをDockLayoutPanelくっつけていきます。
3.イベントはUiBinder.javaに直接記述する
ButtonのClickもそうですが、TreeのSelectionも直接書けます。
これのいいところは記述量が減るところ、.netのFormのように画面のオブジェクトの動作を
それにくっついているオブジェクトで直接指定できることです。
逆に悪いところは、GWTのサンプルに有るMVPのようにイベントが分離できないことです。
(でもまぁ@fieldでオブジェクトを抽出することで分離することは出来るので不可能ではありません)
4.WidgetのsetなんちゃらメソッドはUiBInder.ui.xmlのプロパティに書ける
これは次の原則とあわせると理解が早いです。
5.Hyperlinkを使ってHistoryの処理を簡単にできる
Historyとの絡みで画面遷移はHyperlinkを使います。
このとき、UiBInder.ui.xmlへは<g:Hyperlink ui:field="main" targetHistoryToken="main">main</g:Hyperlink>
のようにすると、そのHyperlinkをクリックしたとき自動でHistoryにTokenが追加されます。
最後に
6.画面遷移はSimplePanelを挿む
例えばナビゲーターのデータをメインコンテンツのタブに渡すときは、
メインコンテンツをSimplePanelでラップし、データの受け渡しはUiBInder.javaで行うようにします。
画面上のデータを取得するのはUiBinder.ui.xmlではなくUiBinder.javaの方だからです。
また、他のコンテンツに移動したいときもここだけを書き直せばよいので
@UiFactoryを使うよりこっちの方が楽だと思います。
いろいろ書いてきましたが、UiBinderの一番の魅力はこういうことではなくて
従来のHTMLの書き方でGWTのいろんな画面が作れるという点です。(えっ…)
ただそれを可能にするHTMLPanelを使い、その下にDockLayoutPanelを配置すると
DockLaytouPanelがうまく動作しないので、あくまでDockLayoutPanelの下にHTMLPanelを使うか、
DockLayoutPanelを使わずRootに直接書くようにします。
今はBlueprintなどのCSSフレームワークとGWTを組み合わせるのと、
HTML5のタグとWidgetを組み合わせて魅力的なアプリケーションが出来ないかなと考えています。
しかし業務アプリとなると普通のHTMLページとは異なり、
いろいろな機能をそこに追加しそこで何かしらの作業をするわけで、
そうすると例えばLombardiのblueprint(GWT Blueprintでググるとこれが出てきましたが、CSSのBlueprintとは関係が無いようです…)のような
動的な生成やコンテンツ作りには骨が折れる作業になると思います。
その辺を軽減してくれるのがGWTの各種Widget、特にDockLayoutPanelとTabLayoutPanelとなんちゃらSplitPanel、
およびHyperlinkなどなので、表や文章の表示をするUiBinderには
見た目がすっきりするBlueprintのGridを使おうかなと考えています。
2010-03-16 17:55
nice!(0)
コメント(0)
トラックバック(2)
トラックバック 2
俺バイト辞めてくる(Brahms 2010-11-08 11:39)
これ系ってむちゃくちゃ効率いいな! まったりやってたけど1週間で20万ぐらい稼げたわ(笑)
ち●ぽ痛ぇよOTL(服部 2010-04-05 02:12)
例のサイト、借金返す為とはいえ一日3人はやりすぎただったか・・・・・ でも一ヵ月で252万返せたし(笑) まだ借金100万ぐらいあるけど、ぶっちゃけ余裕だな
この記事のトラックバックURL:








コメント 0