2012年2月29日水曜日

grailsとjquery-ui pluginでプログレスバーを表示する

grailsとjquery-ui pluginでプログレスバーを表示するには、以下の手順を実行します。

1. pluginのインストール
grails install-plugin jquery-ui
2. main.gspに以下のようにr:requireを使用してリソースを導入します。
  <g:layoutHead/>
<!-- jquery-uiを使用 -->
<r:require module="jquery-ui"/>
        <r:layoutResources />
3. ビューのgspに以下のようなコードを追加します。
<div id="progressbar"></div>
<script type="text/javascript">
  $(function(){
    $("#progressbar").progressbar({value:77});
  });
</script>
出力画面

動作環境
grails 2.0.1

2012年2月28日火曜日

grailsとjquery-ui pluginで日付選択ダイアログを表示する

grailsとjquery-ui pluginで日付選択ダイアログを表示するには、以下の手順を実行します。

1. pluginのインストール
grails install-plugin jquery-ui
2. main.gspに以下のようにr:requireを使用してリソースを導入します。
  <g:layoutHead/>
<!-- jquery-uiを使用 -->
<r:require module="jquery-ui"/>
        <r:layoutResources />
3. ビューのgspに以下のようなコードを追加します。
<div>
  <input id="datepicker" name="startdate" type="text" />
</div>
<script type="text/javascript">
  $(function(){
    $("#datepicker").datepicker();
  });
</script>
出力画面

動作環境
grails 2.0.1

2012年2月27日月曜日

grailsとjquery-ui pluginでアコーディオンを表示する

grailsとjquery-ui pluginでアコーディオンを表示するには、以下の手順を実行します。

1. pluginのインストール
grails install-plugin jquery-ui
2. main.gspに以下のようにr:requireを使用してリソースを導入します。
  <g:layoutHead/>
<!-- jquery-uiを使用 -->
<r:require module="jquery-ui"/>
        <r:layoutResources />
3. ビューのgspに以下のようなコードを追加します。
<div id="accordion">
  <h3><a href="#">お知らせ</a></h3>
  <div>
    本日のお知らせ
  </div>
  <h3><a href="#">TODO</a></h3>
  <div>
    TO DOリスト
  </div>
  <h3><a href="#">ブックマーク</a></h3>
  <div>
    お気に入りリスト
  </div>
</div>
<script type="text/javascript">
  $(function(){
    $("#accordion").accordion();
  });
</script>
出力画面

動作環境
grails 2.0.1

2012年2月26日日曜日

grailsとjquery-ui pluginでタブを表示する

grailsとjquery-ui pluginでタブを表示するには、以下の手順を実行します。

1. pluginのインストール
grails install-plugin jquery-ui
2. main.gspに以下のようにr:requireを使用してリソースを導入します。
  <g:layoutHead/>
<!-- jquery-uiを使用 -->
<r:require module="jquery-ui"/>
        <r:layoutResources />
3. ビューのgspに以下のようなコードを追加します。
<div id="tabs" style="overflow:hidden;">
  <ul>
    <li><a href="#tab1">基本設定</a></li>
    <li><a href="#tab2">詳細設定</a></li>
    <li><a href="#tab3">プレビュー</a></li>
  </ul>
  <div id="tab1">
    <p>基本設定画面</p>
  </div>
  <div id="tab2">
    詳細設定画面
  </div>
  <div id="tab3">
    プレビュー画面
  </div>
</div>
<script type="text/javascript">
  $(function(){
    $("#tabs").tabs();
  });
</script>
出力画面

動作環境
grails 2.0.1

2012年2月25日土曜日

grailsとjquery-ui pluginでダイアログを表示する

grailsとjquery-ui pluginでダイアログを表示するには、以下の手順を実行します。

1. pluginのインストール
grails install-plugin jquery-ui
2. main.gspに以下のようにr:requireを使用してリソースを導入します。
  <g:layoutHead/>
<!-- jquery-uiを使用 -->
<r:require module="jquery-ui"/>
        <r:layoutResources />
3. ビューのgspに以下のようなコードを追加します。
<div id="mydialog" title="grailsアプリケーション">
  <p>サンプルダイアログです。</p>
</div>
<script type="text/javascript">
  $(function(){
    $("#mydialog").dialog();
  });
</script>
出力画面

動作環境
grails 2.0.1

2012年2月24日金曜日

grailsとjquery-ui pluginでDOM要素をドラッグできるようにする

grailsとjquery-ui pluginでDOM要素をドラッグできるようにするには、以下の手順を実行します。

1. pluginのインストール
grails install-plugin jquery-ui
2. main.gspに以下のようにr:requireを使用してリソースを導入します。
  <g:layoutHead/>
