Handsontable で 安易なテストツールを作る。

Handsontable で、任意にキーと値(value)を入力して、それをJSONテキストにするのと、任意の入力URLに送信するもの。用意するもの。Handsontable は、コミュニティ版で充分、https://handsontable.com/JSON の jQueryプラグイン GitHub - Krinkle/jquer…

Handsontable コンテキストメニューで削除の丁寧な補助は書かなくてもよい

久々に Handsontable に触れる。 3年程前、2014 年のバージョンの Handsontable のコンテキストメニューは、行削除、列削除を組み込んだ時、 最後の1行、1列は、削除できないように、以下のように disabled キーの関数コーディングをする必要があった。 $…

mybatis logbackが出なくなった場合の対処

mybatis 、logback を使っていて、logback のバージョン上げたのか何かのきっかけ、 依存関係かなにか?指定しているアペンダ悪い?で mybatis のデバッグレベルのログが出なくなってしまった。 実行するSQL文が見れてデバッグに便利だったlogaback.xml …

フェードイン、フェードアウトするメッセージ(改編)

昔、フェードイン、フェードアウトするメッセージの jQuery を書いた。 見直すと中央寄せが中途半端でできていない。書き直す。CSSソース @CHARSET "UTF-8"; /** * fadeinmsg.css */ div#fadeMessageModal{ display: none; position: fixed; width: 100%;…

Optional の filter を連結して使う

Webアプリでのフォーム入力に限らす、Javaでは変数への入力実行の後の妥当性チェックを記述していると どうしてもコードが長くなる。 コードが長いと、タイプミスの確率も上がるし、なにしろ読むのが辛い。長くても何回も if文を書きたくない。java.util.Opt…

時刻正規表現

24時間制、0~23時のHH:mm:ss の正規表現 ^(0[0-9]|1[0-9]|2[0-3]):(0[0-9]|[0-5][0-9]):(0[0-9]|[0-5][0-9])$

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

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

ストアドファンクション生成 Error Code: 1419

SQL

