2010年12月31日金曜日

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.setLinearGradient(
new LinearGradient(LinearGradient.GradientFillDestination.Background,
60, /*= angle */
new Color(0xcc, 0xdd, 0xff),
0.0f, /*= startOffset */
new Color(0xff, 0xff, 0xff),
1.0f /*= endOffset*/
)
)

// 値は0-100
data = new BarChartDataSerie.BarChartDataSerieBuilder(
[35, 52, 88, 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 ("barchart13.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/

2010年12月30日木曜日

groovyとApache ClickでActionButtonを無効化する

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

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

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

class ActionButtonTest5 extends Page
{
def button = new ActionButton("button", "無効化")
public ActionButtonTest5()
{
button.setListener(this, "onButtonClick")
// ボタンを無効化
button.setDisabled(true)
addControl(button)
}
def onButtonClick()
{
addModel("msg", "clicked..")
return true
}
}

2.HTMLページ
action-button-test5.htm
<html>
<head><title>action button test5</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-test5.htm

実行画面


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

関連情報
ビルドの仕方などは「groovyとApache ClickでHello Worldを作成する 」を参照
※click-extras-2.2.0.jarもクラスパスに入れる
http://groovyarekore.blogspot.com/2010/11/groovyapache-clickhello-world.html

2010年12月29日水曜日

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.Vertical,
BarChart.BarChartStyle.Grouped)
bc.setEncoder(EncoderFactory.getEncoder(
EncodingType.TextEncoding))

// 値は0-100
data = new BarChartDataSerie.BarChartDataSerieBuilder(
[35, 52, 88, 75, 90]).build()
bc.addBarChartDataSerie(data)
// 棒グラフの色を追加
bc.addChartColor(
new ChartColor(
new Color(0x77, 0x99, 0xdd)
)
)

// 値は0-100
data2 = new BarChartDataSerie.BarChartDataSerieBuilder(
[50, 62, 68, 75, 77]).build()
bc.addBarChartDataSerie(data2)
// 棒グラフの色を追加
bc.addChartColor(
new ChartColor(
new Color(0xf0, 0xc0, 0x40)
)
)

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

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

bc.setBarWidthAndSpacing(
BarWidthAndSpacing.newAutomaticallyResize())

// URLを取得
println bc.getUrl()
// 画像として保存
bi = MiscUtils.getBufferedImage(bc)
ImageIO.write(bi, "png", new File ("barchart12.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/

2010年12月28日火曜日

groovyとApache ClickでActionButtonのフォントサイズを指定する

groovyとApache ClickでActionButtonのフォントサイズを指定するには、以下のコードを実行します。

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

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

class ActionButtonTest4 extends Page
{
def button = new ActionButton("button", "フォントサイズ")
public ActionButtonTest4()
{
button.setListener(this, "onButtonClick")
// フォントサイズを変更
button.setStyle("font-size", "3em")
addControl(button)
}
def onButtonClick()
{
addModel("msg", "clicked..")
return true
}
}

2.HTMLページ
action-button-test4.htm
<html>
<head><title>action button test4</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-test4.htm

出力画面


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

関連情報
ビルドの仕方などは「groovyとApache ClickでHello Worldを作成する 」を参照
※click-extras-2.2.0.jarもクラスパスに入れる
http://groovyarekore.blogspot.com/2010/11/groovyapache-clickhello-world.html

2010年12月27日月曜日

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))

// 値は0-100
data = new BarChartDataSerie.BarChartDataSerieBuilder(
[35, 52, 88, 75, 90]).build()
bc.addBarChartDataSerie(data)
// 棒グラフの色を追加
bc.addChartColor(
new ChartColor(
new Color(0x77, 0x99, 0xdd)
)
)

// 値は0-100
data2 = new BarChartDataSerie.BarChartDataSerieBuilder(
[50, 62, 68, 75, 77]).build()
bc.addBarChartDataSerie(data2)
// 棒グラフの色を追加
bc.addChartColor(
new ChartColor(
new Color(0xf0, 0xc0, 0x40)
)
)

// 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 ("barchart11.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/

2010年12月26日日曜日

groovyとmemcached-java-clientでkey-valueを設定・取得する

groovyとmemcached-java-clientでkey-valueを設定・取得するには、以下のコードを実行します。

import com.danga.MemCached.*

// memcachedに接続
siop = SockIOPool.getInstance()
siop.setServers(["192.168.1.25:11211"] as String[])
siop.initialize()
mcc = new MemCachedClient()

// key-valueのセット
mcc.set("test1", "value1")

// valueの取得
println mcc.get("test1")


※java_memcached-release_2.5.2.jarをGROOVY_HOME/libにコピーしておく。

動作環境
JDK6 Update 23, groovy 1.7.6, Memcached-Java-Client 2.5.2

関連情報
groovyとjava-memcached-clientのまとめ

groovyとApache ClickでActionButtonのテキストアラインを指定する

groovyとApache ClickでActionButtonのテキストアライン(左寄せ・中央・右寄せ)を指定するには、以下のコードを実行します。

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

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

class ActionButtonTest3 extends Page
{
def button = new ActionButton("button", "左寄せテスト")
public ActionButtonTest3()
{
button.setListener(this, "onButtonClick")
// buttonの幅を設定:CSSのwidthスタイル
button.setWidth("200px")
// テキストアラインを左寄せに:CSSのtext-alignスタイル
button.setTextAlign("left")
addControl(button)
}
def onButtonClick()
{
addModel("msg", "clicked..")
return true
}
}

2.HTMLページ
action-button-test3.htm
<html>
<head><title>action button test3</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-test3.htm

出力画面


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

関連情報
ビルドの仕方などは「groovyとApache ClickでHello Worldを作成する 」を参照
※click-extras-2.2.0.jarもクラスパスに入れる
http://groovyarekore.blogspot.com/2010/11/groovyapache-clickhello-world.html

2010年12月25日土曜日

groovyとSpiderDBでDBの製品名と製品バージョンを表示する

groovyとSpiderDBでDBの製品名と製品バージョンを表示するには、以下のコードを実行します。

import groovy.sql.Sql
import com.avdheshyadav.spiderdb.*

sql = Sql.newInstance(
"jdbc:postgresql://localhost:5432/liferay",
"postgres",
"postgres",
"org.postgresql.Driver")

dbc = new DBCrawler(sql.getConnection(), ConfigEnum.MAXIMUM)
db = dbc.getDatabase()

println "製品名:${db.getProductName()}"
println "製品バージョン:${db.getProductVersion()}"



※以下のjarをGROOVY_HOME/libにコピーしておく
commons-lang-2.5.jar
spiderdb-1.7.jar

動作環境
JDK6 Update22, groovy 1.7.5, SpiderDB 1.7

関連情報
SpiderDBのプロジェクトページ
http://code.google.com/p/spiderdb/

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))