<!-- jquery-uiを使用 -->
<r:require module="jquery-ui"/>
        <r:layoutResources />
3. ビューのgspに以下のようなコードを追加します。
<div id="draggable" style="width: 100px; height: 100px; background-color: #ccddff;">
  <p>ドラッグできます</p>
</div>
<script type="text/javascript">
  $(function(){
    $("#draggable").draggable();
  });
</script>
出力画面

動作環境
grails 2.0.1

2012年2月23日木曜日

grailsとjquery-ui pluginでアイコンつきのボタンを表示する

grailsとjquery-ui pluginでアイコンつきのボタンを表示するには、以下の手順を実行します。

1. pluginのインストール
grails install-plugin jquery-ui
2. main.gspに以下のようにr:requireを使用してリソースを導入します。
  <g:layoutHead/>
<!-- jquery-uiを使用 -->
<r:require module="jquery-ui"/>
        <r:layoutResources />
3. ビューのgspに以下のようなコードを追加します。
<div>
  <button id="config">設定</button>
</div>
<script type="text/javascript">
  $(function(){
    $("#config").button({
      icons: {primary: "ui-icon-gear"}
    });
  });
</script>
出力画面

動作環境
grails 2.0.1

2012年2月22日水曜日

grailsとjquery-ui pluginでcheckboxをトグルボタン化する

grailsとjquery-ui pluginでcheckboxをトグルボタン化するには、以下の手順を実行します。

1. pluginのインストール
grails install-plugin jquery-ui
2. main.gspに以下のようにr:requireを使用してリソースを導入します。
  <g:layoutHead/>
<!-- jquery-uiを使用 -->
<r:require module="jquery-ui"/>
        <r:layoutResources />
3. ビューのgspに以下のようなコードを追加します。
<div>
  <input type="checkbox" value="value" id="checkbox1" /><label for="checkbox1">トグルボタン</label>
</div>
<script type="text/javascript">
  $(function(){
    $("#checkbox1").button();
  });
</script>
出力画面

動作環境
grails 2.0.1

2012年2月21日火曜日

grailsとjquery-ui pluginでradioボタンをボタン化する

grailsとjquery-ui pluginでradioボタンをボタン化するには、以下の手順を実行します。

1. pluginのインストール
grails install-plugin jquery-ui
2. main.gspに以下のようにr:requireを使用してリソースを導入します。
  <g:layoutHead/>
<!-- jquery-uiを使用 -->
<r:require module="jquery-ui"/>
        <r:layoutResources />
3. ビューのgspに以下のようなコードを追加します。
<div id="radiobuttons">
  <input type="radio" id="radio1" name="radio" value="1" checked="checked" /><label for="radio1">選択1</label>
  <input type="radio" id="radio2" name="radio" value="2" /><label for="radio2">選択2</label>
  <input type="radio" id="radio3" name="radio" value="3" /><label for="radio3">選択3</label>
</div>
<script type="text/javascript">
  $(function(){
    $("#radiobuttons").buttonset();
  });
</script>
画面イメージ

動作環境
grails 2.0.1

2012年2月20日月曜日

grailsとjquery-ui pluginでbuttonタグ、アンカー、submitボタンをボタン化する

grailsとjquery-ui pluginでbuttonタグ、アンカー、submitボタンをボタン化するには、以下の手順を実行します。

1. pluginのインストール
grails install-plugin jquery-ui
2. main.gspに以下のようにr:requireを使用してリソースを導入します。
  <g:layoutHead/>
<!-- jquery-uiを使用 -->
<r:require module="jquery-ui"/>
        <r:layoutResources />
3. ビューのgspに以下のようなコードを追加します。
<div>
  <button>テスト1</button>
  <a href="#" class="button">テスト2</a>
  <input type="submit" value="テスト3" class="button" />
</div>
<script type="text/javascript">
  $(function(){
    $("button").button();
    $("button").click(function(){
      alert("テスト1をクリックしました。");
    });
    $("a.button").button();
    $("a.button").click(function(){
      alert("テスト2をクリックしました。");
    });
    $("input.button").button();
    $("input.button").click(function(){
      alert("テスト3をクリックしました。");
    });
  });
</script>
出力イメージ

動作環境
grails 2.0.1

groovyでdrupalのコメントを削除する

groovyでdrupalのコメントを削除するには、以下のコードを実行します。
@Grab(group='org.apache.httpcomponents', module='httpclient', version='4.1.2')
import org.apache.http.*
import org.apache.http.client.*
import org.apache.http.client.entity.*
import org.apache.http.client.methods.*
import org.apache.http.impl.client.*
import org.apache.http.message.*
import org.apache.http.protocol.*

