Wicket

Wicket setResponsePage PageParameters URLにパラメータを載せない

Wicket 画面遷移を setResponsePage(Class , PageParameters) で行うとURLにパラメータがついてしまうのを避けるには、 ・遷移先の WebPage は、IRequestablePage を implement する。 ・遷移先の WebPageコンストラクタでPageParametersを受け取るようにし…

Chart.js で折れ線グラフの交点(intersect)をToolTip 表示(時刻編)

Chart.js で折れ線グラフの交点単純な X軸:double 値、Y軸:double 値 のパターンを先日書いたので、 今回は、X軸:時刻、Y軸:double 値 の線グラフの交点である。 プロットするデータの型は、先日書いた中の Ploter クラスである。x軸である x は、d…

Chart.js で折れ線グラフの交点(intersect)をToolTip 表示(double値編)

標準でありそうで存在しない。だから線を描画する2本の線、プロットする2点(X,Y座標値)を 2本線が交差するしないを Chart.js で描画するプロットリスト ~2つのリストの特殊な順列組合せで交点を見つけて描画する。対象グラフは前回投稿のようなグ…

jQuery ui datepicker の change イベントを Wicket で捕捉して処理する。

表題に挙げた Wicket で捕捉して処理する前に、そもそも jQuery ui Datepicker の change イベントは 通常の change イベントハンドラでは処理できず、オプション onSelect でハンドラ指定するのはマニュアルに書いてあるとおり有名である。 onSelect で指定…

jQuery AJAX通信でリクエストヘッダに動的に任意のコードを付与

jQuery AJAX通信でHTTPリクエストヘッダに任意のコードを付与するには、 headers{ }, を付ければ良いのだが、 折角なので、Wicket でページ表示のタイミング=Page コンストラクタ実行で付与する値を決めて 送るようにする。 ページが読込む JavaScript は、…

Maven 依存関係深い時の Jigsaw モジュール参照できないエラーを回避するには

Java9 で、module-info を書いて、Maven で解決できない時、 Maven 依存関係が深くなってしまった場合、pom.xml でネストして書いていなかったものを 書けばコンパイルが通る。 実際の現象、、、 最初、pom.xml を以下のように記述していた。。 <properties> <wicket.version>8.0.0-M8</wicket.version> <guice.verison>4.</guice.verison></properties>…

Wicket scheduleRequestHandlerAfterCurrent の実行を簡潔に

Wicket の RequestCycle の scheduleRequestHandlerAfterCurrent で IRequestHandler を指定して 応答としてファイル出力する方法は標準として昔から存在した。以下のように WebPage で書いていたものだ。 @Inject Logic logic; getRequestCycle().scheduleR…

Wicket ModalWindow の Autosize

Wicket の ModalWindow のサイズを任意に指定するには、ModalWindow #setInitialWidth #setInitialHeight でpixelサイズ指定するが自動でコンテンツのサイズ自動調整するには、 setAutoSize(true) を呼ぶことにになっている。 final ModalWindow window = ne…

wicket-guice 使用の見直し

だいぶ昔、6年も前、Wicket のバージョンが、1.5 に、wicket-guice の GuiceComponentInjector を JSR330 対応させる為に、自分で書き直したりしていた。 Wicket1.5.3 の guice - IOC で、Behaviorも対象に - Oboe吹きプログラマの黙示録そのまま同じコード…

Java9 Eclipse 必要な .class ファイルから間接的に参照されています のエラー

Java9 、Eclipse Oxygen Maven使用で、Wicket8 を使ったプロジェクトでコンパイルエラー以下が出る。 型 org.slf4j.Logger を解決できません。必要な .class ファイルから間接的に参照されていますwicket-core 8.0.0-M8 は、まだ sl4j-api 1.7.25 という ま…

Throwable な Function から、Optional<LocalDate>を生成することでコードを短く

先日、Optional の filter を連結して使う - Oboe吹きプログラマの黙示録 で書いた例は、 DateFormat の日付の妥当性チェック setLenient(true=厳しくない)を行い、これが返却値なしの void メソッドであることから どうしてもあのようになってしまってい…

StatelessChecker を使う。

Serializable And Throwable Consumer - Oboe吹きプログラマの黙示録 を書いたので、忘れないように本当にステートレス Page として作ったのかチェックするのに 有効な方法を書いておく。Page クラスに、StatelessComponent アノテーションを付与して WebApp…

Serializable And Throwable Consumer

Wicket フォームイベント捕捉した時の処理は、シリアライズ化した関数型インターフェース github.com これのおかげで、Wicket 8から、AjaxFormSubmitBehavior の onSubmit でラムダ式を書けるようになった。 しかし、ラムダ式の中で例外捕捉の try~catchブ…

Wicket stateless なページ

Wicket の基本は、ステートフルである。それでもステートレスのページが必要なケースも要件によっては発生するのが Webアプリ開発の世界。Form → StatelessForm Link → StatelessLink か、 BookmarkablePageLink に置き換えるで済ませられれば良いが、Page …

Wicket が自動的に組み込む jQuery のバージョンを変更

Wicket が自動的に組み込む jQuery のバージョンを変更したい時は、 WebApplocation の init() メソッドで以下のように実行する。 getJavaScriptLibrarySettings() .setJQueryReference(new UrlResourceReference(Url.parse("js/jquery-2.1.4.min.js")));こ…

Model.orElseGet(SerializableSupplier<? extends T> other) は使えるかも

