プロセス・トレイン・モデルの作成

MenuModelクラスをProcessMenuModelおよびProcessUtilsクラスと併用するプロセス・トレイン・モデルを作成し、プロセス・トレインを動的に生成できます。

プロセス・トレイン・モデルを作成する手順は、次のとおりです。

  1. プロセス・トレインの各ノードのプロパティを取得および設定できるクラスを作成します。たとえば、トレインの各ページには、labelviewIdおよびoutcomeが必要です。
  2. インスタンス化の際に設定する必要があるプロパティの値を使用して、各ページに対するマネージドBeanをトレイン内に作成します。各Beanは、ステップ1で作成したクラスのインスタンスであることと、その有効範囲がnoneであることが必要です。
    たとえば、次のBeanは従業員の情報ページ用に構成されています。
    <managed-bean>
      <managed-bean-name>info</managed-bean-name>
      <managed-bean-class>mypackage.TrainItem</managed-bean-class> //this is the class created in step 1
      <managed-bean-scope>none</managed-bean-scope>
      <managed-property>
        <property-name>label</property-name>
        <value>Employee Information</value>
      </managed-property>
      <managed-property>
        <property-name>viewId</property-name>
        <value>pages/info.jsp</value>
      </managed-property>
      <managed-property>
        <property-name>outcome</property-name>
        <value>go.info</value>
       </managed-property>
    </managed-bean>        
  3. リストのインスタンスであるマネージドBeanを構成します。このリストのエントリは、ステップ2で構成したマネージドBeanで、トレインで表示される順にリストしてください。有効範囲は、次の例に示すようにapplicationにしてください。
    <managed-bean>
      <managed-bean-name>processList</managed-bean-name>
      <managed-bean-class>java.util.ArrayList</managed-bean-class>
      <managed-bean-scope>application</managed-bean-scope>
      <list-entries>
    	  <value-class>mypackage.TrainItem</value-class>
    	  <value>#{info}</value>
    	  <value>#{w2}</value>
    	  <value>#{policies}</value>
    	</list-entries>
    	</managed-property>
    </managed-bean>        
  4. ProcessMenuModelインスタンスを構成するクラスを作成します。このインスタンスはgetModel()メソッドをコールすることで取得できます。ProcessMenuModelでは、デフォルトでPlus Oneのナビゲーション方法が使用されます。Max Visited方法を使用する場合は、maxPathKeyをコンストラクタ・メソッドに渡します(ProcessMenuModelの詳細は、ADF FacesのJavadocを参照)。異なるナビゲーション方法の詳細は、「プロセス・トレインについて」を参照してください。
  5. 該当するクラスを参照するためのマネージドBeanを構成します。これが、すべてのプロセス・トレイン・コンポーネントのバインド先のBeanとなります。このBeanは、インスタンス化して、ステップ3で構成したBeanに設定されているinstanceプロパティの値と、viewIdPropertyの値(ステップ1で作成したBeanのviewIdプロパティと同じ値)を指定してください。
    次に例を示します。
    <managed-bean>
      <managed-bean-name>processModel</managed-bean-name>
    	<managed-bean-class>mypackage.ProcessModelAdapter</managed-bean-class>
    	<managed-bean-scope>session</managed-bean-scope>
    	<managed-property>
    	  <property-name>viewIdProperty</property-name>
    	  <value>viewId</value>
    	</managed-property>
    	<managed-property>
    	  <property-name>instance</property-name>
    	  <value>#{processList}</value>
    	</managed-property>
    </managed-bean>        

プロセス・トレインの例は、ADF FacesのSurveyデモを参照してください。

これで、個々のコンポーネントをモデルに値バインディングできます。


マネージドBeanを使用したデータへのJSFコンポーネントのバインディング
値バインディングおよびADF Faces暗黙オブジェクトについて
ADF Facesコンポーネントの使用