Vaadin アプリケーションに外部 JavaScript ファイルを含める最も簡単な方法は、Application#writeAjaxPageHtmlVaadinScripts
メソッドをオーバーライドすることです。
Vaadin サーバー側コードから JavaScript 関数を呼び出すには、Window#executeJavascript
@Override
protected void writeAjaxPageHtmlVaadinScripts(Window window,
String themeName, Application application, BufferedWriter page,
String appUrl, String themeUri, String appId,
HttpServletRequest request) throws ServletException, IOException {
page.write("<script type=\"text/javascript\">\n");
page.write("//<![CDATA[\n");
page.write("document.write(\"<script language='javascript' src='" + appUrl + "/VAADIN/scripts/example.js'><\\/script>\");\n");
page.write("//]]>\n</script>\n");
super.writeAjaxPageHtmlVaadinScripts(window, themeName, application,
page, appUrl, themeUri, appId, request);
}
NB : Vaadin をポートレットとして使用したことはありませんが、ざっと見てみると、これは問題なく動作するはずです。
ただし、このアプローチはかなり初歩的であり、簡単なハック/概念実証にのみ適しています。より洗練されたものが必要な場合は、独自の Vaadin ウィジェットを開発するのが正しいアプローチです。これにより、GWT と JSNI のパワーが得られ、より細かい制御が可能になります。詳細については、 The Book Of Vaadinを参照してください。