タイムラインの絞込表示機能の拡張

CAインターンの実践編の課題として、aipoのタイムラインの絞込表示機能に、リンク付き投稿のみと添付ファイル付き投稿のみの表示をさせる機能を追加する事を選びました。 まずは、 ajax-timeline.vmの100行目、143行目に以下のようにコードを追加。

#if("$!{result.TargetDisplayName}" == "all")
$l10n.TIMELINE_ALL_DISPLAY
#elseif("$!{result.TargetDisplayName}" == "posting")
 $l10n.TIMELINE_ONLY_POSTING
#elseif("$!{result.TargetDisplayName}" == "update")
$l10n.TIMELINE_ONLY_UPDATE
#elseif("$!{result.TargetDisplayName}" == "link")
$l10n.TIMELINE_ONLY_LINK
#elseif("$!{result.TargetDisplayName}" == "file")
$l10n.TIMELINE_ONLY_FILE
#set($actionlink = $!utils.escapeXML($!jslink.getPortletById($!portlet.ID).addQueryData("template","TimelineScreen").addQueryData("target_display_name", "link")))
<li><a href="javascript:void(0)" class="PostName_$!{portlet.ID} #if("$!{result.TargetDisplayName}" == "link")selected#end" id="PostName_$!{portlet.ID}_$!{result.TargetDisplayName}" onclick="aipo.timeline.displayIndicator('${actionlink}', '$!{portlet.ID}', '$indicator_id3', '$!{result.TargetDisplayName}');">$l10n.TIMELINE_ONLY_LINK</a></li>       
#if("$!{result.TargetDisplayName}" == "link")

この部分ではじめてlinkという変数が定義されているということに気づかず、苦戦していました。 ajax-timeline-list.vmも同様に既存のコードをもして、新たなコードを追加し、その後、javaファイルの変更に取り組みます。

社員さんにお伺いしながら作業を進めた所、TimelineUtils.javaの108行目以降に続くpublic static final …とそれを用いた分岐条件を書き込むことで、絞込表示がうまくできそうだということがわかりました。