Developer'sWorks
Tips

入出力情報以外のオブジェクト参照方法

通常、ビジネスルールでは入出力アイテムからアイテムや、コンポーネントの参照を取得し処理を 行います。
入出力アイテムに設定されていないオブジェクトを参照したい場合、全てのオブジェクトが格納されている クラスにアクセスする事により可能です。

Swingコンポーネント、アイテムなど画面で使用されているオブジェクトはManagerと呼ばれるクラスにて まとめて管理されています。
クライアント用ビジネスルールに、getManager() のメソッドが提供抽象ルールに用意されています。 このManagerオブジェクトからは、
  1. Swingコンポーネント manager.components (ver1.1.0 からは manager.getComponents()のメソッドが追加)
  2. アイテム manager.items (ver1.1.0 からは manager.getItems()のメソッドが追加)
にて全てのコンポーネントが取得できます。取得タイプはいずれも jp.ne.mki.wedge.common.library.HashVector もしくは java.util.Vector 格納が可能です。
但し、HashVectorのKeyとして登録されているものは内部で制御している ID値 になりますので、Keyによる 取得はできません。取得の際にはループで一つ一つ検査して該当オブジェクトを取得する必要があります。


//アイテムを取得する例
Vector vec = manager.items ;
String name = "アイテムの物理名称";
int size = vec.size();

for(int i=0 ; i < size ;  i++){
	Item item = (Item)vec.get(i);
	if(item.getPhysicalName().equals(name)){
		return item;
	}
}


処理の結果を、他画面に反映したい場合などを目的に、 他画面のアイテムなどを参照したい場合には、他画面のManagerを取得することにより上記と同様の方法で取得を行えます。
他画面のManagerの取得方法は

import jp.ne.mki.wedge.run.client.control.Manager;
・・・(省略)
Manager otherManager = getManager().getManagers().getManager("別フレームの物理名");

になります。