2010年11月30日火曜日

groovyとApache ClickでLabelを使用する

groovyとApache ClickでLabelを使用するには、以下のコードを実行します。

1.ページクラス
LabelTest.groovy
package com.blogspot.groovyarekore.click

import org.apache.click.*
import org.apache.click.control.*

class LabelTest extends Page
{
def form = new Form("form")

public LabelTest()
{
form.add(new Label("label1", "名前を入力してください。"));
form.add(new TextField("name1", "名前"));
form.add(new Submit("ok", "OK", this, "onOkClick"));
addControl(form)
}
def onOkClick()
{
addModel("msg1", "こんにちは、${form.getFieldValue("name1")}さん")
return true
}
}

2.HTMLページ
label-test.htm
<html>
<head><title>label test</title></head>
$headElements
<body>
#if ($msg1)
$msg1<br />
#else
$form<br />
#end
$jsElements
</body>
</html>

ブラウザから以下のURLにアクセスします。
http://localhost:8080/(warの名前)/label-test.htm

動作環境
JDK6 Update22, Groovy 1.7.5, Apache Click 2.2.0, Apache Tomcat 7.0.4

関連情報
ビルドの仕方などは「groovyとApache ClickでHello Worldを作成する 」を参照
http://groovyarekore.blogspot.com/2010/11/groovyapache-clickhello-world.html

2010年11月29日月曜日

groovyとApache ClickでHiddenFieldを使用する

groovyとApache ClickでHiddenFieldを使用するには、以下のコードを実行します。

1.ページクラス
HiddenTest.groovy
package com.blogspot.groovyarekore.click

import org.apache.click.*
import org.apache.click.control.*

class HiddenTest extends Page
{
def form = new Form("form")

public HiddenTest()
{
form.add(new HiddenField("hidden1", "groovy"));
form.add(new Submit("ok", "OK", this, "onOkClick"));
addControl(form)
}
def onOkClick()
{
addModel("msg1", "${form.getFieldValue("hidden1")}")
return true
}
}

2.HTMLページ
hidden-test.htm
<html>
<head><title>hidden test</title></head>
$headElements
<body>
#if ($msg1)
$msg1<br />
#else
$form<br />
#end
$jsElements
</body>
</html>

ブラウザから以下のURLにアクセスします。
http://localhost:8080/(warの名前)/hidden-test.htm

動作環境
JDK6 Update22, Groovy 1.7.5, Apache Click 2.2.0, Apache Tomcat 7.0.4

関連情報
ビルドの仕方などは「groovyとApache ClickでHello Worldを作成する 」を参照
http://groovyarekore.blogspot.com/2010/11/groovyapache-clickhello-world.html

groovyとoracleでディレクトリオブジェクトを列挙する

groovyとoracleでディレクトリオブジェクトを列挙するには、以下のコードを実行します。

import groovy.sql.Sql

sql = Sql.newInstance(
"jdbc:oracle:thin:@oraclesrv:1521:orcl",
"system",
"manager",
"oracle.jdbc.driver.OracleDriver")

// ディレクトリオブジェクトを列挙する
query = """
select owner, directory_name, directory_path
from all_directories
order by owner, directory_name
"""
sql.eachRow(query){
println("${it.owner},${it.directory_name},${it.directory_path}")
}



動作環境
groovy 1.7.5, JDK6 Update22, Oracle11g R2

関連情報
ALL_DIRECTORIES
http://download.oracle.com/docs/cd/E11882_01/server.112/e17110/statviews_1077.htm#sthref1122

2010年11月28日日曜日

groovyとApache POIを使用してセルにハイパーリンクを設定する

groovyとApache POIを使用してセルにハイパーリンクを設定するには、以下のコードを実行します。

import org.apache.poi.ss.usermodel.*;

