GWTとBootstrapの併用でレスポンシブWebデザイン
概要
GWTとBootstrap3でレスポンシブWebデザインをするときのサンプルと注意事項
GWTBootstrapなるオープンソースもあるけど日本語資料が少ないので今回は使用しない。
GWT-Bootstrap
メリット
javaコードに画面のレイアウト情報が入ってこないので、ビジネスロジックがすっきりする。
(画面レイアウトのためにFlexTableなどを使用する必要がない。)
レイアウト情報はhtmlファイルに集中するので再編集しやすい。
日本語資料の多いBootstrapで画面レイアウトを行うことができる。
サンプル
GWTとBootstrap3を通常通り使用する。
HTMLは普通にBootstrapを使用するときと同じ。
GWTモジュールではidに対応するdiv要素を探して、クリックハンドラを追加。
Main.html
<!-- BootstrapのCSS読み込み --> <link href="css/bootstrap.min.css" rel="stylesheet"> <!-- jQuery読み込み --> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script> <!-- BootstrapのJS読み込み --> <script src="js/bootstrap.min.js"></script> <!-- gwtアプリ読み込み --> <script type="text/javascript" language="javascript" src="main/Main.nocache.js"></script> <!-- 中略 --> <div class="container"> <div class="col-md-1 btn btn-default"> <div id="btnPanel1"> <img src="/img/1.png"> <div>ボタン1</div> </div> </div> <div class="col-md-1 btn btn-default"> <div id="btnPanel2"> <img src="/img/2.png"> <div>ボタン2</div> </div> </div> </div>
Main.java
public void onModuleLoad() { { RootPanel.get("btnPanel1").addDomHandler( new ClickHandler() { public void onClick(ClickEvent event) { fireBtn1Event(); } }, ClickEvent.getType()); } }
注意事項
- HTMLの記述は、先にbootstrap関連を読み込み、次にGWT関連を読み込む
以下のエラーが出るとき
Uncaught TypeError: Cannot read property 'appendChild' of null