2018-09-01から1ヶ月間の記事一覧

jsTree の types プラグインを使う

https://www.jstree.com/api/#/?f=$.jstree.defaults.typesこれを使えば、コンテキスメニューにおける _disabled の判定も、 以前書いた jsTree のコンテキストメニューをカスタマイズ - Oboe吹きプログラマの黙示録 も、get_node した icon を問い合わせる…

jsTree で下のツリー階層を開く時にもAJAX通信で読み込む方法

jsTree配布デモを見ても、ツリー全体JSONをAJAXで読み込む方法はあるが、 静的に書いたJSON から下の階層を開く時や、AJAX読込み後さらに下の階層を読み込む方法が、 なかなか解らなかった。massload とかプラグインあるみたいだが、どうもできない。。。 ク…

ディクショナリの get関数、取得できないとき

Python 初心者向け。。。 ディクショナリの get関数でキーが存在しない時は、第2引数指定すること。 例えば、mongodb など検索して取得したデータ=ディクショナリで 以下のように、if 文ネストを深く書くのは避けたい。。。 { "api": { "moneyrondaling":{ …

jQuery3 から load関数は注意

jQuery 3から、画面ロード時の処理を $(function(){ $(window).on("load", function(){ // TODO }); }); と書いたら動かない。もともと .load() や .unload() は、jQuery 3 のRC版が出た時の changelog で もう無くなると書いてある。 https://blog.jquery.…

編集可能にしたTabulator で、ALL check のチェックBOXを設置する

Tabulator は、編集用に設置した場合、 チェック(tickcross)に対する、ALL check ON/OFF を切り替える=入力する為の 機能または部品というのは標準で用意されていない。 ALL check ON/OFF の部品は、普通のUI感覚では、表のヘッダにある。 しかし、Tabu…

jsTree JSON データの変換

ツリービューの情報を管理するのに、ノードの親子関係の処理を新たにコーディングするのは、どんな言語であれ 労力が必要です。 できれば、画面でツリーの描画操作の結果をそのまま管理するのが楽です。 せっかく JSON というオブジェクトで表現するのですか…

jsTreeのドラッグアンドドロップの制御

jsTree のドラッグアンドドロッププラグイン は、 単に、dnd だけを書くと、 $('#tree').jstree({ 'core':{ : }, "plugins":[ "dnd" ] )); なんでもかんでも、どこの移動先にもドラッグアンドドロップで移動ができてしまう。 ファイルの下に、ぶら下げるよ…

jsTree のコンテキストメニューにアイコンを設定

jsTree のコンテキストメニューをカスタマイズ - Oboe吹きプログラマの黙示録 に続き、CSS疑似要素で、フォントアイコンを書く - Oboe吹きプログラマの黙示録 を書いたことを利用して、コンテキストメニューにアイコンを設定します。 今回も、Fontello - ico…

CSS疑似要素で、フォントアイコンを書く

CSS

ブラウザ表示で期待するHTML <i class="plus-icon">&#xecf2;</i> フォントアイコンで必要な基本的なCSSは書いてあるとする。 失敗するパターン。。。 .plus-icon::before{ content: "&#xecf2;"; } これはダメである 挿入する疑似要素がそのままの文字列が出てしまい、フォント…

jsTree のコンテキストメニューをカスタマイズ

jsTree のプラグイン contextmenu は、デフォルトのままではフォルダとファイルのように、 ある種類のノードの配下にノードを作成することができない =ファイルの下に、フォルダ/ファイルは作れてはいけないはずだ。。 つまり、ツリー構造を作成できるのは…

jsTree 初期表示で全て展開表示

open_all というメソッドが用意されてるとのことだが、jsTree の マニュアルを見ても どう呼び出すのか解りにくい。loaded.jstree イベントにバインドして実行させるそうだ。 $('#tree').jstree({ 'core':{ 'data':[ {"id":1, "icon":"jstree-folder", "text…

jsTree のクリックイベント捕捉の書き方

Webページに Tree 描画させるのに、Wicket が提供しているものは、Java Object で要素&ツリー体系を作らなくてはならず、 これは手間もかかって非常に辛い。巨大なツリーで children が大量の時、結果表示スピードも心配だ。 だから Wicket の Tree 機能は…

Tabulator のカスタムフィルタ

Tabulator のチェック値のフィルタは、標準ではONを抽出するフィルタである。 サンプル $('#example-table').tabulator({ layout:"fitDataFill", columns:[ { title:"名前", field:"name", sortable:true, headerFilter:true, headerFilterPlaceholder:"名…

try~with~resources リソース解放されない

今更ではあるが、try~with~resources 文が便利で、ついうっかりこう書いてしまう。 File file = ....; try(PrintWriter pw = new PrintWriter(new BufferedWriter( new OutputStreamWriter( new FileOutputStream(file, file.exists()), "MS932")))){ } これ…

mongodb任意のコレクションの列の値をPythonでリストにする

mongodb に、"service" なるコレクションがあったとします。 ”type"という列の値のリスト抽出して、‘’空文字と合わせたリストを作ります。 ”type"列が存在しないレコードもあることを考慮します。 ・・・というお題。 import pymongo def open_database(dbna…

Tabulator ウィンドウの高さに合わせる

Tabulator は、レスポンシブだが、ウィンドウの高さに合わせた表の高さ height までは 調整してくれない。 自前でやるしかないのか。。 サンプル $('#example-table').tabulator({ height: window.innerHeight - 70, layout:"fitDataFill", columns:[ // 行…

Tabulator 右clickコンテキストは、stopPropagationでなくてpreventDefault

jQuery のイベント伝播の制御は、、 preventDefault() = 対象の要素のイベントをキャンセル stopPropagation() = 親要素への伝播をキャンセル return false = 対象と親要素への伝播をキャンセル であるから、Tabulator 右click時、ブラウザのコンテキストメ…

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

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

Wicket の画像表示コンテンツ

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

Python Flask template Jinja の文字列 escape

Webサイトの構築・提供を全てPython + Javascript だけでなんて、個人的見解ではとても賛成できないのだが、 なぜか世の中にはそういうものを作るところがあるもので困ったもの。 Flask template Jinja ・・・今時この JSP やJSFみたいなテンプレート書くな…

JavaScript 文字列置換、可変な対象を全て置換

今更だけど、忘れそうなのでメモ。JavaScript 文字列置換、replace ( 対象文字列, 置換文字列 ) は、 最初に見つかるもの1個だけを置換するのは、非プログラマでないかぎり常識で 全てを置換するのは、 正規表現で replace( /pattern/g , 置換文字列 ) を使…

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

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

commons pool を AOP で処理する

Apache commons pool の利用を、Google guice AOP 使用 で書いてみました。 仕様で重要な点は、 ・POOL を定義して参照する為の Key をメソッドアノテーションで POOL から取得Object が return 値になるようにする ・このメソッドアノテーションを付けるメ…

MethodInterceptor を interface で書く

昨日書いた投稿に触発されて、AOPについて考える。 現在の yipuran-mybatis の原型を書いたのは 2010年でまだ、Java6 だった。 DB接続コネクションとトランザクションを AOP でまとめたのが yipuran-mybatis であったが、 使用する時に、IBatisDAO クラス…

commons-pool 更新されてた。

Apache の commons-pool 久々に目に留めたのですが、 2018-6-14 に、Maven セントラルリポジトリに、UPされてた。 MariaDB で発生していたバグ、 [POOL-336] GenericObjectPool's borrowObject lock if create() fails with Error - ASF JIRA など、対応され…

guice インターセプタの Matchers.annotatedWith

久々に、 Google guice でコードを書いていて、うっかりしていることに気がついた。インターセプタの Matchers.annotatedWith で、@Named に対する 指定をする時、 com.google.inject.name.Names の named メソッドを使うのだが、 インターセプタではなく、…

Jython 実行時、Cannot import site module and ...

Jython 実行時、以下のエラー ImportError: Cannot import site module and its dependencies: No module named site Determine if the following attributes are correct: * sys.path: ['C:\\Users\\xxxxx\\.m2\\repository\\org\\python\\jython\\2.7.0\\L…

Java で ini ファイルを読み込む

ini ファイル形式、”[ ]" で括ったセクションと呼ばれるカテゴリ毎の key と value を書いていくもの。 一般的には、セクションは必須だと思うが、次のルールで Java で読み込む。・行区切りのテキストで、文字コードはデフォルトで UTF-8 で読込み、UTF-8以…