他人が構築したDBを引き継ぐのは、嫌なもので状況を把握しないまま、 MySQL ストアドファンクションを追加したら、 Error Code: 1419. You do not have the SUPER privilege and binary logging is enabled (you *might* want to use the less safe log_bi…

グルーピング&ソートの続き

先日のグルーピング&ソートに続いて、、、 グルーピングした時にソートもする。 - Oboe吹きプログラマの黙示録同じく Foo なるクラスオブジェクトのリストで、グルーピングして並べた時に、先頭だけキーをそのままで 他をキーが表示されないように置き換え…

グルーピングした時にソートもする。

グルーピングしながら、ソートした結果リストを求めることを いざコーディングしようとすると、即時、思いつかないのが残念でメモ。Collectors.collectingAndThen を使うのが重要サンプル、以下、文字列の key と value があるクラスオブジェクト public cla…

chromeブラウザ左下に出るURL表示を出ないようにする

方法があった。 stackoverflow で見つけました。 $(function(){ $("body").on('mouseover', 'a', function(e){ var $link = $(this), href = $link.attr('href') || $link.data("href"); $link.off('click.chrome'); $link.on('click.chrome', function(){ w…

DropDownChoice の IChoiceRenderer

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

実行中のクラス名やメソッド名の取得

Thread.currentThread() を参照することで、スレッド名 → Thread.currentThread().getName() クラス名 → Thread.currentThread().getStackTrace()[1].getClassName() メソッド名 → Thread.currentThread().getStackTrace()[1].getMethodName()で取得できるの…

Pattern to Stream

前から常に思っていたのですが、Java8 には、java.util.regex.Pattern に、splitAsStream があるのに、 matchAsStream に相当するマッチしたものをストリームで返すメソッドが提供されてないんだと不満でした。 Java9 なら、Matcher に、 Stream を取得でき…

Stream でListの中で特定要素があるインデックスを求める

完璧=普遍的とは言えないが、、 例) List<String> list = Arrays.asList("a", "b", "c", "d", "e"); int findIndex = IntStream.range(0, list.size()).map(i->list.get(i).equals("c") ? i : -1).max().orElse(-1);;でも、2つ以上マッチする場合は、最後のインデ</string>…

PaxHeaders.X が作られないように圧縮ファイルを作成する

apache commons compress で圧縮ファイル tar.gz を作成していたら、階層が深かったり長すぎるファイル名で圧縮後、解凍を行ったときに、PaxHeaders.X という名のディレクトリエントリ、中に展開したときに不完全に解凍されたファイルのパスが作られてしまっ…

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

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

ラムダ式の例外処理を綺麗にする

ラムダ式の中で例外が発生する場合は厄介なもので、何とかしようとするならラップに近い形で自分で用意するしかないみたい。Consumer 、Function 、Predicate これらの例外捕捉処理バージョンを作っておけばかなり便利かもしれません。 import java.io.Seria…

Javaで MACアドレスを抽出する

java.net.NetworkInterface を利用して抽出します。 NetworkInterface から、getHardwareAddress() で、ハードウエアのアドレス=MAC アドレスに相当が見れます。NetworkInterface は、以下の static メソッドがあります。 getByIndex(int index) → 指定イン…

byte[] を IntStream で、、、

byte配列 を IntStream として処理する方法、int配列 ならば、 int[] i = { 25, 26, 27, 28 }; Arrays.stream(i)は、成立するが、 byte[] b = { 25, 26, 27, 28 }; Arrays.stream(b)というのは成立しない。それでも byte配列 を IntStream として処理したい…

ファイルPATH の階層によるコンパレータ

使わないかもしれないけど。 public final class FilePathComparator implements Comparator<File>{ private String splitCharacter = File.separator.equals("\\") ? "\\\\" : "/"; private OrderBy orderby; public enum OrderBy{ ASC(1), DESC(-1); private int</file>…

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

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

File.separator の処理

ファイルのPATH Windows でも Linux でも、階層に分けた同じ結果リストを求める。 どういう課題かというと、、、Windows c:\a\b\cLinux /a/b/cとある時、 a a/b a/b/cというリストを改行出力した結果を得たい。 Windows 環境の PATH であろうが、Linux環境で…

Files.lines を使おう。

Java で 有名なフレームワークを使った Webアプリ開発ばかりやっていると、 ファイルシステム上のテキストファイルを1行ずつ読込み処理するというものを作る機会は 案外、少ないもので、どうするんだっけ。。と思いだすまで数十秒かかってしまい自己嫌悪。…

tar and zip の圧縮・展開

昨日書いた FileCollection は、実はこの tar and zip の圧縮・展開 を書く為の伏線です。 oboe2uran.hatenablog.comApache commons compress を使用して https://commons.apache.org/proper/commons-compress/関数型インターフェースで圧縮・展開を用意した…

FileCollection

昨日の続き、、ディレクトリを走査するもの、名前が良くないので、FileCollection と名付け さらに、Predicate を走査ではさみたくなった。 import java.io.File; import java.util.ArrayList; import java.util.List; import java.util.function.Consumer; …

ディレクトリツリーを走査を再興

昔、再帰関数で書いたのかもしれないけど、改めて再帰関数、結局これしか思いつかないけど 久々に for 文を書いてみました。(Java8 になってから、本当に for文を書く機会が減った。。。)要の再帰関数は、、 private List<File> parse(File file, List<File> list){ l</file></file>…

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…

favicon.ico resource 404 status

Webサーバを起動後、作成したページにアクセスして、以下のように ブラウザ側でエラーが出る場合の対処方法、、failed to load resource the server responded with a status of 404 ... favicon.ico生成してるHTMLヘッダに、以下を追記する。 <link rel="shortcut icon" href=""></link>

XStream null value を出力するケース、再び書き直す。

先日書いた、カスタムのコンバータで、XStream でXML出力する時の NULL の値のタグを書くケース、 HierarchicalStreamWriter を BiConsumer で渡して書かせるなんてやはりセンスないので、、、 oboe2uran.hatenablog.com先日の方法ではなく、NULL で空タグを…