// 値は0-100
cl = new ChartLegend(URLEncoder.encode("売上", "UTF-8"))
data = new BarChartDataSerie.BarChartDataSerieBuilder(
[35, 52, 88, 75, 90]).legend(cl).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 ("barchart10.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/

2010年12月24日金曜日

groovyとApache ClickでActionButtonの幅を指定する

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

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

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

class ActionButtonTest2 extends Page
{
def button = new ActionButton("button", "テスト")
public ActionButtonTest2()
{
button.setListener(this, "onButtonClick")
// buttonの幅を設定:CSSのwidthスタイル
button.setWidth("200px");
addControl(button)
}
def onButtonClick()
{
addModel("msg", "clicked..")
return true
}
}

2.HTMLページ
action-button-test2.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-test2.htm

出力画面


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

関連情報
ビルドの仕方などは「groovyとApache ClickでHello Worldを作成する 」を参照
※click-extras-2.2.0.jarもクラスパスに入れる
http://groovyarekore.blogspot.com/2010/11/groovyapache-clickhello-world.html

2010年12月23日木曜日

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))

// 値は0-100
data = new BarChartDataSerie.BarChartDataSerieBuilder(
[35, 52, 88, 75, 90]).build()
bc.addBarChartDataSerie(data)

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

// X軸ラベル
xal = new AxisLabelContainer(AxisType.XAxis)
xal.addLabel(new AxisLabel(URLEncoder.encode("月数", "UTF-8")))
bc.addAxisLabelContainer(xal)

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

// Y軸ラベル
yal = new AxisLabelContainer(AxisType.YAxis)
label = new AxisLabel(URLEncoder.encode("売上", "UTF-8"))
label.setPos(50)
yal.addLabel(label)
yal.setUseLabelPositions(true)
bc.addAxisLabelContainer(yal)

bc.setBarWidthAndSpacing(
BarWidthAndSpacing.newAutomaticallyResize())

// URLを取得
println bc.getUrl()
// 画像として保存
bi = MiscUtils.getBufferedImage(bc)
ImageIO.write(bi, "png", new File ("barchart9.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/

2010年12月22日水曜日

groovyとApache ClickでPickListを使用する

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

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

import org.apache.click.*
import org.apache.click.control.*
import org.apache.click.dataprovider.*
import org.apache.click.extras.control.*

class PicklistTest extends Page
{
def form = new Form("form")
def picklist = new PickList("picklist", "利用形態")

public PicklistTest()
{
// データを設定
picklist.setDataProvider(new DataProvider(){
public Iterable<Option> getData()
{
def items = []
items.add(new Option("web", "Web Server"))
items.add(new Option("app", "Application Server"))
items.add(new Option("db", "Database Server"))
items.add(new Option("bs", "Backup Server"))
return items
}
})
form.add(picklist)
form.add(new Submit("ok", "OK", this, "onOkClick"))
addControl(form)
}
def onOkClick()
{
def msg1 = ""
for(selected in picklist.getSelectedValues()){
msg1 += (msg1.length() != 0)?", " + selected:selected
}
addModel("msg1", msg1)
return true
}
}

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


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

出力画面


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

関連情報
ビルドの仕方などは「groovyとApache ClickでHello Worldを作成する 」を参照
※click-extras-2.2.0.jarもクラスパスに入れる
http://groovyarekore.blogspot.com/2010/11/groovyapache-clickhello-world.html