workbook = WorkbookFactory.create(new FileInputStream("test1.xlsx"))
sheet = workbook.getSheetAt(0)
row = 5
column = 0
// 文字列型でセルの値を設定
if( sheet.getRow(row) == null ){
// 既存の行が存在しない場合は行を作成
sheet.createRow(row)
}
if( sheet.getRow(row).getCell(column) == null ){
// 既存のセルが存在しない場合はセルを作成
sheet.getRow(row).createCell(column)
}
// ハイパーリンクを作成
hyperlink = workbook.getCreationHelper().createHyperlink(Hyperlink.LINK_URL)
hyperlink.setLabel("groovyあれこれ")
hyperlink.setAddress("http://groovyarekore.blogspot.com")
sheet.getRow(row).getCell(column).setCellValue("groovyあれこれ")
sheet.getRow(row).getCell(column).setHyperlink(hyperlink)

// 一重下線と青色を設定
font = workbook.createFont();
font.setFontHeightInPoints((short)10)
font.setFontName("MS ゴシック")
font.setUnderline(Font.U_SINGLE)
font.setColor(IndexedColors.BLUE.getIndex())
cs = workbook.createCellStyle()
cs.setFont(font)
cs = sheet.getRow(row).getCell(column).setCellStyle(cs)

workbook.write(new FileOutputStream("test3.xlsx"))



入力Excel(test1.xlsx)


出力Excel(test3.xlsx)


※$GROOVY_HOME/libにPOI関連のjarを追加しておくこと。
・poi-3.7-20101029.jar
・poi-ooxml-3.7-20101029.jar
・poi-ooxml-schemas-3.7-20101029.jar
・log4j-1.2.13.jar;
・geronimo-stax-api_1.0_spec-1.0.jar
・xmlbeans-2.3.0.jar
・dom4j-1.6.1.jar

動作環境
JDK6 Update 22, groovy 1.7.5, Apache POI 3.7

groovyとApache ClickでCheckboxを使用する

groovyとApache ClickでCheckboxを使用するには、以下のコードを実行します。

1.ページクラス
CheckboxTest.groovy
package com.blogspot.groovyarekore.click

import org.apache.click.*
import org.apache.click.control.*

class CheckboxTest extends Page
{
def form = new Form("form")

public CheckboxTest()
{
form.add(new Checkbox("checkbox1", "フィールド1"));
form.add(new Checkbox("checkbox2", "フィールド2"));
form.add(new Submit("ok", "OK", this, "onOkClick"));
addControl(form)
}
def onOkClick()
{
addModel("msg1", "${form.getFieldValue("checkbox1")}")
addModel("msg2", "${form.getFieldValue("checkbox2")}")
return true
}
}


2.HTMLページ
checkbox-test.htm
<html>
<head><title>checkbox test</title></head>
$headElements
<body>
#if ($msg1)
$msg1<br />
$msg2
#else
$form<br />
#end
$jsElements
</body>
</html>


ブラウザから以下のURLにアクセスします。
http://localhost:8080/(warの名前)/checkbox-test.htm

出力画面


動作環境
JDK6 Update22, Groovy 1.7.5, Apache Click 2.2.0, Apache Tomcat 7.0.4

関連情報
ビルドの仕方などは「groovyとApache ClickでHello Worldを作成する 」を参照
http://groovyarekore.blogspot.com/2010/11/groovyapache-clickhello-world.html

groovyとoracleでディレクトリオブジェクトを作成する

groovyとoracleでディレクトリオブジェクトを作成するには、以下のコードを実行します。

import groovy.sql.Sql

sql = Sql.newInstance(
"jdbc:oracle:thin:@oraclesrv:1521:orcl",
"system",
"manager",
"oracle.jdbc.driver.OracleDriver")

// ディレクトリオブジェクトの作成
query = """
CREATE OR REPLACE DIRECTORY external_tables AS 'E:\\external_tables'
"""
sql.execute(query)



動作環境
groovy 1.7.5, JDK6 Update22, Oracle11g R2

関連情報
CREATE DIRECTORY
http://download.oracle.com/docs/cd/E11882_01/server.112/e17118/statements_5007.htm#i2061958

2010年11月27日土曜日

ScriptomとExcelのまとめ

ScriptomとExcelのまとめ

ワークシートの操作


  1. ScriptomとExcelでワークシートの情報を表示する

  2. ScriptomとExcelでワークシートを追加する

  3. ScriptomとExcelでワークシートを削除する

  4. ScriptomとExcelでワークシートを移動する

  5. ScriptomとExcelでワークシートをコピーする

  6. ScriptomとExcelでシートのヘッダとフッタを設定する