Wicket で、IModel インスタンスを書く時 、コーディングの癖で、 new 演算子による new Model<>() を書くことが多い。 Model.of があるのは知ってはいたけど、なぜかあまり書かなかった。https://issues.apache.org/jira/browse/WICKET-6412Model.orElse を…

DropDownChoice の IChoiceRenderer

2年近く前、Wicket6 → 7 になった時、DropDownChoice の為の IChoiceRenderer が、 public T getObject(String id, IModel> choices) が増えて、choices のgetModelObject() で取ってくるものをこのメソッドで返さなくてはならなくなり、 当時、以下のよう…

tar.gz のファイルをアップロードしたら、ブラウザにより ContentTypeが違う。

Wicket ファイルアップロード実行で、受信する FileUpload で取得する ContentType には、ブラウザによって違いがある。 tar.gz のファイルをアップロードした時、 chromeapplication/x-compressed edge と IE11application/x-gzip-compressed Wicket の Fil…

Wicket 作成した Panel の中のListView に置いた Form field の数

ページに、配置する Panel を作り、Panel の中に、ListView を配置して、 ListView で、フォームフィールドのコンポーネントを用意したときで、ListView の行数が可変の場合、 submit した時、行数を求めるのは、どうしたらいいか悩む。そこで、考えたのが、…

Tomcat 8.x + Wicket8 で WebSocket native

Tomcat 8.x + Wicket8 で WebSocket native がなかなかうまくできず苦労していたのだが、 やっと解った。。Tomcat 7.x + Wicket7 では、WebSocketFilter と WicketFilter を web.xml で2つ書いてURL による切り分けをしてたのですが、 Tomcat 8.x + Wick…

Link.onClick static が消滅して欲しくない。それならば、、

Wicket8 でラムダによる AjaxButton.onSubmit static メソッドの登場と思いきや、8.0.0-M4 から M5 以降で消滅して AjaxFormSubmitBehavior を使うのを納得したが、Link の onClick static メソッドでのラムダも消滅してるのは、 非常に残念だ。 Ajax ではな…

AjaxFormSubmitBehavior があるから心配ない。

先月、Wicket-8.0.0-M4 から M5 まで更新された時、 AjaxButton.onSubmit staticメソッドの BiConsumer 使用が 削除されていて、ショックだったけど、Wicket 8.0.0-M4 から M5 で、AjaxButton.onSubmit が。。。 - Oboe吹きプログラマの黙示録 よーく調べる…

モーダルウィンドウ使用時の datepicker

Wicket のモーダルウィンドウ使用時に注意しなければならないのは、 呼び出し Page とモーダルウィンドウの Panel 両方で jQuery Datepicker を配置したときである。 モーダルウィンドウを起動したとき、モーダルウィンドウの中で Datepicker が効かなかった…

Wicket 8.0.0-M4 から M5 で、AjaxButton.onSubmit が。。。

Wicket 8 の機能として注目だったラムダの対応も、 8.0.0-M4 までは、 onSubmit(String id, SerializableBiConsumer<AjaxButton, AjaxRequestTarget> onSubmit , SerializableBiConsumer<AjaxButton, AjaxRequestTarget> onError) onSubmit(String id, SerializableBiConsumer<AjaxButton, AjaxRequestTarget> onSubmit)これらのメソッドが加わっていて喜ん</ajaxbutton,></ajaxbutton,></ajaxbutton,>…

Wicket8 の Tomcat 8 で Websocket に苦戦中

2017-6-25 に回答oboe2uran.hatenablog.com 先日、Wicket 8 の websocket - Oboe吹きプログラマの黙示録 で書いたが、改めて取り掛かった。Wicket の native-Websocket を使おうと、Tomcat 8.0.43 で起動できない。 Websocket にそんなに魅力を感じてるわけ…

Wicket ModalWindow full screen

Wicket ModalWindow full screen と言うと、ちょっと言い過ぎだけど、つまりブラウザで開いたページ表示一杯の 幅、高さで ModalWindow しかも caption なしの ModalWindow に見えない ModalWindow を出したくなった。昔、captionが無い~フレーム枠が存在し…

Wicket 8 FeedbackPanel サンプル

Wicket8 の AjaxButton onSubmit を使用して気がついたのだが、前の Wicket バージョンでは、onSubmit の中で任意に error(Serializable) を呼ぶと、onError が走るという認識だったけど、Wicket 8 でそう動かない。Validator を 仕掛けておいて、バリデーシ…

Wicket 8 で AJAX イベントビヘビアを Generic に

Wicket 8 で AJAX イベントビヘビアを oboe2uran.hatenablog.comと書いたものの、落ち着いてみれば、一般用に以下のとおり書けるし、その方がビヘビアを追加した先の コンポーネントを参照したビヘビアが書ける。。 import org.apache.wicket.Component; imp…

AJAXDownload ビヘビア、

Wicket8 が前提の話だが、ビヘビアをラムダで。。を考え出すと、次から次へと出てくる。。。 AJAX の振る舞いで動かすダウンロード、以前、 Wicket 6.x→7.x でファイルダウンロード時のファイル名の注意 - Oboe吹きプログラマの黙示録 この中で、public abst…

AjaxEventBehavior スクロール もラムダで。

Wicket8 ビヘビアもラムダの恩恵が沢山あるだろう。Wicket 7 で、SerializableConsumer が無かったおかげで例えば、AjaxEventBehavior で スクロールイベントの処理は 以下のようなクラスを用意して、 import org.apache.wicket.ajax.AjaxEventBehavior; imp…