1日目に生じた入力欄の左に「$!result.getFieldName(“url”)」表示される問題を解消した。
- ローカライゼーションファイル(ja)にへの修正
TODO_SETFIELDNAME_URL=URL
この修正で、基礎編:入力項目の追加をしてみようの内容が終了した。
次に、基礎編:追加した入力項目の表示をしてみようの内容に着手した。
一覧形式でのURLの表示
- データベースから値を取り出す
TestSelectDate.java
/** * ResultData に値を格納して返します。(一覧データ) <BR> * * @param obj * @return */ @Override protected Object getResultData(EipTTest record) { try { TestResultData rd = new TestResultData(); rd.initField(); rd.setTestId(record.getTestId().intValue()); rd.setTestName(ALCommonUtils.compressString( record.getTestName(), getStrLength())); rd.setUrl(record.getUrl()); rd.setUpdateDate(record.getUpdateDate()); rd.setAclEditTestOther(hasAclEditTestOther); rd.setAclDeleteTestOther(hasAclDeleteTestOther); return rd; } catch (Exception ex) { logger.error("test", ex); return null; } }
- TestListScreenから上tUrlメソッドは呼び出せるようにした。
Test.ResultDate.java
/** * @return */ public String getUrl() { return url.getValue(); } /** * @param string */ public void setUrl(String string) { url.setValue(string); }
- リスト表示テンプレートファイル
vmテンプレートファイルのリスト表示の箇所を以下のように設定した。
#AUIrowMTableWide() <tr> #ALtdheadAtt("#ALswitchCheckbox()" "class='thin center'") <th>#ALajaxsort('test_name' $l10n.TODO_TITLE $result 'TestListScreen')</th> <th>#ALajaxsort('url' $l10n.TODO_SETFIELDNAME_URL $result 'TestListScreen')</th> </tr> #foreach ($record in $result.List) <tr> #ALtdcellAtt("<input name='check$!record.TestId' type='checkbox' value='$!record.TestId'/>" 'align="center" class="auiMTCheck"') #ALtdcellheaderAtt('class="auiMTCaption"') <div> <a href="javascript:void(0);" onclick="aipo.common.showDialog('$!utils.escapeXML($!jslink.getPortletById($!portlet.ID).addQueryData("template","TestDetailScreen").addQueryData("entityid",$record.TestId))');">$!record.TestName</a> </div> #ALtdcellheaderAtt('class="auiMTCaption"') <div> <a href="$record.Url">$!record.Url</a> </div> #ALtdcellfooter() </tr>
サムネイルの追加
- ローカライゼーションファイル(ja)でサムネイルの表示を追加
TODO_SETFIELDNAME_THUMBNAIL=サムネイル
- 詳細表示テンプレート
URLを表示するカラムとサムネイルを表示するカラムを設定した。
#ALtdcaption($l10n.TODO_SETFIELDNAME_URL) #ALtditem($!result.Detail.Url) #ALtdcaption($l10n.TODO_SETFIELDNAME_THUMBNAIL) <td><a href="$!result.Detail.Url"><img title="$!result.Detail.Url" src="http://capture.heartrails.com/medium?$!result.Detail.Url" data-lazy-src="http://capture.heartrails.com/free?$!result.Detail.Url" alt="$!result.Detail.Url" width="200" height="150" /></a></tb>
- DetailのgetUrlメソッドを呼び出す
TestSelectDate.java
/** * ResultData に値を格納して返します。(詳細データ) <BR> * * @param obj * @return */ @Override protected Object getResultDataDetail(EipTTest record) { try { TestResultData rd = new TestResultData(); rd.initField(); rd.setTestName(record.getTestName()); rd.setTestId(record.getTestId().longValue()); rd.setNote(record.getNote()); rd.setUrl(record.getUrl()); rd.setCreateDate(ALDateUtil .format(record.getCreateDate(), "yyyy年M月d日(E)")); rd.setUpdateDate(record.getUpdateDate()); rd.setAclEditTestOther(hasAclEditTestOther); rd.setAclDeleteTestOther(hasAclDeleteTestOther); return rd; } catch (Exception ex) { logger.error("test", ex); return null; } }