今日のは色々なところで時間がかかって苦労しました。 結果的にやったことは以下の2つです。 ・一覧画面にURLをリンク付きで表示すること ・詳細画面にサムネイルを表示させること
大きく時間がかかったところは ・URLが表示されない ・Velocityファイルの文法 ・URLを表示させたあとに折り返しが直らなかったこと の3点です。
まずURLが表示されないところでしたが質問したところブレークポイントの機能を使うとデバッグが楽というアドバイスを頂きました。 行数表示の左側をダブルクリックするとブレークポイントがつくのでその状態でAipoを更新するとその部分でプログラムがとまり、eclipse右上にある”デバッグ”からログ等がみれます。そこで関数に”url.getValue()”としたところurlにはデータが入ってないと出ました。原因を探ると一覧画面のgetUrlが記述されていなかったことが原因だったのでtest_nameを参考に記述。全部記述していたはずでしたがnoteを検索し、コードを記述していたためメモ欄がない一覧表示の部分が抜けていました。
Velocityファイルの文法ですが質問したところ aipo/war/src/main/webapp/WEB-INF/templates/vm/GlobalMacros.vm に色々と書いてあり、そこを見るとhtmlに置き換わっているためほとんどhtmlと同じように扱えました。
次にURLの折り返しですが、原因がセルの幅の小ささが原因だと考えていたのでhtmlのnowrapで解決すると思っていたら解決せず時間がかかってしまいました。 いろいろ試してもダメで質問したところデータ取得の際の以下のメソッドをnote部分を真似していたため改行されてしまうということでした。
public String getUrl() { return ALEipUtils.getMessageList(url.getValue()); }
それを改善するために下記のコードに変更
public String getUrl() { return url.getValue(); }
そうしたところURLのリンクも消えてしまったのでhtmlの文法を調べ、Velocityに合わせて以下のように記述しました
#ALtdcellheader() <div> <a href="$!record.Url">$!record.Url</a> </div> #ALtdcellfooter()
これを必要なところに配置することで一覧にリンク付きのURLを表示することが出来ました。
サムネイルですがリンクテキストのAPIの部分から”http://capture.heartrails.com/?”をURLの先頭につければサムネイルとして画像が返ってくる仕組みだったのでこれをVelocityファイルに直接書き込むことにしました。 htmlの記述の仕方は要素の検証からソースコードを見ることで分かりました。
#ALtditemheader() <img src= http://capture.heartrails.com/?$!result.Detail.Url> #ALtditemfooter()
上記のようなコードで書いたところエラーでAipoが表示されなくなったので質問したところVelocityに色々なルールがあるらしくダブルコーテーションでくくると関数などが変換されてでてくるということでした。(日本語わかりにくくてすみません・・・) ということでタイトルもつけて下記のように修正
#ALtdcaption($l10n.TODO_URLIMG) #ALtditemheader() <img src="http://capture.heartrails.com/?$!result.Detail.Url"> #ALtditemfooter()
プロパティファイルにもTODO_URLIMGを追加しました。