Sweets Garden YUJI AJIKI

今日は息子の5才の誕生日なのでケーキを買いに行きました。ホールケーキじゃなくて、好きなものをそれぞれ選んだ方がいいかなと、最近オープンした安食雄二さんのお店に行き、家族それぞれ別々に購入。写真はクレマンダルザスのヴェリーヌ。クレマンダルザスってシャンパンなんですね。飲んだことは無いので違いがわかる訳ではないのですが、シャンパンの香りが爽やかでこの季節にはピッタリでした。

Findout

Findout
前を行く青年のTシャツにそう書いてあった。どんな意味?すぐにGoogle翻訳で調べる。

Findout、翻訳結果はそのままだった。ああ、造語か。そう思ったけれど、少し気になりdとoの間にスペースを入れてみる。

「調べる」
今度は翻訳された。調べる?findにoutを付けると?findはプログラムで良く使うワードだ。見つける、という意味で用いることが多い。見つけ出す、ということかな。

電車が駅に着いたので探求は終わり。

Flex3.2 TreeのDnD

FlexのTree、DnDによるノードの移動。子ノードが無いノード配下へのドロップができない。

以下、解決策、かな?
TreeコンポーネントのcalculateDropIndexファンクションを利用してカーソルの下にあるノードを取得します。この時、showDropFeedbackによるドロップインジケータはノードの上端。ドロップインジケータが下端に来るのはカーソルがノードの下方に外れたタイミングとなります。

このままインジケータの通りにドロップしてしまうと、ノードの上、もしくは下にしか移動することができません。

ここでひと工夫。インジケータの位置にはドロップさせないのだから、見た目でもわかるようにしたい。そこで、ノードの上から1/4〜ノードの高さの領域にカーソルがある場合にはhideDropFeedbackを利用してドロップインジケータが表示されないようにします。

この領域にカーソルがあることを判定するためにはDragEventのlocalYプロパティを使います。localYプロパティにはtreeコンポーネントの上端からの距離が設定されており、ノードのtreeコンポーネント内におけるY軸の位置を算出することによって、カーソルが領域上にあることがわかります。

領域の開始位置は下記のようにして求めることが出来ます。

ノードHeight*ノードRowIndex+(ノードHeight/4)

領域の終了位置は下記の通り。

ノードHeight*(ノードRowIndex+1)

よってlocalYの値がこの開始位置と終了位置の間にある時を判定すれば良いのだから、下記のようになります。

開始位置 < localY < 終了位置

これらの処理をDragOverハンドラで行います。また、DragDropハンドラでも同様の判定を行い、ドロップ位置を確定します。

実証コードは後日提示予定。

紫陽花


自宅に植えた紫陽花が咲きました。去年もらってきたときは咲きませんでした。もらうときに、「今年は咲かないと思うけど、来年は咲くよ。色はわからんなぁー」と言われたので色はわかっていなかったのですが、どうやら水色のようです。

まだこれからもう少し色がつくとは思うので楽しみです。

JavaFXのすすめ

ICEfacesのアルファ3が出ていたのでそれを試してみたかったのですが、限りある時間の中でJavaFXへと興味が移ってしまいました。そのためICEfacesを試してみるのは後回しとなり、これからしばらくはJavaFXをいじってみようと思います。JavaFXはバンクーバオリンピックの公式HPでも利用されていたので、それなりに露出度が上がってきたと思っているのですが、やはり業務系のアプリになるとあまり採用されているのを聞きません。(私のまわりだけかもしれないのですが...)

さてJavaFXですがNetBeansで簡単に開発することができます。NetBeansにはJavaFX Composerという機能がついていて、これはキャンバスにボタンやテキストフィールド等をドラッグ&ドロップでポトペタとするだけでアプリを簡単に作れてしまうという優れものです。NetBeans使いの私としては非常に取っ付きやすく、また今までNetBeansを使っていなかった人でも、これからJavaFXをやってみたいと思う人にとっては非常に魅力を感じてくれる部分だと思います。

NetBeansJavaFXだけでなく、Javaの開発からその他の様々な言語での開発、javaScriptやHTMLエディタとしても秀逸なので、これを機会にEclipseから乗り換えてみたらいかがでしょうか。日本語のコミュニティも充実しています。

NetBeansの話はこのぐらいにしてJavaFXについてですが、勉強するなら下記リンク先が参考になります。
「詳説JavaFX」第3回 変数と型、そしてJavaFX Composer
まだ連載3回目なのでこれから始めるにはもってこいです。あと、Flexでアプリを作っている方など一度見ていただけるとわかりますが、同じようにコーディングできますよ。(もっと簡単かも)

NetBeans6.9 RC2の警告表示

NetBeans6.9 RC2の警告ツールチップMacOSX版でも「Alt+Enter キーを押すとヒントが表示されます」となっているんですが、「control+Enter」が正しい。細かいところなんですが数分悩んでしまったので、出来れば改善していただきたいところです。すみません、altキーありました。optionキーの上にaltって書いてあった(前からあったかな)結局「option+Enter」で表示されたのですが「control+Enter」でも表示されるみたいです。

あと、この警告はHashtableとVectorを利用していると表示されるんですが、ライブラリの方が対応してくれないと、どうしても利用せざるおえないインターフェイス(javax.naming.directory.InitialDirContextなど)があるので、警告が表示された状態となってしまいます。ヒントの設定で警告を出さないようにすれば良いのですが、できればSuppressWarningsアノテーションで部分的に警告を消したい。SuppressWarningsアノテーションでこの警告を消せるのか、その場合は引数に何を設定すれば良いのか、もう少し調べてみようと思います。

追記
やっぱりSuppressWarningsアノテーションでは消せないみたいです。deprecation, unchecked, fallthrough, path, serial, finally, allのすべてを指定してみましたが、警告はそのままでした。結局ヒントの設定で警告を外すことにします。