セルの操作


  1. ScriptomとExcelでセルの値を表示する

  2. ScriptomとExcelでセルのユーザ定義書式を設定する

  3. ScriptomとExcelでセルを範囲指定して背景色を設定する

  4. ScriptomとExcelでセルのフォントを太字・取り消し線にする

  5. ScriptomとExcelでセルのフォントの色を設定する

  6. ScriptomとExcelでセルのフォントサイズを指定する

  7. ScriptomとExcelでセルのフォントを設定する

  8. ScriptomとExcelでセルの背景色を設定する

  9. ScriptomとExcelでセルにコメントを追加する

  10. ScriptomとExcelでセルを削除する

  11. ScriptomとExcelでセルをコピーする

  12. ScriptomとExcelでセルを上寄せ表示する

  13. ScriptomとExcelでセルを右寄せ表示する

  14. ScriptomとExcelでセルを結合する

  15. ScriptomとExcelでセルの表示を折り返すように設定する

列・行に対する操作


  1. ScriptomとExcelで列を挿入する

  2. ScriptomとExcelで行を挿入する

  3. ScriptomとExcelで列の幅を自動調整する

  4. ScriptomとExcelで列の幅を設定する

  5. ScriptomとExcelで行の高さを設定する

  6. ScriptomとExcelで列の背景色を設定する

  7. ScriptomとExcelで行の背景色を設定する

ブックに関する操作


  1. ScriptomとExcelで新規ブックを作成する

SimpleODSまとめ

SimpleODSのまとめ

OpenOffice Calcのファイル作成


  1. ODSファイルを作成する

  2. OpenOffice Calcのセルの文字のフォントサイズを設定する

  3. OpenOffice Calcのセルの幅を設定する

  4. OpenOffice Calcのセルの文字色を設定する

  5. OpenOffice Calcのセル文字を太字に設定する

  6. OpenOffice Calcのセルに右寄せ・中央寄せを設定する

  7. OpenOffice Calcのセルに罫線を設定する

  8. OpenOffice Calcのセルを折り返し設定する

  9. OpenOffice Calcの用紙サイズを設定する


関連情報

sardineまとめ

sardineまとめ

コンテンツを操作する


  1. WebDAVサーバ上にファイルをアップロードする

  2. WebDAVサーバ上のリソースをダウンロードする

  3. WebDAVサーバ上のリソースを移動する

  4. WebDAVサーバ上のリソースをコピーする

  5. WebDAVサーバ上のリソースを削除する


コンテンツの情報を取得する


  1. WebDAVサーバ上のファイル・フォルダを列挙する

  2. WebDAVサーバ上のフォルダを列挙する

  3. WebDAVサーバ上のリソースが存在するか調べる

  4. WebDAVサーバ上のリソースのサイズを取得する

  5. WebDAVサーバ上のファイル・フォルダの作成日時・最終更新日時を取得する

  6. WebDAVサーバ上のリソースのURLを取得する

  7. WebDAVサーバ上のリソースのコンテントタイプを取得する


関連情報

groovyとApache ClickでForm,TextFieldを使用する

groovyとApache ClickでForm,TextFieldを使用するには、以下のコードを実行します。

1.ページクラス
FormTest.groovy
package com.blogspot.groovyarekore.click

import org.apache.click.*
import org.apache.click.control.*

class FormTest extends Page
{
def form = new Form("form")

public FormTest()
{
form.add(new TextField("field1", "フィールド1"));
form.add(new TextField("field2", "フィールド2"));
form.add(new Submit("ok", "OK", this, "onOkClick"));
addControl(form)
}
def onOkClick()
{
addModel("msg1", "${form.getFieldValue("field1")}")
addModel("msg2", "${form.getFieldValue("field2")}")
return true
}
}

2.HTMLページ
form-test.htm
<html>
<head><title>form test</title></head>
$headElements
<body>
#if ($msg1)
$msg1<br />
$msg2
#else
$form<br />
#end
$jsElements
</body>
</html>

