TestFormにURLの入力欄を追加する方法(インターン1日目)

この記事はインターン生のハックを見てもわからなかった人向けの記事です。

つまり、僕向けの記事です。 インターン初日は、Githubに書いてある通りに、Aipoの起動その他諸々と、「基礎編:入力項目の追加をしてみよう」を行いました。 javaはあまり触れたことがないので、ソースコードを見てまず苦戦、、

メモ作成フォームがどのコード(ファイル)に対応してるのかわからない、、ってことで助けを借りました。 要素の検証->Networkのtemplate属性?みたいなとこにTestFormScreenを見るそうです。 EcllipseでTestFormScreen.javaってファイルを見てみると、68行目に、

String layout_template = "portlets/html/ja/ajax-test-form.vm";

があります。 レイアウトのテンプレート?、、 とりあえず書いてある通りにajax-test-form.vmの50行目あたりを見てみます。

#ALtableheaderWide()
#ALtdcaption("#ALrequired($!result.getFieldName('test_name'))")

さっぱりなので、もう一度助けを。 /test-portlet/war/src/main/webapp/WEB-INF/templates/vm/GlobalMacros.vm に書いてあるhtmlタグが、ajax-test-form.vmに対応してるらしいです。 それを参照しつつ、とりあえずURLの欄を作りたいので、タイトルパクれば作れそうってことで、 portlets/test/src/main/webapp/WEB-INF/templates/vm/portlets/html/ja/ajax-test-form.vm に

+#ALtdcaption($!result.getFieldName("url"))
+#ALtditem("#ALtextfieldw100('url' $!result.Url 50 'active')")

を追加。 portlets/test/src/main/java/com/aimluck/eip/test/TestFormData.java に 「note」を頭の中でURLに置き換えながらパクりながら書く。

+  /** URL */
+  private ALStringField url;

こいつをnoteの下に、

// URL
+    url = new ALStringField();
+    url.setFieldName(ALLocalizationUtils.getl10n("REGISTRY_EDITOR_PORTLET_URL"));
+    url.setTrim(false);

こいつもnoteの同じようなとこの下に。

文字列みたいなのは、war/src/main/resources/com/aimluck/eip/modules/localization/AipoLocalization_ja.properties と連携してるらしいです。 (のちに、そのファイルにTODO_SETFIELDNAME_URL=URLを追加してあげて、REGISTRY_EDITOR_PORTLET_URLをTODO_SETFIELDNAME_URLに書き換えてあげました。)

そんで表示されますおそらく。

portlets/test/src/main/java/com/aimluck/eip/test/TestFormData.javaに

// URL
+      url.setValue(test.getUrl());

// URL
+      test.setUrl(url.getValue());

  /**
+   * URLを取得します。<BR>
+   *
+   * @return
+   */
+  public ALStringField getUrl(){
+     return url;
+  }
+

を追加してほぼほぼ完成のはずです! pgAdminでデータベース確認して、URLカラムにデータが入っているかチェックです。