// ログイン
httpclient = new DefaultHttpClient()
method = new HttpPost("http://localhost/drupal/rest/user/login")
values = [
  new BasicNameValuePair("username", "drupal"),
  new BasicNameValuePair("password", "drupal")
]
method.setEntity(new UrlEncodedFormEntity(values, HTTP.UTF_8))
response = httpclient.execute(method)

println response.getStatusLine().getStatusCode()
println response.getEntity().getContent().text

// コメントを削除
cid = 3
method = new HttpDelete("http://localhost/drupal/rest/comment/${cid}")
response = httpclient.execute(method)

println response.getStatusLine().getStatusCode()
println response.getEntity().getContent().text

// ログアウト
method = new HttpGet("http://localhost/drupal/user/logout")
response = httpclient.execute(method)
println response.getStatusLine().getStatusCode()

動作環境
groovy 1.8.4, JDK7 Update1, drupal 7.1.0, services-7.x-3.1, ctools-7.x-1.0-rc1, spyc-0.5

2012年2月18日土曜日

groovyでdrupalのコメントを更新する

groovyでdrupalのコメントを更新するには、以下のコードを実行します。
@Grab(group='org.apache.httpcomponents', module='httpclient', version='4.1.2')
import org.apache.http.*
import org.apache.http.client.*
import org.apache.http.client.entity.*
import org.apache.http.client.methods.*
import org.apache.http.impl.client.*
import org.apache.http.message.*
import org.apache.http.protocol.*

// ログイン
httpclient = new DefaultHttpClient()
method = new HttpPost("http://localhost/drupal/rest/user/login")
values = [
  new BasicNameValuePair("username", "drupal"),
  new BasicNameValuePair("password", "drupal")
]
method.setEntity(new UrlEncodedFormEntity(values, HTTP.UTF_8))
response = httpclient.execute(method)

println response.getStatusLine().getStatusCode()
println response.getEntity().getContent().text

// コメントを更新
cid = 3
method = new HttpPut("http://localhost/drupal/rest/comment/${cid}")
values = [
  new BasicNameValuePair('name', 'drupal'),
  new BasicNameValuePair('subject',
    'groovyでのコメント。更新しました。'),
  new BasicNameValuePair('comment_body[und][0][value]',
    'groovyでコメント作成。更新しました。'),
  new BasicNameValuePair('nid', '2')
]
method.setEntity(new UrlEncodedFormEntity(values, HTTP.UTF_8))
response = httpclient.execute(method)

println response.getStatusLine().getStatusCode()
println response.getEntity().getContent().text

// ログアウト
method = new HttpGet("http://localhost/drupal/user/logout")
response = httpclient.execute(method)
println response.getStatusLine().getStatusCode()

動作環境
groovy 1.8.4, JDK7 Update1, drupal 7.1.0, services-7.x-3.1, ctools-7.x-1.0-rc1, spyc-0.5

2012年2月16日木曜日

groovyでdrupalのコメントを作成する

groovyでdrupalのコメントを作成するには、以下のコードを実行します。
@Grab(group='org.apache.httpcomponents', module='httpclient', version='4.1.2')
import org.apache.http.*
import org.apache.http.client.*
import org.apache.http.client.entity.*
import org.apache.http.client.methods.*
import org.apache.http.impl.client.*
import org.apache.http.message.*
import org.apache.http.protocol.*

// ログイン
httpclient = new DefaultHttpClient()
method = new HttpPost("http://localhost/drupal/rest/user/login")
values = [
  new BasicNameValuePair("username", "drupal"),
  new BasicNameValuePair("password", "drupal")
]
method.setEntity(new UrlEncodedFormEntity(values, HTTP.UTF_8))
response = httpclient.execute(method)

println response.getStatusLine().getStatusCode()
println response.getEntity().getContent().text

// 新しいコメントを作成
method = new HttpPost("http://localhost/drupal/rest/comment")
values = [
  new BasicNameValuePair('name', 'drupal'),
  new BasicNameValuePair('subject', 'groovyでのコメント'),
  new BasicNameValuePair('comment_body[und][0][value]',
    'groovyでコメント作成'),
  new BasicNameValuePair('nid', '2')
]
method.setEntity(new UrlEncodedFormEntity(values, HTTP.UTF_8))
response = httpclient.execute(method)

println response.getStatusLine().getStatusCode()
println response.getEntity().getContent().text

// ログアウト
method = new HttpGet("http://localhost/drupal/user/logout")
response = httpclient.execute(method)
println response.getStatusLine().getStatusCode()

