俺と何某。

底辺プログラマの備忘録/雑記帳/実験場

俺とSmartGWT 〜SmartGWTことはじめ〜

SmartGWTを使ってみた。
日本語の情報が少なくて難儀したので、初期設定などをまとめておこうかと

SmartGWTとは

GWT(Google Web Toolkit)を補完するライブラリ
ライセンスはLGPL。より高度な機能を備えた有償のEnterprise版もあるみたい。
どんなことができるかは、Showcaseをさわってみるのが早いかと

前提

  • Eclipseのインストールが済んでいること
  • Google Plugin for Eclipseがインストールされていること

手順

  1. SmartGWTダウンロード
    SmartGWTのサイトから、ライブラリを取得します。
    ダウンロードはこちら
    適当なフォルダに展開(解凍)

  2. Eclipseの設定
    1. GWTプロジェクトを作成(仮にxxxxxとする)
    2. プロジェクトエクスプローラーで作成したプロジェクトを選択し、右クリック&プロパティ(R)
    3. Javaのビルド・パス→ライブラリー(L)→外部JARの追加(X)
    4. 先ほど展開したフォルダ内にあるsmartgwt.jarsmartgwt-skins.jarを追加する
      smartgwt-skins.jarは、追加のskin(BlackOps, Fleet, SilverWave, TreeFrog)を使用する際に必要。
      標準のskin(Enterprise)や、smartgwt.jarに含まれるskin(EnterpriseBlue, Graphite)を使用するのであれば不要です。

  3. 作成したプロジェクト内のxml及びhtmlへの追記

    xxxxx.GWT.xmlへ以下を追記する
  <!-- SmartGWTのコア -->
  <inherits name="com.smartgwt.SmartGwt"/>

   ※Enterprise以外のskinを使用するなら、下記も追加

  <!-- EnterpriseBlueを使用する場合 -->
  <inherits name="com.smartclient.theme.enterpriseblue.EnterpriseBlue"/>
  <!-- Graphiteを使用する場合 -->
  <inherits name="com.smartclient.theme.graphite.Graphite"/>

  <!-- BlackOpsを使用する場合 -->
  <inherits name="com.smartclient.theme.blackops.BlackOps"/>
  <!-- Fleetを使用する場合 -->
  <inherits name="com.smartclient.theme.fleet.Fleet"/>
  <!-- SilverWaveを使用する場合 -->
  <inherits name="com.smartclient.theme.silverwave.SilverWave"/>
  <!-- TreeFrogを使用する場合 -->
  <inherits name="com.smartclient.theme.treefrog.TreeFrog"/>


   xxxxx.htmlへ以下を追記する

        <!-- 重要:SmartGWTリソースの参照先を指定 -->
	<script> var isomorphicDir = "xxxxx/sc/"; </script>

        <!-- 使用するskinに応じて、適宜書き換えて下さい... -->
	<script>
		var currentSkin = "Enterprise";
		//var currentSkin = "EnterpriseBlue";
		//var currentSkin = "Graphite";
		//var currentSkin = "BlackOps";
		//var currentSkin = "Fleet";
		//var currentSkin = "SilverWave";
		//var currentSkin = "TreeFrog";
        </script>

        <!-- skinをloadする処理... -->
	<script type="text/javascript">document.write("<"+"script src=xxxxx/sc/skins/" + currentSkin +
 	"/load_skin.js?isc_version=7.1.js><"+"/script>");</script>

※2010/05/19追記

SmartGWT 2.2以降から、 は不要となりました。

Theme(skin)をアプリケーション側から切り替えたい場合…

こちらにまとめました
俺とSmartGWT 〜Theme(skin)の切り替えについて〜 - 俺と何某。

警告の回避

The following classpath entry '..\smartgwt-2.x\smartgwt.jar' will not be available on the server's classpath
The following classpath entry '..\smartgwt-2.x\smartgwt-skins.jar' will not be available on the server's classpath

上記のような警告が出た場合は、下記設定で警告表示を抑制できる模様

  1. プロジェクトエクスプローラーで作成したプロジェクトを選択し、右クリック&プロパティ(R)
  2. Google→Web アプリケーションを選択し、
    WEB-INF/lib の外にあるビルド・パス・エントリーに関する警告を抑制: を表示
  3. 追加ボタンを押し、smartgwt.jarsmartgwt-skins.jarを追加する


取り敢えずここまで。
いずれ追加修正するかも