2010年12月9日木曜日

groovyとApache ClickでPasswordFieldを使用する

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

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

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

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

public PasswordfieldTest()
{
form.add(new PasswordField("password", "パスワード"));
form.add(new Submit("ok", "OK", this, "onOkClick"));
addControl(form)
}
def onOkClick()
{
addModel("msg1", "${form.getFieldValue("password")}")
return true
}
}

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

ブラウザから以下のURLにアクセスします。
http://localhost:8080/(warの名前)/passwordfield-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年12月8日水曜日

groovyとApache ClickでPanelを使用する

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

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

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

class PanelTest extends Page
{
def panel = new Panel("panel", "panel.htm")

public PanelTest()
{
panel.getModel().put("paneltitle", "Groovy and Apache Click")
addControl(panel)
}
}

2.ページのHTML
panel-test.htm
<html>
<head><title>panel test</title></head>
<body>
$panel
</body>
</html>

3.パネルのHTML
panel.htm
<fieldset>
<legend>$paneltitle</legend>
sample.
</fieldset>

ブラウザから以下のURLにアクセスします。
http://localhost:8080/(warの名前)/panel-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年12月7日火曜日

groovyとApache ClickでPageLinkを使用する

以下のようなコードでPageLinkを使用してページ間の移動ができます。

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

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

class PagelinkTest extends Page
{
def pagelink = new PageLink("pagelink", "移動", ResultPage)

public PagelinkTest()
{
addControl(pagelink)
}
}

2.HTMLページ
pagelink-test.htm
<html>
<head><title>pagelink test</title></head>
<body>
$pagelink
</body>
</html>

3.ページリンクをクリックした後に表示されるページのクラス
ResultPage.groovy
package com.blogspot.groovyarekore.click

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

class ResultPage extends Page
{
}

4.ページリンクをクリックした後に表示されるページのHTML
result-page.htm
<html>
<head><title>result page</title></head>
<body>
移動しました。
</body>
</html>

ブラウザから以下のURLにアクセスします。
http://localhost:8080/(warの名前)/pagelink-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年12月6日月曜日

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.addSolidFill(
new SolidFill(
SolidFill.ChartFillDestination.ChartArea,
new Color(0x30, 0x20, 0x20)
)
)

// 値は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 ("barchart4.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でButtonを使用する

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

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

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

class ButtonTest extends Page
{
def button = new Button("button","押してね")

public ButtonTest()
{
button.setOnClick("alert('Thank you!')")
addControl(button)
}
}

2.HTMLページ
button-test.htm
<html>
<head><title>button test</title></head>
<body>
$button
</body>
</html>

ブラウザから以下のURLにアクセスします。
http://localhost:8080/(warの名前)/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年12月5日日曜日

groovyとApache ClickでTextAreaを使用する

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

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

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

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

public TextareaTest()
{
form.add(new TextArea("textarea1", "フィールド1"));
form.add(new Submit("ok", "OK", this, "onOkClick"));
addControl(form)
}
def onOkClick()
{
addModel("msg1", "${form.getFieldValue("textarea1")}")
return true
}
}

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

ブラウザから以下のURLにアクセスします。
http://localhost:8080/(warの名前)/textarea-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でDBサーバ上にファイル出力する

groovyとoracleでDBサーバ上にファイル出力するには、以下のコードを実行します。

import groovy.sql.Sql

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

// ディレクトリオブジェクトを使用してDBサーバ上にファイル出力
// EXTERNAL_TABLESディレクトリは前もって作成しておく。
sql.execute("""
declare
outfile utl_file.file_type;
begin
outfile := utl_file.fopen('EXTERNAL_TABLES', 'output.txt', 'w');
utl_file.put_line(outfile, '出力テスト1');
utl_file.put_line(outfile, '出力テスト2');
utl_file.fclose(outfile);
end;
""")



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