年末頃にwickeXtを試してみた 今さらまとめ(1)
JQueryを一度も使ったことなく、mavenもまともに使ったことが無い私。
Twitterで噂に聞いたWickeXtを試してみようと思い、年末いろいろやってました。
今は復活してますが、当時、新公式サイトがサーバーエラーで閲覧できず、いきなり心が折れそうになりながらGoogle Code のQuickStartを見て挑戦することに。
今時mavenを使えないのは小学生までだよね的な指示を無視して、きっとwickext-0.9.jarにクラスパス通せば動くよ!とwickext-0.9jarをWicket1.3.5を使ったEclipseプロジェクトにつっこんで、サンプルソースを書いていざ実行。
……動きません orz
ユーザフォーラムを見ると、
Is there any way to get WickeXt to work with wicket 1.3.5?
とか
WickeXt comes with the 1.4-m3 version.
とか書いてあったので、当時の最新だったwickeXtを1.4rc-1へバージョンアップ。
……やっぱり動きません o ...rz
ぐぬぬ、こやつめ、と藁にもすがる思いでユーザーフォーラムを見回すと、
Does your wicket application extends WickextWebApplication or uses the Wickext listener ?
おおお。
アプリケーションクラスがWickextWebApplicationをextendするように修正して、無事Modalなウィンドウがブラウザに表示されました。
以下ソースコード。
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:wicket="http://wicket.apache.org/" lang="ja" xml:lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> </head> <body> <h3>QuickStart</h3> <div wicket:id="modal" title="Hello! World!"> <span wicket:id="message">message</span> </div> </body> </html>
Step001.java
package wickext.testing.view; import org.apache.wicket.markup.html.basic.Label; import org.apache.wicket.markup.html.WebPage; import org.objetdirect.wickext.ui.dialog.Window; public class Step001 extends WebPage { public Step001() { Window modal = new Window("modal"); modal.setAutoOpen(true); modal.add(new Label("message", "Hello, WickeXt!")); this.add(modal); } }
TestApplication.java
package wickext.testing; import org.objetdirect.wickext.utils.WickextWebApplication; import wickext.testing.view.Step001; public class TestApplication extends WickextWebApplication { @Override protected void init() { super.init(); getRequestCycleSettings().setResponseRequestEncoding("UTF-8"); getMarkupSettings().setDefaultMarkupEncoding("UTF-8"); } @Override public Class<Step001> getHomePage() { return Step001.class; } @Override public String getConfigurationType() { return WickextWebApplication.DEVELOPMENT; } }
Componentをaddして、その入れ子のHTML構造をjQueryの仕様に併せれば良いという基本ルールなんですね。