2007年10月26日金曜日
ZK: zulスキーマを使いzulファイルを生成する
Eclipe環境がセットアップできたのでzulファイルを作ってみました。
Project ExplorerでプロジェクトのWebContentディレクトリを選択しメニューを表示する
メニューからNew/Otherを選択しSelect a wizardダイアログを表示しXML/XMLを選択しNextボタンを押す
XML Fileダイアログを開きFile nameにhelloworld.zulを入力しNextボタンを押す
XML file作成方法選択ダイアログが開くのでCreate XML file form an XML schema file を選択しNextボタンを押す
スキーマファイル選択ダイアログの中からhttp//www.zkoss.org/2005/zul/zul.xsdを選択しNextボタンを押す
私の場合、ルートエレメントはwindowにしたい
p:プレフィックスが鬱陶しいのでEditボタンを押しprefixを消す
helloworld.zulが生成され、コンポーネント名やアトリビュート名の入力補完が可能になりました
2007年10月25日木曜日
ZK: Eclipseセットアップ
ZK How-Tosを参考にEclipse3.3.1へZK開発環境をセットアップした時のメモです。
[OS] Fedora Core 6
[Java] jdk1.5.0_09
[Eclipse] wtp-all-in-one-sdk-linux-gtk
EclipseのWindowメニューをクリック
Preferencesを選択しPreferencesダイアログを開く
ダイアログの左サイドのツリーメニューでGeneral/Content Typesをクリック
Content TypesペインでText/XMLを選択しAddボタンを押しNew File Typeダイアログを開く
File Typeに*.zulを入力しOKボタンを押す。
zul.xsdをセットアップすることでコンポーネント名やアトリビュートの入力補完が可能になります。
Window/PreferencesメニューをクリックしPreferencesダイアログを開く
ダイアログの左サイドのツリーメニューでWeb and XML/XML Catalogをクリックする
XML Catalog Entriesの中でUser Specified EntriesをクリックしAddボタンを押す
Add XML Catalog Entryダイアログを表示し下図の様に入力しOKボタンを押す
User Specified Entriesにhttp://www.zkoss.org/2005/zul/zul.xsdが表示されれば完了
[OS] Fedora Core 6
[Java] jdk1.5.0_09
[Eclipse] wtp-all-in-one-sdk-linux-gtk
zulファイルをXMLファイルとして扱う
zul.xsdスキーマのセットアップ
zul.xsdをセットアップすることでコンポーネント名やアトリビュートの入力補完が可能になります。
2007年10月12日金曜日
ZK: Ruby on ZK を試す
ZK Forumで紹介されていたRuby on ZKを試してみました。
とりあえずダウンロードしたrozk_r0.2.warを展開してみるとmySql.sqlなるファイルがあり、中身を確認するとテーブル作成ddlだったのでmysqlで実行してtestデータベースにテーブルを作成してみました。
アプリケーションに必要なテーブルが作成できたと思い、rozk_r0.2.warをTOMCAT_DIR/webappsに配備後tomcatを再起動しました。
tomcatにより展開されてできたアプリケーションディレクトリのcustomer.zulとinvoice.zulにmysqlユーザとパスワードの記述があるので実状に合わせ変更します。
WEB-INF/libの中が空っぽなのでZKライブラリをコピーします。
またWEB-INF/web.xmlが不完全なので動作しているZKアプリのweb.xmlをコピーしました。
Firefoxでアクセスして見たところエラーです。
ワークディレクトリの設定がうまくいっていないようなのでrozk_r0.2/rozk/bl_init.rbを編集しアプリケーションのフルパスを記入してアクセスしてみたところ動作させることができました。
どうやら
ということはambitionを試すで作ったpetsテーブルの操作はこれだけでOK?
でした、面白いですね。
こちらも気に掛かりますひがやすをさんのブログの
わくわくしますね。
とりあえずダウンロードした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
アプリケーションに必要なテーブルが作成できたと思い、rozk_r0.2.warをTOMCAT_DIR/webappsに配備後tomcatを再起動しました。
tomcatにより展開されてできたアプリケーションディレクトリのcustomer.zulとinvoice.zulにmysqlユーザとパスワードの記述があるので実状に合わせ変更します。
WEB-INF/libの中が空っぽなのでZKライブラリをコピーします。
またWEB-INF/web.xmlが不完全なので動作しているZKアプリのweb.xmlをコピーしました。
$ 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
Firefoxでアクセスして見たところエラーです。
ワークディレクトリの設定がうまくいっていないようなのでrozk_r0.2/rozk/bl_init.rbを編集しアプリケーションのフルパスを記入してアクセスしてみたところ動作させることができました。
# 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操作用のグリッドが作成されるようです!!
ということはambitionを試すで作ったpetsテーブルの操作はこれだけでOK?
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();
わくわくしますね。
2007年10月8日月曜日
ZK: ブラウザを判別
WEBサイトにアクセスしてきたブラウザの種類は
Executions.getCurrent().[isGecko(),isExplore(),isExplore7(),isSafari()]
を使用して判別し、HTTPリクエストのユーザエージェント情報がそのまま欲しいときは
HttpServletRequest)Executions.getCurrent().getNativeRequest()).getHeader("User-Agent")
を使用して取得する。
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>
登録:
投稿 (Atom)