読者です 読者をやめる 読者になる 読者になる

input テキストフィールドでカーソルの位置を指定する。

HTML input テキストフィールドで任意の範囲を選択するには、 <input type="text" value="1234567890"> jQuery で、focus して、setSelectionRange( 開始位置、終了位置 ); $('input').focus().get(0).setSelectionRange(3, 6);setSelectionRange で指定する値は、0始まりで数える。この setSelect…

原始的なHTTPクライアントサンプル

久々に HTTPクライアントプログラムを書く。 以前は https://hc.apache.org/ を使うことばかりしていた。chunk発生を考慮すれば当然だった。でも、限られたネットワークで軽量に動かしたく前にも書いたかもしれない 原始的なHTTP クライアント (=他の…

Enumeration から Stream

Enumeration から Stream にする。 java.util.Collections の list を使って、Stream にする。 Collections.list(getRequest().getParameterNames()).stream().forEach(key->{ }); こんな感じ。。。

Wicket ModalWindow full screen

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

window.close() の実行

JavaScript で開いている自身のページのブラウザWindow は、セキュリティのために閉じられないように なっているが、aタグ target="_blank" 開いた先での window.close() は効いてくる。結構昔から、いろんなことが試されていた。 stackoverflow.com

jQuery UI の datepicker trigger を画像でなくてフォントアイコンで指定

jQuery UI の datepicker を使ってるWebサイトで、わざわざアイコンのボタンによる picker 呼出しをするデザインがなんか釈然としない。https://jqueryui.com/datepicker/#icon-triggerにあるようなカレンダーアイコンをクリックで呼び出すもの。これより入…

moment.js でリアルタイムに日付時刻を表示

