本日はインターン4日目で、実践編に入りました。 実践編では、「スケジュール登録画面での種別欄の追加」について取り組むことにさせていただきました。
まずはじめに、本日取り組んだ結果について概要を説明します。 今回は、スケジュール登録画面に「種別」欄を追加した後、ラジオボタンを配置して「出張」「休暇」などを選択できるようにしました。よって見た目だけは出来ましたが、肝心の中身がない状態です。
次に、本日の取り組みについて詳しく説明します。 最初は実践編のテーマで使うスケジュール登録画面がどのようなファイルを参照しているのか、Chromeの「要素の検証」ボタンで調べました。その結果、 /aipo/portlets/schedule/src/main/java/com/aimluck/eip/modules/screens/ScheduleFormScreen.java を利用していることが分かり、さらにこのファイル内部で /aipo/portlets/schedule/src/main/webapp/WEB-INF/templates/vm/portlets/html/ja/ajax-schedule-form.vm を参照していることも分かったので、中身がどんな構造をしているのか暫く見ていました。ちなみに前回は/ja/でない方のファイルを開いてしまって時間をロスしたので、しっかり確認しました。 スケジュール登録画面では、「種別」欄は「内容」と「公開」の間に置くのが適当だなと思ったので先ほどのvmファイル内の220行目付近の「内容」について記述している場所の下に
#ALtdcaption($!result.getFieldName("classification"))
を記述しました。このままではまだ何も表示出来ないので、getFieldNameで参照する /aipo/portlets/schedule/src/main/java/com/aimluck/eip/schedule/ScheduleFormData.java に
private ALStringField classification;
// 種別 classification = new ALStringField(); classification.setFieldName(ALLocalizationUtils .getl10n("SCHEDULE_CLASSIFICATION")); classification.setTrim(false);
/** * @return classification */ public ALStringField getClassification() { return classification; } /** * @param classification * セットする classification */ public void setClassification(ALStringField classification) { this.classification = classification; }
を記述し「種別」項目の表示が行えるようにしました。 また、ラジオボタンを配置するようにしたいので、先ほどのvmファイル /aipo/portlets/schedule/src/main/webapp/WEB-INF/templates/vm/portlets/html/ja/ajax-schedule-form.vm の、
private ALStringField classification;
の下にさらに
#ALtditemheader() <p><input name="classification" type="radio" value="S" >$l10n.SCHEDULE_BUSINESS_TRIP</p> <p><input name="classification" type="radio" value="G" >$l10n.SCHEDULE_GO_STRAIGHT</p> <p><input name="classification" type="radio" value="H" >$l10n.SCHEDULE_RETURNING_HOME_DIRECTLY</p> <p><input name="classification" type="radio" value="Y" >$l10n.SCHEDULE_HOLIDAY</p> <p><input name="classification" type="radio" value="T" >$l10n.SCHEDULE_LATE</p> #ALtditemfooter()
を追加しました。また、SCHEDULE_BUSINESS_TRIPなどはまだ定義していないので、
SCHEDULE_CLASSIFICATION=種別 SCHEDULE_BUSINESS_TRIP=出張 SCHEDULE_GO_STRAIGHT=直行 SCHEDULE_RETURNING_HOME_DIRECTLY=直帰 SCHEDULE_HOLIDAY=休暇 SCHEDULE_LATE=遅刻
のように定義しました。 これで今日のところまでは機能が作れました。