基本的なカスタマイズ > ユーザーインタフェースのカスタマイズ > UI のデータの収集 > NmObject ユーティリティ
  
NmObject ユーティリティ
属性パネルやテーブル/ツリーセル内の属性の値は、パネルまたはテーブル/ツリー行のデータムオブジェクトとは別のオブジェクトから抽出する必要があります。
問題: 選択したテーブル/ツリー行の識別やテーブル/ツリー行の操作メニューの作成に使用するオブジェクト識別子は、行データムオブジェクトの識別子にすることができません。
バックグラウンド
各属性パネルおよび JCA テーブル/ツリーの各行にはデータムオブジェクトが格納され、ここから属性データまたはテーブルセルの値が抽出され、行操作と行選択のオブジェクト識別子が取得されます。データムオブジェクトは Java ビルダークラスの buildComponent() メソッド、あるいは getModel() または getIEModel() JSP タグによって提供されます。データムオブジェクトは、通常は永続可能オブジェクトであり、作成および編集ウィザードでは、永続可能オブジェクトを表す TypeInstances です。ただし、その他のタイプの Java オブジェクト (HashMap など) を使用できます。
データムオブジェクトからの属性値の取得
JCA では、UI に表示される属性値を抽出するときにデータユーティリティによってデータムオブジェクトがどのように処理されるかを設定できます。追加のコンフィギュレーションを行わない場合、JSP EL による Java Bean の処理と同じ方法で JCA によってデータムオブジェクトが処理されます。つまり、ユーザーはプロパティ名を参照でき、ユーザーのオブジェクトで対応するゲッターが検索されます。たとえば、"foo" という名前の列があるテーブルを記述した場合、データムオブジェクトで "getFoo" メソッドが検索されます。メソッドが見つからない場合、インフラストラクチャでエラーは発生しませんが、代わりに UI コンポーネントが選択した任意の方法で処理されるように、Null 値が返されます。この場合、デフォルトでは UI コンポーネントに空白がレンダリングされます。
データムオブジェクトの単純なプロパティに制限されることはありません。実際、JSP EL で実行できる操作はすべて、JCA でも実行できます。たとえば、ドットで区切った表記法を使用して、ネステッドされたプロパティを参照できます。また、JCA では Map オブジェクトが Beans として処理されるので、API によって Map が返されるか、ネステッドされた Map プロパティが存在する場合は、ゲッターメソッドがある場合と同様に Map を参照できます。Bean の表記法で指定できる内容の詳細については、Bean プロパティを処理するために JCA で使用されるコアパッケージである BeanUtils のドキュメンテーションを参照してください。
詳細な例:
bar[0]: bar プロパティの最初の値を取得します。これは、bar が List または Array にマッピングされる場合に機能します。
foo.bar: "foo" プロパティのネステッドされた "bar" プロパティを取得します。getFoo() が Map を返す場合、これは getFoo().get("bar") に対応します。
Bean スタイルのプロパティに加え、データムオブジェクトが永続可能または TypeInstance の場合、JCA はグローバル属性の値も検索できます。さらに、JCA は、データムオブジェクトのプロパティでない属性 ID の値を作成可能な多数のデータユーティリティを備えています。この一部は、データムオブジェクト内に存在しない必要な情報を見つけるため、追加のデータ取得を行います。
データムオブジェクトからの行識別子の取得
追加のコンフィギュレーションを行わない場合、JCA テーブルとツリーフレームワークで、処理中の各行オブジェクトは Windchill の永続可能オブジェクトであり、行を選択したり、行レベルの操作メニューを表示する必要がある場合、そのオブジェクト識別子によってオブジェクトが一意に識別可能であると見なされます。
パネル、テーブル、またはツリーに正確なターゲットオブジェクトが指定されています。