インターン3日目

今日はまずデータベースにURLの変更が反映されていなかったので、そこの修正とURLのサムネイル表示とURLのドメインのみの表示を行いました。

データベースにURLの変更が反映されていなかったのは、TestFormData.javaのinsertFormData()で

 Database.commit();

の前で

  test.setUrl(url.getValue());

を記入していたからでした。

次に、ajax-test-detail.vmのほうでサムネイルが表示されるようにしました。

+#ALtdcellNowrapheader()
+ <a href="$!result.Detail.Url">
+   <img title="$!result.Detail.URL" src="http://capture.heartrails.com/free?$!result.Detail.Url" alt="$!result.Detail.Url" width="200" height="300">
+ </a>
+#ALtdcellNowrapfooter()

続いて、URLのドメインだけが表示されるようにしました。 その時に参考にしたのが、hackと[URIクラスで出来る3つの操作]http://koseki.hatenablog.com/entry/20070404/javauri)を参考にしました。

まずTestResultData.java

+import java.net.URI;

と追記

続いて、同じくTestResultData.javaに

public String getUrlDomain() throws Exception {
+     URI u = new URI(url.getValue());
+     return u.getScheme()+"://"+u.getHost();
+  }

以上を追記

これで、Test追加の機能はできたのですが、ずっと放置していた不具合がありました。 詳細画面にはURLがきちんと表示されていたのですが、testを編集しようとするとURL欄に”$!result.Url”となっていて、きちんと値を取ってこれていませんでした。

僕はずっと編集画面のデータはTestResultData.javaから取ってきていると思っていました。なので、ずっとTestResultData.javaとajax-test-form.vmにいろいろ書いたり、消したりして試行錯誤していました。 でもajax-test-form.vmはTestFormData.javaからデータを取ってくるので、こちらのほうでgetUrl()のメソッドをつくらなければなりませんでした。 しかし、別府さんが以下のメソッドをすでに書いていることを見つけてくれました。

+  public ALStringField getTestUrl() {
+     return url;
+  }
+

なので、ajax-test-form.vmには $!result.Urlを$!result.TestUrlと書けば、きちんとURLが表示されるようになりました。

これで基礎編から実践編に移ることになります。 日をまたいで予定を入れることができるようにするチケットを選んだのですが、まずは初日と同じようにどのファイルがまずどの機能を持っているかの特定でかなり骨が折れ、そこまでしかできなかったので、来週からまた実践編に取り組みたいと思います。