前回まででタイムラインの表示が完成しました。なんとかTwitterらしいものが表示できましたが,
しかしその目的の前に,
サンプルプログラムの修正について
第2回で配布したサンプルプログラムから若干の変更が入っています。第2回でサンプルプログラムをダウンロードした方は再度,
また,
タグの属性を操作する
前回のプログラムで画像表示が遅いのは,
- Imageを使うとプログラムが動いてしまう。画像への直接のリンクであれば,
レスポンスはWicketのプログラムを必要としません。 - Imageは画像のURLを動的に生成する。Imageは同じ画像であってもWebResourceごとに個別のURLを生成します。ブラウザは同じ画像のために複数のアクセスを必要とします。
前回のプログラムで表示したページのソースを見てみると,
ブラウザが効率良く動作するように変更するならば,
ビヘイビアはコンポーネントのプラグイン
Wicketのコンポーネントの大きな目的は,
しかし属性変更のようなちょっとしたタグ変更のためにいちいちコンポーネントのサブクラスを作っていたのでは,
そのために,
ビヘイビアをコンポーネントに追加することで,
しかも,
SimpleAttributeModifierビヘイビアで属性を変更する
ビヘイビアはコンポーネントへの操作をオブジェクト化して再利用可能としたものです。Wicketはビヘイビアとして,
サンプルプログラムのjp.
リスト1 SimpleAttributeModifierでsrc属性を変更する例
//Imageコンポーネントではなく,<img>タグのsrc属性を変更する形式に変更
WebMarkupContainer userImage = new WebMarkupContainer("imageLink");
userImage.add(new SimpleAttributeModifier("src", status.getUser().getProfileImageURL().toString()));
いままでImageコンポーネントを使っていたところが,
SimpleAttributeModifierのコンストラクタに属性名と文字列を渡すことで,
サンプルプログラムを起動し,
もっとフレキシブルな属性変更を行う
多くの場合はSimpleAttributeModifierで対応可能ですが,
そのためには,
また,