ブラウザから以下のURLにアクセスします。
http://localhost:8080/(warの名前)/form-test.htm

出力画面


動作環境
JDK6 Update22, Groovy 1.7.5, Apache Click 2.2.0, Apache Tomcat 7.0.4

関連情報
ビルドの仕方などは「groovyとApache ClickでHello Worldを作成する 」を参照
http://groovyarekore.blogspot.com/2010/11/groovyapache-clickhello-world.html

2010年11月26日金曜日

groovyとgooglechartwrapperで棒グラフの色を指定する

groovyとgooglechartwrapperで棒グラフの色を指定するには、以下のコードを実行します。

import java.awt.*
import java.net.*
import javax.imageio.*
import de.toolforge.googlechartwrapper.*
import de.toolforge.googlechartwrapper.data.*
import de.toolforge.googlechartwrapper.label.*
import de.toolforge.googlechartwrapper.util.*
import de.toolforge.googlechartwrapper.style.*
import de.toolforge.googlechartwrapper.coder.*
import de.toolforge.googlechartwrapper.color.*

// 棒グラフ
bc = new BarChart(
new Dimension(250, 250),
BarChart.BarChartOrientation.Horizontal,
BarChart.BarChartStyle.Grouped)
bc.setEncoder(EncoderFactory.getEncoder(
EncodingType.TextEncoding))

// 棒グラフの色を追加
bc.addChartColor(
new ChartColor(
new Color(0x77, 0x99, 0xdd)
)
)

// 値は0-100
data = new BarChartDataSerie.BarChartDataSerieBuilder(
[30, 50, 80, 75, 90]).build()
bc.addBarChartDataSerie(data)

// X軸
xa = new AxisLabelContainer(AxisType.XAxis)
xa.setAxisRange(new AxisRange(0, 5, 1))
bc.addAxisLabelContainer(xa)

// Y軸
ya = new AxisLabelContainer(AxisType.YAxis)
ya.setAxisRange(new AxisRange(0, 100))
bc.addAxisLabelContainer(ya)

bc.setBarWidthAndSpacing(
BarWidthAndSpacing.newAutomaticallyResize())

// URLを取得
println bc.getUrl()
// 画像として保存
bi = MiscUtils.getBufferedImage(bc)
ImageIO.write(bi, "png", new File ("barchart3.png"))



出力画面


※以下のjarを$GROOVY_HOME/libにコピー
googlechartwrapper_1.1.jar

動作環境
groovy 1.7.5, JDK6 Update22, googlechartwrapper 1.1

関連情報
googlechartwrapperのwebサイト
http://code.google.com/p/googlechartwrapper/

groovyとApache ClickでActionLinkを使用する

groovyとApache ClickでActionLinkを使用するには、以下のコードを実行します。

1.ページクラス
ActionLinkTest.groovy
package com.blogspot.groovyarekore.click

import org.apache.click.*
import org.apache.click.control.*

class ActionLinkTest extends Page
{
def link = new ActionLink("link", "テスト")
public ActionLinkTest()
{
link.setListener(this, "onLinkClick")
addControl(link)
}
def onLinkClick()
{
addModel("msg", "clicked..")
return true
}
}

2.HTMLページ
action-link-test.htm
<html>
<head><title>action link test</title></head>
<body>
#if ($msg)
$msg
#else
please click the link below.<br />
$link<br />
#end
</body>
</html>

ブラウザから以下のURLにアクセスします。
http://localhost:8080/(warの名前)/action-button-test.htm

出力画面


動作環境
JDK6 Update22, Groovy 1.7.5, Apache Click 2.2.0, Apache Tomcat 7.0.4

関連情報
ビルドの仕方などは「groovyとApache ClickでHello Worldを作成する 」を参照
http://groovyarekore.blogspot.com/2010/11/groovyapache-clickhello-world.html

EasyGSPをWindowsにインストールする

EasyGSPをWindowsにインストールするには、以下の手順を実行します。

1. http://httpd.apache.org/download.cgi#apache22から
Win32 Binary without crypto (no mod_ssl) (MSI Installer)
(httpd-2.2.17-win32-x86-no_ssl.msi)をダウンロードし、
インストール。