動作環境
groovy 1.8.4, JDK7 Update1, drupal 7.1.0, services-7.x-3.1, ctools-7.x-1.0-rc1, spyc-0.5

2012年2月14日火曜日

groovyでdrupalの特定のコメントの情報を取得する

groovyでdrupalの特定のコメントの情報を取得するには、以下のコードを実行します。
@Grab(group='org.apache.httpcomponents', module='httpclient', version='4.1.2')
import org.apache.http.client.methods.*
import org.apache.http.impl.client.*
import groovy.json.*

httpclient = new DefaultHttpClient()
// 特定のコメントの情報を取得する
cid="2"
method = new HttpGet("http://localhost/drupal/rest/comment/${cid}.json")
response = httpclient.execute(method)
json = new JsonSlurper().parseText(response.getEntity().getContent().text)
println "題名:${json.subject}"
println "ユーザ:${json.name}"
println "created:${new Date(Long.parseLong(json.created)*1000)}"
println "内容:${json.comment_body.und[0].value}"

動作環境
groovy 1.8.4, JDK7 Update1, drupal 7.1.0, services-7.x-3.1, ctools-7.x-1.0-rc1, spyc-0.5

2012年2月13日月曜日

wsliteでdrupalの記事の一覧を取得する

wsliteでdrupalの記事の一覧を取得するには、以下のコードを実行します。
@Grab(group='com.github.groovy-wslite', module='groovy-wslite', version='0.5.2')
import wslite.rest.*

client = new RESTClient("http://localhost/drupal/rest/node.json")
response = client.get()
response.json.each {
  println "title:${it.title}"
  println "url:${it.uri}"
  println "created:${new Date(Long.parseLong(it.created)*1000)}"
}

動作環境
groovy 1.8.4, JDK7 Update1, drupal 7.1.0, services-7.x-3.1, ctools-7.x-1.0-rc1, spyc-0.5

2012年2月12日日曜日

groovyでdrupalのコメントの一覧を取得する

groovyでdrupalのコメントの一覧を取得するには、以下のコードを実行します。
@Grab(group='org.apache.httpcomponents', module='httpclient', version='4.1.2')
import org.apache.http.client.methods.*
import org.apache.http.impl.client.*
import groovy.json.*

httpclient = new DefaultHttpClient()
// コメントの一覧を取得する
method = new HttpGet("http://localhost/drupal/rest/comment.json")
response = httpclient.execute(method)
json = new JsonSlurper().parseText(response.getEntity().getContent().text)
println json
json.each {
  println "cid:${it.cid}"
  println "題名:${it.subject}"
  println "ユーザ:${it.name}"
  println "nid:${it.nid}"
}

動作環境
groovy 1.8.4, JDK7 Update1, drupal 7.1.0, services-7.x-3.1, ctools-7.x-1.0-rc1, spyc-0.5

2012年2月11日土曜日

groovyとApache CamelでHTTP4 Componentを使用してウェブサイトのコンテンツを取得する

groovyとApache CamelでHTTP4 Componentを使用してウェブサイトのコンテンツを取得するには、以下のコードを実行します。
@Grab(group='postgresql', module='postgresql', version='9.1-901.jdbc4')
@Grab(group="org.apache.camel", module="camel-core", version="2.9.0")
@Grab(group="org.apache.camel", module="camel-http4", version="2.9.0")
@Grab(group="org.slf4j", module="slf4j-simple", version="1.6.4")
//@Grab(group="org.slf4j", module="slf4j-nop", version="1.6.4")
import org.apache.camel.*
import org.apache.camel.builder.*
import org.apache.camel.impl.*

ctx = new DefaultCamelContext()
ctx.addRoutes(new RouteBuilder(){
  void configure()
  {
    from("direct:http")
      .setHeader("CamelHttpMethod", constant("GET"))
      .to("http4://groovy.codehaus.org")
      .process(
        { exc ->
          println "content:" + exc.getIn().getBody().text
          // レスポンスコードを取得
          println "response code:" + 
            exc.getIn().getHeader(Exchange.HTTP_RESPONSE_CODE)
        } as Processor
      )
  }
})
ctx.start()
template = ctx.createProducerTemplate()
template.sendBody("direct:http", "")
ctx.stop()


動作環境
groovy 1.8.5, JDK7 Update2, Apache Camel 2.9.0

2012年2月10日金曜日

groovyでdrupalのユーザを削除する

