Wicket

Java11 String の strip と Wicket の TextField 入力値の取得

Java11 になって、地味に嬉しいのが、java.lang.String の strip() メソッドでしょう。Java10 までは、Wicket の TextField<String> の入力値の取得も、 できるだけ Optional を使って書いても、結局、前後に入力された全角空白を取り除く処理を 書かないとなりませ</string>…

Wicket Bootstrap用の Pagenation

昨日の投稿、WicketのPagingNavigatorで、先頭(first)と末尾(last)を表示させない方法 - Oboe吹きプログラマの黙示録 に続いて、Wicket で、Bootstrap用の PagingNavigator を作りました。 ↓ 以下のような描画になります。(色は別にCSSで指定) まず、Bo…

WicketのPagingNavigatorで、先頭(first)と末尾(last)を表示させない方法

Wicket の Pagination を表示する PagingNavigation public PagingNavigation(final String id, final IPageable pageable) 通常は、 Dataview dataview = /* org.apache.wicket.markup.repeater.data.DataView の生成 */ add(new PagingNavigator("paging",…

IE11 でもHTMLに動的描画のエリアを画像として保存

先日、html2canvas を使って表示HTMLを画像変換してダウンロード - Oboe吹きプログラマの黙示録 を書いて、IE11では不可能と書きましたが、方法があったのです。 html2canvas を実行した時に、Promise が認識できなくてダメだったのですが、 Polyfil…

ブラウザの情報取得

Wicket でブラウザの情報取得は、WebApplication の init() で getRequestCycleSettings().setGatherExtendedBrowserInfo(true); として、 WebPage のコンストラクタで、Wicket 6 までは、、 ClientProperties properties = ((WebClientInfo)getRequestCycle…

Wicket で原始的な Response を使う注意の1つ

Wicket に文句をつけたいところは、getRequestCycle で引っ張ってくるオブジェクトのインターフェースが 今まで、何度も実装が変わってきたことだ。。 8年前は、、、 HttpServletRequest request = getWebRequestCycle().getWebRequest().getHttpServletReq…

Wicket の画像表示コンテンツ

固定画像、普遍的に表示させる場合は、Wicket では Image コンポーネントを使用するか、 SharedResource で、リソースに置いた画像ファイルを参照させるように、SharedResourceReference を作って mountResource するであろう。 では、動的に画像ファイルを…

jQuery UI ダイアログの背景色を変更するメモ

Wicket ばかり書いていると、Wicket の ModalWindow が便利で、jQuery UI の Dialog を書く機会が減り、 jQuery UI ダイアログの背景色を変更するの、どうやるんだっけ? と少し気分が落ちる。。。(面倒くさいなあ!みたいな。。)jQuery UI ダイアログの背…

Wicket の @MountPath

昔、Java にアノテーションが登場し、Spring が流行り、アノテーションによるコーディングが脚光を浴びた時があった。 その頃の影響が残ってたのか、Wicket-Stuff のプロジェクトには、8.0.0 になっても、 まだ、wicketstuff-annotation というのが、存在す…

IWebSocketPushMessage を拡張する

Wicket8 + Tomcat9 + Websocket native broadcast - Oboe吹きプログラマの黙示録 を書いた時に思った。 メッセージを送る契機のメソッドで、指定する IWebSocketPushMessage にセットするメッセージオブジェクトを ラムダで書きたくなった。 WebSocketPushBr…

Wicket8 + Tomcat9 + Websocket native broadcast

1年以上前、broadcast ALL での WebSocketBehavior の方法は確立していた。 Tomcat 8.x + Wicket8 で WebSocket native - Oboe吹きプログラマの黙示録 見直してみれば、、 org.apache.wicket.protocol.ws.api.WebSocketPushBroadcaster の broadcastAll…

ブラウザへのファイルドロップ禁止する

JavaScript で抑制します。 window.addEventListener('dragover', function(ev){ ev.preventDefault(); }, false); window.addEventListener('drop', function(ev){ ev.preventDefault(); ev.stopPropagation(); }, false); これで、マウスでPCのローカル…

Wicket のファイルアップロード、じつはドラッグ操作に対応していた。

システム要件で意外とファイルアップロードの要件は少ないもので、今まで気づかなかったのですが、 ドラッグ操作でファイルアップロードする(処理)振る舞いを Wicket-extension は、すでにあったのですね。 wicket-extensions-8.0.0.jar の中にありますね…

リンクをクリックでシリアライズ化した Consumer ラムダを実行

Wicket の 簡単な記述で実現してみたくなりました。 Wicket 8 を使います。org.apache.wicket.markup.html.link.Link を継承したクラスで作ります。 どんな名称にしたら良いか悩みましたが、センス無いとは思いましたが、 もういっそのこと、そのまんま、 Cl…

Wicket の日付時刻入力フィールド

Wicket 日付時刻入力フィールドは、昔から wicket-extension に DateTextField があるが 今の時代の LocalDate , LocalDateTime には対応してなく、書式や手数も多く使いづらい。 Wicket 以外の DatePicker を使うことが多く、TextField<Strring> を使う方がバグも少</strring>…

Uncaught SyntaxError: Unexpected token Error

Wicket8 の Web を書いていてこれに遭遇。 Uncaught SyntaxError: Unexpected token < Webコンテキスト直下に js ディレクトリ、jquery-3.3.1.min.js を置いて 単純に、wicket:head タグで、 <wicket:head> <script type="text/javascript" src="js/jquery-3.3.1.min.js"></script> </wicket:head> と書いただけなのに、、凄く悩んだ、 原因は、WebApplication …

Wicket8 の LambdaModel の setter の書き方

Wicket8 になって登場した LambdaModel IModel<T> LambdaModel.of(SerializableSupplier<T> getter, SerializableConsumer<T> setter Pageクラスに変数とsetter/getter を用意すればメソッド参照で、 queue(new TextField<String>("item", LambdaModel.of(this::getItem, this</string></t></t></t>…

Wicket DropDownChoice の「選んでください」を常に空白にする

Wicket 8 リリース以前の古い Wicket からそうであるが、Wicket の DropDownChoice は、 言語ロケールに沿って日本語であれば、「選んでください」が先頭に付いたプルダウンになる。 DropDownChoice 生成時のデフォルト Model Object を null にすれば WebAp…

簡単な認証済をチェックしたアクセス制限のページ

wicket-auth-roles を使った認証済をチェックするのは、@AuthorizeInstantiation で指定する役割 Role で制御して機能も Page だけでなく、 Panel やコンポーネントにも指定できて機能は優れている。 でも、そこまでの機能が不要で単純な 認証済をチェックし…

Wicket URLからページバージョン番号を除外する

Wicket のページは、そのまま使用するとステートフルでページセッションの番号が ブラウザのURLに付与されてしまう。 ?1 → 2回目の表示、 → ?2 昔からこの解決方法は以下 stackoverflow で示唆されてきているが、敢えてここに書くと。。 stackoverflow.c…

Wicket8 StatelessAjax*** は正式リリースには存在しない

Wicket 8.0.0 が出て気がついた。 Wicket-stuff にあった wicketstuff-stateless 8.0.0-M2 これは、Wicket 8.0.0 には入らなかった。。 stateless と statefull 両方混在するサイトを作る場合もあるので、 以下 StatelessAjaxFormSubmitBehavior StatelessAj…

ついに Wicket 8.0.0 リリース!!

ついにというか、ようやく出ました。 The Apache Software Foundation Announces Apache Wicket v8.0.0 https://t.co/aznUYJIaho #Apache #Wicket #OpenSource #component #oriented #Java #Web #Framework @apache_wicket — Apache - The ASF (@TheASF) May…

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…