2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

GWTとBootstrapを組み合わせて使う

Posted at

#Who
GWT SDK 2.6.1
Bootstrap 3.3.4

#What
GWTとBootstrapを組み合わせてUIを作成する。

#When, Where
クライアントサイド

#Why
Javascriptで大きめのプログラムを書くのは大変なので、GWTを使って書きたい。
Javascriptを正しく書くための知識がない。
CSSの知識もほぼ0なので、フレームワークがあるのであれば利用したい。
→GWTとBootstrapを組み合わせて利用する方法を調査する。

#How
htmlに
<link href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css" rel="stylesheet">と
<script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>
を追加。
jQueryがないというエラーが出るのでそれも追加。

GwtSample.html
<!doctype html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<link
	href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css"
	rel="stylesheet">
<title>GwtSample</title>
<script type="text/javascript" language="javascript"
	src="gwtsample/gwtsample.nocache.js"></script>
</head>

<body>
	<iframe src="javascript:''" id="__gwt_historyFrame" tabIndex='-1'
		style="position: absolute; width: 0; height: 0; border: 0"></iframe>

	<script
		src="//ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>
	<script
		src="//maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>
</body>
</html>

UiBinderを使ってUIを作成する。
Bootstrapを利用するためには適切なclassを追加してやればよい。
addStyleNamesで要素にclassを追加することができる。
また、g:Buttonで任意のhtml要素を包含することができるので、Bootstrapの例(http://getbootstrap.com/components/)
にあるようにspanを包含し、絵付きのボタンを作成することができる。

GwtSample.ui.xml
<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent">
<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder"
	xmlns:g="urn:import:com.google.gwt.user.client.ui">
	<ui:style>
	</ui:style>
	<g:HTMLPanel>
		Hello,
		<g:Button addStyleNames='btn btn-default' ui:field="button">
			<span aria-hidden="true" class="glyphicon glyphicon-eye-open"></span>
		</g:Button>
	</g:HTMLPanel>
</ui:UiBinder> 

DesignタブでCSS適用後のUIが確認できる。
CSS適用後のUI

ButtonのクリックイベントはGWTで処理する。

GwtSample.java
public class GwtSample extends Composite {

  private static GwtSampleUiBinder uiBinder = GWT.create(GwtSampleUiBinder.class);

  interface GwtSampleUiBinder extends UiBinder<Widget, GwtSample> {
  }

  public GwtSample() {
    initWidget(uiBinder.createAndBindUi(this));
  }

  @UiField
  Button button;

  public GwtSample(final String firstName) {
    initWidget(uiBinder.createAndBindUi(this));
    button.setText(firstName);
  }

  @UiHandler("button")
  void onClick(final ClickEvent e) {
    Window.alert("Hello!");
  }

}
2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?