GOLF Function Keyへの対応

六の日記はここにはないぞ でGolfを実戦投入されるとの事でうれしく思っています。
http://d.hatena.ne.jp/rokugen/20070223

ここで、ファンクションキーを使った時に、現在のLost Focus時にBindingする設定では、
編集中の内容がBindingされないとの問題点が指摘されており、ソースを見ていただき、
JGoodies BindingのParameterを変更して対応をしたとの事でした。

次回のGOLFで、このParameterを設定可能にする事も可能ですが、私自身はKey入力される
度に Validationされるのは煩わしいと感じています。

そこで考えたのが下記のコードです。
画面のConstractorに追加すると、(この例はFunction KEY F9の場合)この中でfocusNextComponent()を
呼び出しているので、Binding後 Validationが実施されます。

        KeyboardFocusManager.getCurrentKeyboardFocusManager()
      .addKeyEventDispatcher(new KeyEventDispatcher(){ 
        public boolean dispatchKeyEvent(KeyEvent evt){ 
                 int keyCode = evt.getKeyCode();
                if ( keyCode == KeyEvent.VK_F9) {
                    KeyboardFocusManager.getCurrentKeyboardFocusManager()
            .focusNextComponent();
                    formManager.getFormValidationManager().Validate(true);
                }
                return false;
            } 
        });

これも一案かと思います。
Parameterを設定についてご意見があればコメント頂けると幸いです。

NETBEANS 6.0

M7が出たので早速 Installしました。5.5では出ていたが6.0では出ていなかった
Overrideの表示が復活しました。

Netbeansでは今まで2回Bugと思われる挙動に出会っています。
最初は、Break Pointを設定しようとクリックするとヌルポになるので、
Issuezeriaにも登録したのですが、一旦この状態になると reinstallしても
直りませんでした。結局 Home Directoryの.netbeans/devの Directoryを削除
後にreinstallしたら直りました。

その後、2台のMachineに入れていたら、片方のMachineで、文法 Errorではないのに
EditorでMarkが出る Bugに出会いました。 Compileは通るのですが。

これもreinstallでは直らず、M7にしても直らなかったので、これも上記同様
/devを削除したら直りました。

開発版で上記の症状がでたら、/devを削除してreinstallするのをお勧めします。

JTable client property terminateEditOnFocusLost

GOLFを作っていて、JTableで入力中に、ボタンを押してValidationをしようとすると、
入力中のDataがCommitされない(編集中のままになる)ので、仕方がないので、
Validationの作業中に強制的にCommitするコードを書いたのですが、
現在 JAVA 7に向けて Beans Binding (JSR 295)を進めている、ScottのBlogに
コメントしたら、「Try setting the client property terminateEditOnFocusLost to Boolean.TRUE on your table」
と教えてもらいました。
http://weblogs.java.net/blog/zixle/archive/2007/02/update_on_beans.html
Googleでも日本語ではこの情報は殆どないのですね。

おかげですっきりしましたが、Swingはくせが多いですね。
JTableのSelected Rowの変更も、ListSelectionModelの方でCatch出来るのが判り、
これも大分すっきりしました。V0.1では自分でMouse Clickや Key Released Event
で判定していました。

NetBeans 6.0はまだまだBugがあるものの、使い慣れるとRich Clientの開発では
Eclipseより良い点が多いです。コードを変更しても、変更をLocalで追跡して
くれて、ある部分だけ Clickする事ににより変更を戻せるのは秀逸だと思います。

また、Refactorが機能しないので、同時に NetBeans 5.5をあげて、そちらで
Refactorすると、即座に反映(EclipseみたいにRefresh Buttonを押さなくても)
してくれるのは、大変助かります。

ただしSeasar ContainerのHot Deployには対応出来ないので、Server側の
開発は Eclipseが必須ですので、両方の Keybindをこなすのが大変ですが。
NetBeansEclipseのキーバインディングを設定したら大分楽になりましたが)

Golf-Radio ButtonとCheckbox

Radio ボタンと CheckBoxも Binding出来る事確認
(一部 CSV Format拡張 - Radio ButtonのChoice したときの文字列定義 列追加)