moment.js でリアルタイムに日付時刻を表示する。jQuery と moment-with-locales.js を使う。 <script type="text/javascript" src="js/jquery-2.1.4.min.js"></script> <script type="text/javascript" src="js/moment-with-locales.js"></script> <div> <h1 id="date"></h1> <h2 id="hour_min_sec"></h2> </div> 自分で clock関数、1秒間隔実行を用意して実行する。 $(…

moment.js で曜日出力に注意

2年近く前に知ってから愛用している moment.js 曜日を出力しようと思って、 各国語対応の moment-with-locales.js を使ったら フォーマット dddd または、ddd を使ったら曜日が日本語で出力されない。 あれ、そうだっけ?!しかたなく、moment-with-locales…

jQuery ui の アイコンフォント

jQuery ui の アイコンフォント見つけた。 mkkeck.github.io jQuery UI のアイコンはサイズが決まったものしか使えずなにかと不便だったけど これなら、 <link rel="stylesheet" type="text/css" href="jquery-ui-1.12.icon-font.min.css" /> のように使用宣言して <span style="font-size: 32px;color:#009000" class="ui-icon ui-icon-jquery">icon</span> でいける。</link>

MAVEN2_CLASSPATH_CONTAINER は、エクスポートまたは公開されません。の警告

時々、Eclipse MAVEN プロジェクトを作成していると、クラスパス・エントリー org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER は、エクスポートまたは公開されません。実行時に ClassNotFoundExceptions が発生する可能性があります。なる警告が発生する。この…

リストの順序を保持したグルーピング

リストをグルーピング、しかしあくまでも順序付けされた並びの中でのグルーピングで同じキーのグループが複数あっても まとめない。 という要求があった時、少し悩んだ。サンプルとなるお題、、、要素のキーが以下のようにならんでいる場合、 A , A , A , B …

POI で セル書込み時に Optional を使う

Apache POI メモリ消費量が増えやすいし、今となっては使いにくい。 Excel の場合、セルのスタイル設定は今のメソッドは、まあ許すとして セルの値セットや、スタイル適用のメソッドが実行後のセルを返してくれれば、数珠つなぎにメソッド呼べるのに。。そこ…

css だけでドロップメニュー(横)

CSS

水平方向に並べたメニューのドロップを書いたので、 oboe2uran.hatenablog.comでは、縦にならべたメニューの横に表示するメニューサンプル <ul class="dropmenu"> <li><a href="#">menu</a> <ul> <li><a href="#">sub1</a></li> <li><a href="#">sub2</a></li> <li><a href="#">sub3</a></li> <li><a href="#">sub4</a></li> </ul> </li> <li><span>menu</span> <ul> <li></li></ul></li></ul>

css だけでドロップメニュー

CSS

html サンプル <ul class="dropmenu"> <li><a href="#">menu</a> <ul> <li><a href="#">sub1</a></li> <li><a href="#">sub2</a></li> <li><a href="#">sub3</a></li> <li><a href="#">sub4</a></li> </ul> </li> <li><span>menu</span> <ul> <li><a href="#">sub1</a></li> <li><a href="#">sub2</a></li> <li><a href="#">sub…</a></li></ul></li></ul>

css float属性の解除は、after疑似要素で。

CSS

今更。。。 css float属性の解除は、after疑似要素を使うのがいい。 <ul class="foo"> <li>a</li> <li>b</li> <li>c</li> </ul> <ul> <li>d</li> <li>e</li> <li>f</li> </ul> に対して、 .foo:after{ content: ""; display: block; clear: both; } .foo li{ float: left; list-style: none; width: 50px; border: 1px solid #808080; }

Wicket 8 FeedbackPanel サンプル

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

HTTPClient の ResponseHandler

HTTPClient といえば、 https://hc.apache.org/ の HttpClient この中の ResponseHandler は、残念なのか仕方ないのか、@FunctionalInterface を持っているわけではない。 あの面倒くさいHTTPで受け取る処理をもう少しスマートに書きたくて、とりあえず…

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…

Wicket7 の native Websocket を使う場合、jQuery UI 使用は注意。

Wicket7 の native Websocket を使うともう1つ、煩わしいことが見つかりました。Websocket 接続するページのHTMLの head タグの最後に、jQuery 設定として以下のように指定されてしまうのです。 <script type="text/javascript" src="./wicket/resource/org.apache.wicket.resource.JQueryResourceReference/jquery/jquery-1.12.4-ver-1489464145840.js"></script>

wicket nativeでURLパターンが /wicket/* でなければならない理由は

Wicket7 の native Websocket を使う時、web.xml に設定するWebSocketFilter の URLパターンが /wicket/* でなければならない 理由は、wicket-native-websocket-core-7.x-.jar の javascript = wicket-websocket-jquery.js で、Websocket 接続のURLプロ…

Wicket 7 native Websocket の制約?!

Wicket 7 で native Websocket を使ってサーバ PUSH に近いことをしようと作っていて、気持ち悪い制約に気が付いた。Wicket のサイト web.xml では、たいてい WebFilter として、org.apache.wicket.protocol.http.WebApplication 継承クラスのマッピングには…

Wicket 8 の AjaxButton 、Link など

Wicket 8 になるとこれまでよりもシリアライズ化された Consumer などによりラムダ記述は、 前に投稿した Wicket8 の LambdaModel - Oboe吹きプログラマの黙示録 の他に、AjaxButton 、FeedBackPanel 、Link なども簡潔に書けるようになってくる。AjaxButton…

Consumer を Inject

Google guice で、List をインジェクションする時によく使うのが、com.google.inject.TypeLiteral Java8 lambda の Consumer をインジェクションすることをやれば、条件分岐によるメソッド実行を 一括管理の記述ができると思った。まず、分岐ではなく、ただ…

NULLインジェクション

いつも、Google guice 使用を書いていて思うのが、NULLインジェクションが発生するとき、 @Nullable をつけて、Module の configure で、toProvider を書かなくてはならないのが 煩わしい。 binder().bind(Integer.class).toProvider(Providers.of(null)…

JavaFX CSS で @CHARSET記述は不要である

JavaFX の CSS を書いていると、ついHTMLのCSS を書いていた時の癖で @CHARSET "UTF-8"; を書いてしまう。でも、これを書いてしまうと、com.sun.javafx.css.parser.CSSParser は、CSS parseエラーになり思いとおりの スタイルが適用されなくなる。doc…

JavaFX の ウィンドウフレームを無くす

JavaFX の ウィンドウフレームを無くしたい場合、Application の start(Stage) で渡される javafx.stage.Stage をjavafx.stage.StageStyle の StageStyle.TRANSPARENT を指定すれば、ウィンドウフレーム無しの透過 StageStyle.UNDECORATED なら、ウィンドウ…

JavaFX で、外部フォント

JavaFX で、外部フォントを指定する場合の書き方CSS に書く場合 @font-faceで fontファミリ-ttfを定義、→ -fx-font-family で指定 @font-face{ font-family: meiryo; /** ttf ファイル参照 **/ src: url("file://c:/home/test/meiryo.ttf"); } Pane{ -fx-fon…

java.time.format.FormatStyle を確認

java.time.format.FormatStyle で Locale に従った日付表記を試してみる。 LocalDate.now().format(DateTimeFormatter.ofLocalizedDate(FormatStyle.FULL).withLocale(new Locale("ja", "JP"))); LocalDate.now().format(DateTimeFormatter.ofLocalizedDate(…

JavaFX のイニシャライズ処理を Google guice で整理

前回に引き続き、JavaFX のイニシャライズ処理を Google guice で整理してみる。 起動のメインクラス・・・共通イニシャライズとして、guice の Module を配置、 最初に起動されるコントローラ・・・次画面のイニシャライズとして Module を配置、 →画面遷移…

JavaFX で Google guice によって FXMLLoader のロードを補助する

JavaFX の Controller (←この呼び方が個人的には嫌い、MVCモデルの Cなんだろうけど)のファクトリの コールバックに、Google guice でのインジェクションを行う方法は、とても有効な手段だと思う。前回の投稿、 JavaFX の画面遷移、簡単に書く。 - Oboe吹…

JavaFX の画面遷移、簡単に書く。

JavaFX の画面遷移、Webページ閲覧のように切り替え、いろんなやり方のサンプルを見たけど、どれも釈然としない。もっとシンプルに書けるはずだ。javafx.application.Application継承の mainメソッドクラス public class MainApp extends Application{ st…

fxml ソースの配置

JavaFX の画面デザインレイアウトは一度決定してリリースしたらそんなに変更差し替えるものではなかろう。Maven で基本アーキタイプ生成のサンプル、GitHub - javafx-maven-plugin/javafx-basic-archetype: A Maven archetype for generating a basic JavaFX…

JavaFX Mavenサンプル

JavaFX の Maven 基本的なアーキタイプを探していて、GitHub - javafx-maven-plugin/javafx-basic-archetype: A Maven archetype for generating a basic JavaFX starter project.というのを見つけたので、ここに紹介されたとおり mvn コマンドを以下のよう…

今更、JavaFX の開発環境、

デザインレイアウトの為の fxml を編集するツール、もうバージョンUPされる見込みがなさそうで、何とかORACLEのダウンロードサイトを見つける。 JavaFX Scene Builder 2.0インストールhttp://www.oracle.com/technetwork/java/javafxscenebuilder-1x-archi…

Wicket 8 の websocket

2017年3月3日時点、Wicket 8.0.0-M4 の Websocket は、残念なことに、Tomcat8用の WebFilter が作られていない。wicket-native-websocket-tomcat/8.0.0-M3 は Central Repository にあっても wicket-native-websocket-tomcat/8.0.0-M4 は、まだ公開されて…

WebSocket の getOpenSessions は現在開いてるのを返す約束なのに。。

WebSocket の javax.websocket.Session の getOpenSessions は、現在開いてるセッションを全て返してくれるはずなのに、 サンプルを書いていて、どうも endpoint のセッションしか返してこない。。なぜ?Tomcat8.5.11 で試していた。。やりたかったのは、こ…

AttributeAppender とAttributeModifier lambda

Wicketの AttributeModifier と AttributeAppender は、よくよく考えたら、ラムダ式をあてはめられるんだった。 boolean isError; queue(new Label("name", itemname).add(new AttributeAppender("class", ()->isError ? "error" : "")));queue(new Label("n…

Wicket8 の LambdaModel

Wicket 8 になると待望のラムダ Model がある。PropertyModel を使って TextField に 自Pageクラスの変数を指定すると、どうしても new TextField<>("idname", new PropertyModel<>(this, "name"));のように書くことになり、"name" 変数名がタイプセーフでな…

Eclipse ロガーの自動挿入

Eclipse を設置して作業開始する前に設定しておく1つに、 Javaエディタでの ロガーの自動挿入がある、SL4J なら以下のように。。。 パターンに ${:import(org.slf4j.Logger, org.slf4j.LoggerFactory)}Logger logger = LoggerFactory.getLogger(this.getCla…

web.xml DOCTYPE記述メモ

今更だけど、web.xml 各Servletバージョン別の DOCTYPE記述メモ Servlet 2.3 <web-app> </web-app> Servlet 2.4

Tomcat8.5.11 を開発作業PC、EclipseWTPで起動する

Tomcat8.5.11 を開発作業PC(Windows)上に置いて、Eclipse WTP で動かしたくなった。Webサーバを Eclipse で指定しても、そのままでは、 The Apache Tomcat installation at this directory is version 8.5.11. A Tomcat 8.0 installation is expected. …

IntStream から逆順リストを作る

List<Integer> years = IntStream.rangeClosed(2013, Calendar.getInstance().get(Calendar.YEAR)) .boxed() .sorted(Comparator.reverseOrder()) .collect(Collectors.toList());</integer>

CSV書込み(1)(2)を書き直す。

CSV生成の oboe2uran.hatenablog.com と、 oboe2uran.hatenablog.com は、またもや書き直した。null 対応だ。

cssで書くメニューの例。。

メモ。。。 今さらだけど、以下で紹介された方法も使おう。 JSを使わずにCSSだけで作るドロワーメニュー – Web制作会社トライム

MySQL で UPSERT する時に考えること

SQL

MySQL で UPSERT をするとき、REPLACE を使うべきか? INSERT のオプション ON DUPLICATE KEY UPDATE を使うべきか?REPLACE は、キー重複する行を削除してから INSERT することを考えると、ON DUPLICATE KEY UPDATE の方が 更新する列を指定できるから良い…

日付期間重複の抽出

昨日、書いた日付期間のインターフェース DateSpan これを使って、BiConsumer の 期間が重複している重複日と重複した要素のリストを処理するメソッドを用意します。 public static void booklist(List list, BiConsumer<LocalDate, List<? super DateSpan>> bookConsumer){ AtomicInteger i = </localdate,>…

LocalDate の Stream 生成

開始日 LocalDate と 終了日 LocalDate 、 start 、 end の Stream int len = Period.between(start, end).getDays() + 1; Stream<LocalDate> stream = Stream.iterate(start, t->t.plusDays(1)).limit(len); ちょっと遊んだ、ふざけたコード StreamSupport.stream( Spl</localdate>…

DateSpan

日付期間に関する処理のために。。 import java.time.LocalDate; import java.time.Period; import java.util.AbstractMap; import java.util.AbstractMap.SimpleEntry; import java.util.ArrayList; import java.util.List; import java.util.function.Supp…