2. http://sites.google.com/site/bigonez/から
mod_scgi for Apache 2 (Windows)
(mod_scgi-1.13-apache-2.zip)をダウンロードし、解凍。
scgi-1.13-apache-2.2.13ディレクトリ以下のmod_scgi.soを
C:\Program Files\Apache Software Foundation\Apache2.2\modulesディレクトリにコピー(環境によってパスを変更)。

3. http://code.google.com/p/easygsp/downloads/listから
easygsp(easygsp-0.4.5.zip )をダウンロードし、解凍。
解凍したeasygsp-0.4.5のディレクトリを指し示すEASYGSP_HOME環境変数を設定。

4. http://code.google.com/p/easygsp/wiki/config_httpの内容をhttpd.confに追加。
以下はEASYGSP_HOME=C:\share\easygsp-0.4.5の場合:
LoadModule scgi_module modules/mod_scgi.so
SCGIMount / 127.0.0.1:4444

<locationmatch (\.js|\.gif|\.jpg|\.ico|\.css|\.swf|\.png|\.tiff|\.jpeg|
\.json|\.zip|\.tar\.gz|\.mp3|\.doc)+$>
SCGIHandler Off
</locationmatch>
<locationmatch "/images|css|js|docs/">
SCGIHandler Off
</locationmatch>

<IfModule dir_module>
DirectoryIndex index.gspx index.gsp index.html
</IfModule>

# point to $EASYGSP_HOME/webapps
DocumentRoot "C:/share/easygsp-0.4.5/webapps"

# point to $EASYGSP_HOME/webapps
<Directory "C:/share/easygsp-0.4.5/webapps">
Options FollowSymLinks

AllowOverride None

Order allow,deny
Allow from all
</Directory>


5. apache httpdをrestart

6. EASYGSP_HOME/binのInstallEasyGSP-NT.batとしてサービスインストール。
7. EasyGSPサービス開始

8. ブラウザから以下のURLにアクセス。
http://localhost/examples/

※JDKは前もって導入しておく。

動作環境
apache httpd 2.2.17, mod_scgi-1.13-apache-2, easygsp 0.4.5

関連情報
EasyGSPのウェブサイト
http://code.google.com/p/easygsp/

2010年11月25日木曜日

groovyとApache ClickでActionButtonを使用する

groovyとApache ClickでActionButtonを使用するには、以下のコードを実行します。

1.ページクラス
ActionButtonTest.groovy
package com.blogspot.groovyarekore.click

import org.apache.click.*
import org.apache.click.control.*

class ActionButtonTest extends Page
{
def button = new ActionButton("button", "テスト")
public ActionButtonTest()
{
button.setListener(this, "onButtonClick")
addControl(button)
}
def onButtonClick()
{
addModel("msg", "clicked..")
return true
}
}

2.HTMLページ
action-button-test.htm
<html>
<head><title>action button test</title></head>
<body>
#if ($msg)
$msg
#else
please click the button below.<br />
$button<br />
#end
</body>
</html>

ブラウザから以下のURLにアクセスします。
http://localhost:8080/(warの名前)/action-button-test.htm

出力画面


動作環境
JDK6 Update22, Groovy 1.7.5, Apache Click 2.2.0, Apache Tomcat 7.0.4

関連情報
ビルドの仕方などは「groovyとApache ClickでHello Worldを作成する 」を参照
http://groovyarekore.blogspot.com/2010/11/groovyapache-clickhello-world.html

2010年11月24日水曜日

groovyでCSVファイルのカラム数を確認する

groovyでCSVファイルの行あたりの最小・最大カラム数、カラム数ごとの行数を確認するには、以下のコードを実行します。

int mincol = Integer.MAX_VALUE
int maxcol = Integer.MIN_VALUE
values = [:]
new File("testfile.csv").eachLine {
cols = it.count(",") + 1
maxcol = maxcol<cols?cols:maxcol
mincol = mincol>cols?cols:mincol
if( values[cols] == null ){
values.put(cols, 1)
} else {
values.put(cols, ++values[cols])
}
}
println "max number of columns:${maxcol}"
println "min number of columns:${mincol}"
values.sort().each {
println "${it.key} columns -> ${it.value} lines."
}