groovyでdrupalのユーザを削除するには、以下のコードを実行します。
@Grab(group='org.apache.httpcomponents', module='httpclient', version='4.1.2')
import org.apache.http.*
import org.apache.http.client.*
import org.apache.http.client.entity.*
import org.apache.http.client.methods.*
import org.apache.http.impl.client.*
import org.apache.http.message.*
import org.apache.http.protocol.*
import groovy.json.*

// ログイン
httpclient = new DefaultHttpClient()
method = new HttpPost("http://localhost/drupal/rest/user/login")
values = [
  new BasicNameValuePair("username", "drupal"),
  new BasicNameValuePair("password", "drupal")
]
method.setEntity(new UrlEncodedFormEntity(values, HTTP.UTF_8))
response = httpclient.execute(method)

println response.getStatusLine().getStatusCode()
println response.getEntity().getContent().text

// ユーザを削除する
uid="9"
method = new HttpDelete("http://localhost/drupal/rest/user/${uid}")
response = httpclient.execute(method)
println response.getStatusLine().getStatusCode()
println response.getEntity().getContent().text

// ログアウト
method = new HttpGet("http://localhost/drupal/user/logout")
response = httpclient.execute(method)
println response.getStatusLine().getStatusCode()

動作環境
groovy 1.8.4, JDK7 Update1, drupal 7.1.0, services-7.x-3.1, ctools-7.x-1.0-rc1, spyc-0.5

2012年2月9日木曜日

groovyとApache CamelでStringTemplate Componentを使用してメッセージをフォーマットする

groovyとApache CamelでStringTemplate Componentを使用してメッセージをフォーマットするには、以下のコードを実行します。
@Grab(group='postgresql', module='postgresql', version='9.1-901.jdbc4')
@Grab(group="org.apache.camel", module="camel-core", version="2.9.0")
@Grab(group="org.apache.camel", module="camel-stringtemplate", version="2.9.0")
@Grab(group="org.slf4j", module="slf4j-simple", version="1.6.4")
//@Grab(group="org.slf4j", module="slf4j-nop", version="1.6.4")
import org.apache.camel.*
import org.apache.camel.builder.*
import org.apache.camel.impl.*

ctx = new DefaultCamelContext()
ctx.addRoutes(new RouteBuilder(){
  void configure()
  {
    from("direct:issue")
      .to("string-template:issue.tm")
  }
})
ctx.start()
// exchangeを作成して、endpointに送信
endpoint = ctx.getEndpoint("direct:issue")
exc = endpoint.createExchange()
exc.getIn().setHeader("subject", "題名")
exc.getIn().setHeader("priority", "High")
exc.getIn().setBody("本文部分")
template = ctx.createProducerTemplate()
out = template.send(endpoint, exc)
println out.getOut().getBody()
ctx.stop()

○テンプレート例(issue.tm, UTF-8で保存する)
障害タイトル:$headers.subject$
プライオリティ:$headers.priority$

詳細
$body$

動作環境
groovy 1.8.5, JDK7 Update2, Apache Camel 2.9.0

2012年2月8日水曜日

groovyでdrupalのユーザを登録する

groovyでdrupalのユーザを登録するには、以下のコードを実行します。
@Grab(group='org.apache.httpcomponents', module='httpclient', version='4.1.2')
import org.apache.http.*
import org.apache.http.client.*
import org.apache.http.client.entity.*
import org.apache.http.client.methods.*
import org.apache.http.impl.client.*
import org.apache.http.message.*
import org.apache.http.protocol.*
import groovy.json.*

// ログイン
httpclient = new DefaultHttpClient()
method = new HttpPost("http://localhost/drupal/rest/user/login")
values = [
  new BasicNameValuePair("username", "drupal"),
  new BasicNameValuePair("password", "drupal")
]
method.setEntity(new UrlEncodedFormEntity(values, HTTP.UTF_8))
response = httpclient.execute(method)

println response.getStatusLine().getStatusCode()
println response.getEntity().getContent().text

// ユーザを登録する
method = new HttpPost("http://localhost/drupal/rest/user.json")
values = [
  new BasicNameValuePair('name', 'newuser'),
  new BasicNameValuePair('mail', 'youraccount@gmail.com'),
  new BasicNameValuePair('pass', 'drupal')
]
method.setEntity(new UrlEncodedFormEntity(values, HTTP.UTF_8))
response = httpclient.execute(method)
json = new JsonSlurper().parseText(response.getEntity().getContent().text)
println json

// ログアウト
method = new HttpGet("http://localhost/drupal/user/logout")
response = httpclient.execute(method)
println response.getStatusLine().getStatusCode()

動作環境
groovy 1.8.4, JDK7 Update1, drupal 7.1.0, services-7.x-3.1, ctools-7.x-1.0-rc1, spyc-0.5