インターン2日目

インターン2日目の今日は、基礎編の「一覧画面でURLをリンク付きで表示させる」事に取り組みました。

TestSelectDate.java

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

Test.ResultDate.java

 /**
   * @return
   */
  public String getUrl() {
    return url.getValue();
  }

/**
   * @param url
   */
  public void setUrl(String string) {
    url.setValue(string);
  }

ajax-test-list.vm

#AUIrowMTableWide()
<tr>
#ALtdheadAtt("#ALswitchCheckbox()" "class='thin center'")
<th>#ALajaxsort('test_name' $l10n.TODO_TITLE $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>

等を記述しました。 色々な方のhackを参考にし、それぞれ微妙にコードが違うので戸惑ってしまいました。

また、詳細画面で$!result.getFieldName(“url”)と表示されてしまうため、 次回はこの部分の修正から入りたいと思います。