動作環境
groovy 1.7.5, JDK6 Update22

2010年11月23日火曜日

groovyとApache POIを使用して既存の値が存在しないセルの値を設定する

groovyとApache POIを使用して既存の値が存在しないセルの値を設定するには、以下のコードを実行します。

import org.apache.poi.ss.usermodel.*;

workbook = WorkbookFactory.create(new FileInputStream("test1.xlsx"))
sheet = workbook.getSheetAt(0)
row = 5
column = 0
// 文字列型でセルの値を設定
if( sheet.getRow(row) == null ){
// 既存の行が存在しない場合は行を作成
sheet.createRow(row)
}
if( sheet.getRow(row).getCell(column) == null ){
// 既存のセルが存在しない場合はセルを作成
sheet.getRow(row).createCell(column)
}
sheet.getRow(row).getCell(column).setCellValue("追加")
workbook.write(new FileOutputStream("test2.xlsx"))



サンプルExcelブック(test1.xlsx)


出力Excelブック(test2.xlsx)


※$GROOVY_HOME/libにPOI関連のjarを追加しておくこと。
・poi-3.7-20101029.jar
・poi-ooxml-3.7-20101029.jar
・poi-ooxml-schemas-3.7-20101029.jar
・log4j-1.2.13.jar;
・geronimo-stax-api_1.0_spec-1.0.jar
・xmlbeans-2.3.0.jar
・dom4j-1.6.1.jar

動作環境
JDK6 Update 22, groovy 1.7.5, Apache POI 3.7

Prudence groovy editionでquery parameterを取得する

Prudence groovy editionでquery parameterを取得するには、以下のコードを実行します。

PRUDENCE_HOME/applications/test4/web/dynamicディレクトリに
query.htmlを以下の内容で作成
<html>
<head><title>query test</title></head>
<body>
<%
print "param1=${conversation.query['param1']}<br/>"
print "param2=${conversation.query['param2']}<br/>"
%>
</body>
</html>


ブラウザでhttp://localhost:8080/test4/query/?param1=123¶m2=abcにアクセスする。

動作環境
Prudence "Luscious Groovy" Edition R571, JDK6 Update22

関連情報
prudenceのウェブサイト
http://threecrickets.com/prudence/

2010年11月22日月曜日

Prudence groovy editionでルーティングを変更する

Prudence groovy editionでルーティングを変更するには、以下のコードを実行します。

PRUDENCE_HOME/applications/test3/web/dynamicディレクトリに
display_entry.htmlを以下の内容で作成
<html>
<head><title>capture test</title></head>
<body>
<%
entryID = conversation.locals.get('entryid')
println "entry id:${entryID}"
%>
</body>
</html>

PRUDENCE_HOME/applications/test3/ディレクトリに
routing.gvを以下の内容で作成
document.execute('defaults/application/routing/')
router.capture('display_entry/{entryid}/', 'display_entry/')

ブラウザでhttp://localhost:8080/test3/display_entry/123/にアクセスする。
123がentryIDとして処理されてdisplay_entryにルーティングされる。

動作環境
Prudence "Luscious Groovy" Edition R571, JDK6 Update22

関連情報
prudenceのウェブサイト
http://threecrickets.com/prudence/

2010年11月21日日曜日

groovyとgooglechartwrapperでタイトル付の棒グラフを描画する

groovyとgooglechartwrapperでタイトル付の棒グラフを描画するには、以下のコードを実行します。

import java.awt.*
import java.net.*
import javax.imageio.*
import de.toolforge.googlechartwrapper.*
import de.toolforge.googlechartwrapper.data.*
import de.toolforge.googlechartwrapper.label.*
import de.toolforge.googlechartwrapper.util.*
import de.toolforge.googlechartwrapper.style.*
import de.toolforge.googlechartwrapper.coder.*

