clominalで使うGUIツールキットを変えようと思う。

久しぶりのブログということで近況を。(実装や調査に極端に集中し始めるとメモを残すのを忘れてしまうのはなんとかしないと。。)

最後のブログ更新をした後、PaperWorkerはGUIの実装に入った。
が、そこで「あ、clominal使ってみよう!」と思ったのが失敗。
再びclominalをいじり始めたのだが、LinuxIMEの日本語変換ウィンドウがおかしな位置(JFrameの左下)に表示されるのがどうしても我慢できなくなってきてしまった。。
何度か触れているけども、当初、clominalはJavaの標準ライブラリでのみ実装しようと考えていたが、もう限界。。

ではこれをどうやって是正するか。思いつく方法は2つ。

  1. JavaVM側のソースを調査し、パッチを作成、Oracle?とOpenJDKのコミュニティに送付。正式に修正されるのを待つ。
  2. IMEの変換ウィンドウが正しい位置に表示されるGUIツールキットを使用する。


…1は、次のような問題がある。ほとんど過程の話だけど。

  • このバグは大分前から既知の問題としてコミュニティに認識されているにも関わらず修正がなされない。
  • 何かの理由で、修正が難しいのかもしれない。
  • 調査したいけれども、そもそも俺にそこまでガッツリとしたスキルがない。
  • 仮にパッチ作成ができたとしても、どこの馬の骨か分からん人間が送付してきたパッチが採用されるのか?
  • 更に更に仮にめでたく採用されるにしても、正式に反映されるまでにものすごい時間がかかるのではないか。

どう考えても2の方が現実的なので、2つほど試してみた。

まずはJavaFX
Swingの後継として標準ライブラリに組み込まれることもあって、期待をしながらサンプルを作ってみた。
そして俺の期待は見事に裏切られた。
一体全体、Oracleさんはやる気があるんだろうか。。

ないんだろうなぁ。という事で見限り、IBMに擦り寄ることにした。

IBMと言えばEclipseEclipseと言えばSWT/JFace。
このGUIツールキットはIME変換候補ウィンドウを正しい位置に表示してくれた。
まぁネタは割れてたんだけど、それでも今までclominalに採用しなかったのは、やっぱり標準でない事と、OS毎に異なるライブラリが必要になるという点。Deployが大事(おおごと)になりそうなのが嫌だった。Eclipseで必要なライブラリをゴソッと抜き出したら20MBもあるし。。
正直「これでいいのか?」と自問自答してしまうけれども、とりあえずこれで行ってみる。
まぁこうなった以上、Swingよりいいところを探したほうが精神衛生上いいかもしれない。