2005/12/08:主に 全てを一括登録する方法を記述
jp.ne.mki.wedge.pub.client.dialog.DefaultStandardDialogを継承し、独自
のダイアログクラスを作成し、Configに設定する
リファレンスドキュメント 標準ダイアログの設定
LogRecordを独自に作成して、各ビジネスルールからログを出力する
LogHandlerを独自に作成して、対象のLogRecordの時にはダイアログを
表示するようにする
リファレンスドキュメント ログ使用方法
たとえば、
MyLogRecord(extends java.util.logging.LogRecord) のクラスを作成。
MyErrorHandler(extends java.util.logging.Handler) のクラスを作成。
MyErrorHandler では
public void publish(LogRecord record){ if(record instanceof MyLogRecord) { JOptionpane.showMessageDialog( ((MyLogRecord)record).getOwnerFrame(), ((MyLogRecord)record).getErrorMessage); } }のように記述。
public void showErrorDialog(String message) { MyLogRecord record = new MyLogRecord(message); Managers.getLog().write(record); }というメソッドを実行する
プロジェクト共通のビジネスルールを作成し、Load処理の1番目に 設定するルール決めを行う。
共通処理の内容は そのビジネスルールの中に ハードコーディング する
ver1.2より追加されたExecuteHooker では
javax.swing.UIDefaults にて定義されている GUIコンポーネント属性である場合、
javax.swing.plaf.metal.DefaultMetalTheme を使用し、UIDefaultsの値を予め変更する事が可能です。
作成したMetalThemeは RunClientのConfigにて設定行うことが可能です。
UIDefaultsの内容は使用するJDKのバージョンにより異なります。
何が含まれているかは
Enumeration keys = UIManager.getDefaults().keys(); while(keys.hasMoreElements()){ String key = keys.nextElement().toString(); Object property = UIManager.getDefaults().get(key); buf.append("[" + key + "] " + property + "\n"); }で確認することができます。
MetalThemeのサンプル
import javax.swing.UIDefaults; import javax.swing.plaf.ColorUIResource; import javax.swing.plaf.metal.DefaultMetalTheme; public class SampleMetalTheme extends DefaultMetalTheme { private final ColorUIResource secondary3 = new ColorUIResource(255, 255, 250); protected ColorUIResource getSecondary3() { return secondary3; } public void addCustomEntriesToTable(UIDefaults table) { table.put("TextField.background", Color.cyan); //TextFieldの背景色を変更 table.put("TextField.foreground", Color.darkGray); //TextFieldの前景色を変更 super.addCustomEntriesToTable(table); }方法2.全ての画面の開始時に共通処理を組み込むにて行う
ver1.2RunClientから コンポーネント、アイテム、ルールを ビジネスルールにて独自にインスタンス化する
方法を公開いたします。
(コンポーネントについては、作成できるものの 種類を制限する場合もあり。現在は確認中)
ver1.2RunClientから 画面インポート機能 が追加されます。
この機能は、
他のCAMC/フレームのリポジトリを、画面起動時にマージするものになります。
CAMC/アイテム は 全て追加します。
CAMC/ビジネスルール は 全て追加します。
CAMC/コンポーネント は 全て追加します。
CAMC/フレーム/Load,Open 処理は 元画面情報の "前" に追加されます。
CAMC/フレーム/Close,Dispose 処理は 元画面情報の "後" に追加されます
(その他、CAMC/フレーム 属性は インポートされません)
追加された オブジェクトは RunClient実行エンジンの Manager クラスにて追加保持されます。
たとえば、共通画面として
を用意し、LOAD処理に
本日日付を取得して設定。
共通メモリより ログイン名称を取得して設定
を行ったものを作成します。
以下のような画面に対して、共通画面をIMPORTして実行すると、
以下のように、共通画面の コンポーネントと LOAD処理が実行されます。
画面インポートの設定は ver1.2 ToolClient の 画面の属性にて行う予定です。
(複数インポート可の予定)
入力がないGUIコンポーネントの場合には、ビジネスルールより
GUIコンポーネントをインスタンス化し、画面に貼り付けを行います。
表示データの内容は 独自タイミング(リスナートリガー)にて行います。
アイテム変更時のイベントをトリガーしたい場合には、アイテムに対して
jp.ne.mki.wedge.run.client.event.ItemEventListener を追加することにより、イベント取得も可能です。
(ItemEventListener については ver1.1にも組み込まれているが、ver1.2にて公式に提供予定。)
入力があるGUIコンポーネントの場合には、フレーム(JFrame)自体を
独自に作成してください。
リファレンスドキュメント フレームインターフェース
DefaultTable(RunClientの標準テーブル)には テーブルレンダラ、エディタの背景色、前景色の設定の
委譲クラスである TableColorSettingDelegate が設定可能です。
この委譲クラスを使用すれば、製品標準のレンダラをご使用の場合でも 反映されます。
レンダラ、エディタ コンポーネントは 独自作成、登録が可能です。
java.awt.Component の public void setFocusTraversalKeys(int id, Set keystrokes) より
対象の KEY を設定可能です。
Set keystrokes に、対象の KeyStroke を追加し上記メソッドで登録をします
※RunClientのConfigにて設定可能な EnterをTabと同等の動きにする 設定は、このTraversalKeyの
追加にて実装されています。
登録するタイミングは LOADのビジネスルールにて行なったり、ExecuteHookerを使用する方法もあります。
java.awt.Component の public synchronized void addKeyListener(KeyListener l) より
対象の KEY をリスナーし、フォーカス移動処理を独自にコーディングします。
この方法は、お勧めしません。特に理由がない限り 方法1 にて実装をお勧めします。
この場合は、KeyEventは必ず consume() し、フォーカス移動処理は afterの実行を行い、フォーカス移動OK
の場合には invokeLater にて requestFocus を実行する処理が必要です