// 棒グラフ
bc = new BarChart(
new Dimension(250, 250),
BarChart.BarChartOrientation.Horizontal,
BarChart.BarChartStyle.Grouped)
bc.setEncoder(EncoderFactory.getEncoder(
EncodingType.TextEncoding))

// 色とフォントサイズを指定してタイトル描画
bc.setChartTitle(new ChartTitle(
URLEncoder.encode("売上推移", "UTF-8"),
new Color(0x77, 0x99, 0xdd),
15/* pt */
));

// 値は0-100
data = new BarChartDataSerie.BarChartDataSerieBuilder(
[30, 50, 80, 75, 90]).build()
bc.addBarChartDataSerie(data)

// X軸
xa = new AxisLabelContainer(AxisType.XAxis)
xa.setAxisRange(new AxisRange(0, 5, 1))
bc.addAxisLabelContainer(xa)

// Y軸
ya = new AxisLabelContainer(AxisType.YAxis)
ya.setAxisRange(new AxisRange(0, 100))
bc.addAxisLabelContainer(ya)

bc.setBarWidthAndSpacing(
BarWidthAndSpacing.newAutomaticallyResize())

// URLを取得
println bc.getUrl()
// 画像として保存
bi = MiscUtils.getBufferedImage(bc)
ImageIO.write(bi, "png", new File ("barchart2.png"))


出力画面


※以下のjarを$GROOVY_HOME/libにコピー
googlechartwrapper_1.1.jar

動作環境
groovy 1.7.5, JDK6 Update22, googlechartwrapper 1.1

関連情報
googlechartwrapperのwebサイト
http://code.google.com/p/googlechartwrapper/

Prudence groovy editionでライブラリをインクルードする

Prudence groovy editionでライブラリをインクルードするには、以下のコードを実行します。

PRUDENCE_HOME/applications/test2/web/dynamicディレクトリに
index.htmlを以下の内容で作成
<html>
<head><title>libraries test</title></head>
<body>
<%
document.execute('libtest/')
println getMessage()
%>
</body>
</html>

PRUDENCE_HOME/applications/test2/librariesディレクトリに
libtest.groovyを以下の内容で作成

getMessage = {
return "hello."
}

※ライブラリ内でクロージャはOKだけど、クラスは定義できない?

ブラウザでhttp://localhost:8080/test2/にアクセスする

動作環境
Prudence "Luscious Groovy" Edition R571, JDK6 Update22

関連情報
prudenceのウェブサイト
http://threecrickets.com/prudence/

2010年11月20日土曜日

Prudence groovy editionでフラグメントをインクルードする

Prudence groovy editionでフラグメントをインクルードするには、以下のコードを実行します。

PRUDENCE_HOME/applications/test1/web/dynamicディレクトリに
index.htmlを以下の内容で作成
<html>
<head><title>fragment test</title></head>
<body>
<%& 'fragment1/' %>
</body>
</html>


PRUDENCE_HOME/applications/test1/web/fragmentsディレクトリに
fragment1.htmlを以下の内容で作成
<p>included fragment.</p>


ブラウザでhttp://localhost:8080/test1/にアクセスする

動作環境
Prudence "Luscious Groovy" Edition R571, JDK6 Update22

関連情報
prudenceのウェブサイト
http://threecrickets.com/prudence/

2010年11月19日金曜日

groovyとhadoopでHDFS上のファイルをリネームする

groovyとhadoopでHDFS上のファイルをリネームするには、以下のコードを実行します。

import org.apache.hadoop.conf.*
import org.apache.hadoop.fs.*

fs = FileSystem.get(
URI.create("hdfs://192.168.1.81:9000/"),
new Configuration(), "hadoop")

fs.rename(
new Path("/tmp/test.txt"),
new Path("/tmp/renamed.txt")
)

※以下のjarを$GROOVY_HOME/libにコピー
hadoop-common-0.21.0.jar
hadoop-hdfs-0.21.0.jar
log4j-1.2.15.jar

動作環境
groovy 1.7.5, JDK6 Update22, Hadoop 0.21.0

関連情報
CentOS5.5にHadoop0.21.0をインストールする
http://serverarekore.blogspot.com/2010/10/centos55hadoop0210.html