トップ «前の日記(2008-10-17) 最新 次の日記(2008-10-19)» 編集

jFD開発したりしなかったり日誌

2004|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|
2008年
10月
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

2008-10-18 [長年日記]

_ 日々

Sさんから売ってもらった旧型MacBookを弟に渡すことになっていた。

昼過ぎに弟が来ることになっていて、「溝の口でタイ料理食おうぜ」とメール。

お気に入りのコピーピーに行くことになった。

最寄り駅前で弟と合流し、溝の口へ。

コピーピーのある、やたら昭和チックな一角へ。

3品ほど注文する。

コピーピーはやたら辛いことで有名なんで、すこし辛さを抑えて、水をたくさん

持ってきてくださいとお願いしたら、かなり手加減した辛さでむしろ物足りなかった。

普段だと僕が水をジョッキで3杯くらい飲むくらい辛いんだが。

いつもは最後にデザートを頼むと、ヒリヒリになった口の中に甘さが優しくて

本当に美味しいんだが、今日は頼む気になれなかった。

食事後、新しいMacBookを見に電気屋を回ったが、まだ入荷してなかった。

マルイの上の階のノジマに行ったらマリオカート大会がやってた。

弟が

「大人げなく小学生に勝っていい?」

と言ったが止めた。

CD屋を覗いて、砂原良徳のCDを購入。

ニコニコ動画で見た動画の中に彼の曲を使ったのがあって、とても格好良かったんで。

下の階のいつもの服屋に行き、馴染みの店長さんに挨拶。

ちょうど鞄が欲しかったんで購入。

買い物後、行きつけの二子玉川のスナックのママから電話。

ママの持ってる絵を売りに出すのを頼まれてるのでその確認と、夕方から飲みに

行かないかとのお誘い。

謹んで弟込みで参加させていただくことに。

夕方までゲーセンに行ったり、喫茶店で弟のMacBookを弄ったりして時間を潰す。

実はMacBookの程度がどんな物か聞いてなかったんだが、箱を開けてびっくり。

かなり良い。

まだ1年経ってないモデルだし、僕みたいに持ち歩いてないのでそれも当然だろうが、

この状態であの値段ならかなりお得だ。

弟大喜び。

夕方になって二子玉川に移動。

ママから電話があったので店へ移動。

駅の立ち飲み屋だ。

ママの他に店の常連のTさんも来ていた。

ママは弟を知っているが、Tさんは初めてだった。

ビールをごちそうになった。

マスターが自分で作ってるという料理を頂きながら飲む。

美味しい。

色々サービスで出してくれたが、まさかケーキまで出てくるとは思わなかった。

頂き物だそうだ。

ママの店の開店時間まで飲んで帰宅。

_ jFD2

jFD2のLinux対応は苦労の連続で、正直言って気が重い。

とにかくAWT、Swingにバグが多くてやってられない。

子ウインドウやダイアログを表示した際にキーボードフォーカスが正しく渡されず、

どのウインドウもキーボードフォーカスを持ってない状態になってウインドウをマウスで

閉じなくてはいけなくなったり、UbuntuでGnomeのテーマを使うとバグって動かなかったり、

かなり問題が多かった。

今年はjFD2を海外デビューさせるつもりだったんだが、その際に一番重要になるのは

Linuxだと思っている。

Windowsではファイラーはやたらとあるので、今更そこに食い込むのはきつい。

Macにはあまりないんだが、マカーはまずjFD2の見た目、操作に馴染めない。

その点、いけてるファイラーが少ない上にjFD2のインターフェイスに抵抗のない

Linuxユーザーは重要なターゲットだと思ってるんだが、そもそもJavaの実装がダメなんで

自分が満足できる完成度にすることが不可能だった。

なかば諦めてほったらかしてたんだが、最近のJava(6のUpdate10)を試したら

だいぶマシになっていた。

少なくともGnomeテーマを使ったら起動しないことや、ダイアログを表示するなり

フォーカスが行方不明になってることは無くなった。

これなら実用に足りる。

そういうわけで弄り始めたが、かなり致命的な問題が発生。

テキストビューアがキー入力を受け付けてくれない。

カーソルでスクロールすることもエスケープで閉じることも出来ない。

んがー

テキストエリアにフォーカスリスナーを付けたり、KeyboardFocusManagerを使ったりして

テキストエリアがフォーカスを持ってることは確認できたが、キー入力が渡ってきていない。

なんだよこれは。

とりあえずもうしばらく悪あがきしてみるか。

もう少しで満足いく動作に出来るんだがなあ・・・

_ あ、わかった

LinuxのJavaのJTextAreaは、編集不可になってるとキーイベントを一切

処理しなくなってるんだ。

だから入力できないだけじゃなく、Ctrl+Cでコピーとかも出来なくなってる。

しかもただ処理しないんじゃなくて、イベントを全部握りつぶしてるから、親になる

JScrollPaneなんかもキーを受け取れない。

どう考えてもバグだ、これは。

バグレポート出しておこう。

_ んがー

さらに問題が。

テキストフィールドを持ってるダイアログ(ディレクトリ変更やリネームとか)を

閉じた後にフォーカスが行方不明になる。

わけわかんねえ。

色々調査してたら、ダイアログのdispose()を呼ばなければフォーカスが行方不明に

ならないとわかったが、呼ばないわけにもいかない。

どうもスレッド絡みが原因っぽい。

jFD2の各コマンドはマルチスレッドで動作することを前提にしているので、

setVisibleとかは必ずイベントディスパッチスレッドで実行されるようにして

スレッドセーフ化してるんだけど、同じくdsposeをスレッドセーフにしてもやはり

フォーカスが行方不明になる。

試行錯誤して、setVisibleをさらに弄って、モーダルの場合setVisible(true)で可視にして

ユーザー操作によってダイアログが閉じられ制御が戻ったら速攻でdisposeを

呼んでしまうようにした。

これでとりあえずフォーカスが行方不明になることは無くなった。

これならまともにリリースできるか?