2011年7月2日土曜日

GWTで外部リンクを張る処理の記述方法

GWTでリンクを張る場合に、HyperLinkとかいうクラスを使うのかな
と思ってみてみたけど、どうやらこれではないようでした。

http://google-web-toolkit.googlecode.com/svn/javadoc/1.5/com/google/gwt/user/client/ui/Hyperlink.html

一応、下記のページを参考にしながら方法を書いてみる。

http://code.google.com/webtoolkit/doc/latest/DevGuideSecuritySafeHtml.html

まず、最初に、SafeHtmlTemplates を継承した下記のようなクラスを作成する。
これにより、htmlを返す

 public interface LinkHtmlTemplates extends SafeHtmlTemplates {
     @Template("<a href=\"{0}\"  target=\"_blank\">{1}</a>")
     SafeHtml makeLinkHtml(String url, String linkText);
   }


次に、下記のような記述でkオブジェクトの生成をする。

 private static final LinkHtmlTemplates LINK_TEMPLATES =
       GWT.create(LinkHtmlTemplates.class);

そんで、これを使って、下記のような感じでSafeHtmlを生成する。


 SafeHtml ihtml = LINK_TEMPLATES.messageWithLink(getBTSUrl(numPart), numPart);
 sb.append(ihtml);

こんな感じで書くと、リンクを張るようなものができました。

0 件のコメント: