Eclipe環境がセットアップできたのでzulファイルを作ってみました。







Eclipe環境がセットアップできたのでzulファイルを作ってみました。







ZK How-Tosを参考にEclipse3.3.1へZK開発環境をセットアップした時のメモです。
[OS] Fedora Core 6
[Java] jdk1.5.0_09
[Eclipse] wtp-all-in-one-sdk-linux-gtk



ZK Forumで紹介されていたRuby on ZKを試してみました。
とりあえずダウンロードしたrozk_r0.2.warを展開してみるとmySql.sqlなるファイルがあり、中身を確認するとテーブル作成ddlだったのでmysqlで実行してtestデータベースにテーブルを作成してみました。
$ cd ~/tmp
$ unzip rozk_r.0.2.war
$ mysql -u myadmin -p test
Enter password:
mysql> \. mySql.sql
...
mysql> exit
Bye
$ diff customer.zul customer.zul~
8c8
< dbc=Dbc.new('test','MySql','myadmin','XXXXXX')
---
> dbc=Dbc.new('test','MySql','root','david')
$ diff invoice.zul invoice.zul~
9c9
< dbc=Dbc.new('test','MySql','myadmin','XXXXXX')
---
> dbc=Dbc.new('test','MySql','root','david')
# cp zk-bin-3.0.0-RC/dist/lib/*jar TOMCAT_DIR/webapps/rozk_r0.2/WEB-INF/lib
# cp zk-bin-3.0.0-RC/dist/lib/ext/*jar TOMCAT_DIR/webapps/rozk_r0.2/WEB-INF/lib
# cd TOMCAT_DIR/webapps
# cp ZKAPP_DIR/WEB-INF/web.xml rozk_r0.2/WEB-INF

# vi bl_init.rb
...
else # change the working directory to the webapps, if tomcat
# Dir.chdir('webapps'+work_path) # 'webapps/rozk_sample'
Dir.chdir('/usr/tomcat/webapps'+work_path) # 'webapps/rozk_sample'
end
...

customer.zul
...
# 他になんの設定もなしで
dbc=Dbc.new('test','MySql','myadmin','XXXXXX')
#データベースに接続し
# 他になんの設定もなしで
dao_cus = Dao.new(dbc,'cus','cus as Customer, name as Name, email as eMail','cus')
# DAOが出来上がり
# 生成されたDAOから自動的に
AutoGrid.dao_2_grid(dao_cus,$cus_form)
# DAO操作用のグリッドが作成されるようです!!
pet.zul
<?page zscript-language="Ruby"?>
<window >
<div id='pet_form'/>
<zscript src='rozk/bl_init.rb'/>
<zscript>
dbc=Dbc.new('sampledb','MySql','myadmin','XXXXXX')
pets = Dao.new(dbc,'pets','id as ID, name as Name, age as Age','pets')
AutoGrid.dao_2_grid(pets,$pet_form)
</zscript>
</window>

...
来週出す予定のSeasar2の次のバージョン(2.4.18)で、S2Daoが統合されます。
...
目玉は、ManyToOne、OneToMany、OneToOneの完全サポートでしょうか。
...
Listemployees =
jdbcManager.from(Employee.class).join("department").getResultList();
WEBサイトにアクセスしてきたブラウザの種類は
Executions.getCurrent().[isGecko(),isExplore(),isExplore7(),isSafari()]
を使用して判別し、HTTPリクエストのユーザエージェント情報がそのまま欲しいときは
HttpServletRequest)Executions.getCurrent().getNativeRequest()).getHeader("User-Agent")
を使用して取得する。
<window title="Client User Agent" border="normal" width="360px">
<zscript>
import javax.servlet.http.HttpServletRequest;
void dispClientAgent(){
String agentInfo = ((HttpServletRequest)Executions.getCurrent().
getNativeRequest()).getHeader("User-Agent");
userAgent.value = agentInfo;
}
</zscript>
<vbox>
<label value="Hello ZK!!" id="userAgent"/>
<button label="ユーザエージェント情報を表示" onClick="dispClientAgent()"/>
</vbox>
<zscript>
if (Executions.getCurrent().isGecko()){
userAgent.value = "Firefoxでアクセス";
}else if (Executions.getCurrent().isExplorer()){
userAgent.value = "Explorerでアクセス";
}else if (Executions.getCurrent().isExplorer7()){
userAgent.value = "Explorer 7でアクセス";
}else if (Executions.getCurrent().isSafari()){
userAgent.value = "Safariでアクセス";
}else {
userAgent.value = ".....";
}
</zscript>
</window>