Menu画面から画面切り替えは出来るようになったので、後はTransaction 連携処理
とHost処理後のError情報の連携処理ができれば Version 0.2を出せるかな

NETBEANS 6.0

MENU画面

GOLFの開発は、今まで Netbeans 5.5でやっていましたが、昨日 Netbeans 6.0 M6を試したら、Editorが
大部見やすくなっていました。ただ、まだBugがあり途中で Assertion Errorとかで、Compileも出来なく
なるのが困りますが、あまり頻度はないので利点の方が大きいみたいです。
またProfilerも提供されていて、簡単に使用できるのはいいですね。

昨日 S2ContainerからあるComponentを取り出そうとして、Memory Out Errorになってしまった
(JFrameで、自分のPropertyにJFrame属性があって Loopしていました)時は、やはり
Eclipseの方が Debugしやすかったですが。

Golf V0.1 リリース

本日 GolfのVersion 0.1をリリースしました。

Golf Project とは、Seasar ContainerとJGoodiesを利用した、 Rich Client
Platformです。 Swingを使い良くするということで、Swingに関係ある 「Golf」 と言う名前にしました。
取り合えず Version 0.1では下記内容となります。

  • 画面の作成は、Matisse で簡単に、自由にデザイン出来る Netbeans 5.5の使用をお薦めします。(なお、EclipseでのProject設定もしていますので、その後のDicon関連には、EclipseKijimunaのSupportも可能です)
  • Validatorの設定は、Dicon に行い、それと画面のFieldとのMappingを、JAVAだけでなく、「CSV File(Excelで編集)」で簡単に行える。
  • Validationした結果は、画面に定義した、Scroll Paneに即座に自動的に表示されます。
  • ブラウザでの表示と同様、コンテナ画面にヘッダー領域やフッター領域などの共通領域を 設定しておき、コンテンツ領域に指定した

画面を合成して簡単に表示できます。この場合TITLE, MENUも変更できます。(開発は、通常のJFrame画面の編集で出来ます)


今後の予定

  • ログイン後、複数のコンテナ画面を使用出来、それらでセッション情報を共有出来る。
  • コンテナ画面のDefaultとして、Menu画面を配置し、Menuを選ぶ事で、同一画面内に該当画面を開く
  • どの画面でも、直接 トランザクションコード(画面コード)を入力する事により、メニューに戻らなくても、該当画面にジャンプ出来る(指定で新たなコンテナ画面を開いてその中にジャンプ する事も可能)ホストとは、S2Remoting (S2Hessian,S2RMI等)を利用して、ホストの処理する トランザクションコード(Diconに定義した、Action)に処理を委ねる。
  • ホストで処理した結果は、場合により同一画面に単に表示したり、新たな画面を開いて表示したり(WEBアプリケーションのForwardに該当)、メニューに戻ったり、で指定出来る。

尚上記の機能は、複雑な業務で多くの画面を使用する場合、統一的な効率の良い、ユーザーオペレーションと開発の両立を目指しています。
すでに、C#で 試作していたものを、JAVAに移植しながら改善予定です。

ご質問、ご意見、ご要望がありましたら、どんどん MLかこのBlogにてお知らせ下さい。

LINUX SERVER 設定とGolf

今日の会社での仕事は、2年以上前に設定した、LINUX Serverのext3 Filesystemが
年末に壊れてしまい、その復旧を手伝って遅くなってしまいました。
XFSは、全然壊れないのに、ext3はまだまだ(2年前のものだから最近は改善されて
いるかもしてませんが)の様ですね。
ApacheとSambaは他の人が設定したのですが、Suseが10からDefaultでUTF8に
なったので、EUCに戻したり、PostgreSQLPHPのLoadをしました。
PHPでは、SQL Serverも見ているので、SourceからCompileしたのですが、
以前は、extention moduleが pgsql.soみたいに出来たのに、最近のPHP
できないのではまってしまいました。結局、php.iniでの設定は不要になって
改善されたのですが、2年振りの作業で大分時間を無駄にしました。

今日は誕生日でしたが、今日に限って遅くなってしまいました。

GolfのSampleの説明の最初の画面分が概ね終わりました。
まだまだですね。