インターン2日目

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;
    }
  }