第5章

条件ウィザードとアクションウィザード

この章では、exteNd Directorの条件ウィザードとアクションウィザードを使用して、カスタム条件とカスタムアクションを作成する方法について説明します。この章には、次のトピックが含まれています。

For more information    基礎的な情報については、を参照してください。

 
Top of page

条件ウィザードまたはアクションウィザードの使用

exteNd Directorのインストールには、ルールエディタからアクセス可能な一連の条件とアクションが含まれます。また、独自の条件とアクションを作成することができ、同じ方法でこれらにアクセスできます。

exteNd Directorには、Javaソースファイルテンプレートを作成するために条件ウィザードとアクションウィザードが提供されています。

Procedure 条件ウィザードまたはアクションウィザードを使用する

  1. exteNd Directorメニューから、[ファイル]>[新規]の順に選択します。

  2. [新規ファイル]ダイアログボックスで、[Rules Engine]タブを選択します。

  3. [条件]または[アクション]アイコンを選択します。

    wbREcaWizard1

    該当するウィザードパネルが表示されます。

    wbREcaWizard2

  4. ウィザードパネルで情報を入力します。

    オプション

    操作内容

    クラス名

    クラスの名前を入力します。

    パッケージ

    (オプション)パッケージ名を入力します。

    デフォルトでは、exteNd Directorは、クラスをResource Set/resource.spf/srcディレクトリのプロジェクトソースレイアウトに追加します。パッケージを指定すると、/srcに追加されます。

    リソースセット

    この条件またはアクションで使用するリソースセットを入力します。

    リソースセットは、プロジェクトの要素に対するソースおよびアーカイブの場所を決定します。詳細については、『exteNd Directorアプリケーションの開発』のリソースセットの使用に関する章を参照してください。

    ログコードを含める

    エラートレースおよびデバッグメッセージのためにログコードをコードテンプレートに含める場合にオンにします。

  5. [完了]をクリックします。

    入力した情報に基づいて、exteNd Directorにより、カスタム条件またはカスタムアクションのいずれかを作成するためのJavaテンプレートが作成されます。

 
Top of page

カスタム条件とカスタムアクションを定義するためのJavaテンプレートの使用

この節では、条件JavaテンプレートとアクションJavaテンプレートで定義されているメソッドについて説明します。

For more information    メソッドの概要については、テンプレートメソッドについてを参照してください。

 
Top of section

条件テンプレート

条件の定義メソッドはEbiCondition.doCondition()で、ここに条件の論理を配置します。

次に、パッケージmyconditionsの中にあるmyConditionと呼ばれる条件用に生成されたテンプレートを示します。

  package myconditions;
  
  /**
      myCondition
  */
  public class myCondition implements com.sssw.re.api.EbiCondition
  {
   // An Instance of a log for error/trace reporting
    private com.sssw.fw.api.EbiLog log =
    com.sssw.fw.log.EboLogFactory.getLog( com.sssw.fw.log.EboLogFactory.RE );
      /**
       *  return a component (JPanel) that represents the editor of the
           condition,
       *  OR return null if you would like an editor generated automatically.
       */
     public java.awt.Component getParameterPanel () {
          return null;
      }
  
     public boolean doCondition( com.sssw.re.api.EbiContext context ) throws
        com.sssw.re.exception.EboConditionException {
          // Only log items if the log level indicates we should
          if ( log.isTrace() ) {
              log.trace( "myCondition in doCondition method" );
          }
          // Place your condition code here...
          return false;
      }
  
     public String toString() {
          return "<i>myCondition</i>";
      }
  }

 
Top of section

アクションテンプレート

アクションの定義メソッドはEbiAction.doAction()で、ここにアクションの論理を配置します。

次に、パッケージmyactionsの中にあるmyActionと呼ばれる条件用に生成されたテンプレートを示します。

  package myactions;
  
  /**
      myAction
  */
  public class myAction implements com.sssw.re.api.EbiAction
  {
    // An Instance of a log for error/trace reporting
    private com.sssw.fw.api.EbiLog log =
   com.sssw.fw.log.EboLogFactory.getLog( com.sssw.fw.log.EboLogFactory.RE );
   /**
    *  return a component (JPanel) that represents the editor of the action,
    *  OR return null if you would like an editor generated automatically.
    */
    public java.awt.Component getParameterPanel () {
       return null;
      }
  
    public void doAction( com.sssw.re.api.EbiContext context ) throws
      com.sssw.re.exception.EboActionException {
        // Only log items if the log level indicates we should
        if ( log.isTrace() ) {
           log.trace( "myAction in doAction method" );
          }
          // Place your action code here...
          context.setResponsePhrase( "myAction" );
      }
  
      public String toString() {
          return "<i>myAction</i>";
      }
  }

 
Top of section

テンプレートメソッドについて

条件にはdoCondition()メソッドを実装する必要があり、アクションにはdoAction()メソッドを実装する必要があります。その他のメソッドは、Java条件とJavaアクションの両方のテンプレートで同じです。

テンプレートメソッド

用途

機能

getLog()

オプション

デバッグ用のトレースおよびエラーメッセージを生成します。このメソッドは、ウィザードで[ログコードを含める]をオンにした場合に表示されます。

getParameterPanel()

オプション

条件またはアクション用のカスタムプロパティパネルを作成できます。特定のデータタイプに対しては、Ruleサブシステムによってデフォルトのコントロールが提供されます。

For more information    詳細については、条件とアクションプロパティの使用を参照してください。

doCondition()

条件ウィザード専用

必須

EbiConditionインタフェースの要件を満たします。このメソッドには、プロパティ値を比較または評価してブール値を返すコードを記述します。

EbiContextオブジェクトは、現在のセッション、ユーザ、およびポートレットにアクセスできるようにするためにdoCondition()に渡されます。

For more information    詳細については、条件のロジックの定義を参照してください。

doAction()

アクションウィザード専用

必須

インタフェースの要件を満たします。このメソッドには、関連付けられた条件がtrueまたはfalseのどちらに評価されるかに基づいてアクションを実行するコードを記述します。一般的に、このメソッドはビジネスルールの結果を返します。

返される値は、単なるブール値、またはデータベースからアクセスされた情報の場合があります。ポートレットが生成されたコンテンツに含めることのできる書式設定されたコンテンツを返すルールを設計することができます。またはルールのアクション値に基づいてポートレットの処理を変更できます。

EbiContextオブジェクトは、現在のセッション、ユーザ、およびポートレットにアクセスできるようにするためにdoAction()に渡されます。

For more information    詳細については、アクションのロジックの定義を参照してください。

toString()メソッド

必須

条件および現在の設定を句として記述する文字列を返します。一般的に、句はプロパティ値を含めるためプロパティのgetメソッドをコールします。この句は、ルールエディタによってルール定義に表示されます。

For more information    詳細については、条件またはアクションルール記述子の定義を参照してください。

 
Top of page

条件とアクションプロパティの使用

一般的に、条件とアクションは、ルールエディタで設定できるプロパティを含むJavaBeanとして実装されます。次に、プロパティを作成するために使用できるコード要素を示します。

プロパティ要素タイプ

用途

参照先

JavaBean

プロパティを定義することによって、条件とアクションをルールエディタでカスタマイズできるようにし、さまざまなルールで使用できるようにします。

JavaBeanの定義

汎用プロパティ

Ruleサブシステムでは、JavaBean実装で使用できるほとんどのデータタイプに対してデフォルトコントロールが提供されています。

汎用プロパティパネルの使用

カスタムプロパティパネル

汎用プロパティを使用する代わりに独自のプロパティパネルを作成する場合、getParameterPanel()メソッドを実装できます。

カスタムプロパティパネルの作成

ランタイムプロパティ

Ruleサブシステムは、条件とアクションのプロパティがランタイムホワイトボード値からダイナミックに設定されるように、文字列テンプレートデータタイプを備えています。

ランタイムプロパティの定義

BeanInfoクラス

書式設定されたプロパティの記述を提供し、ローカリゼーションのためのJavaリソースバンドルを実装するためBeanInfoクラスを含めることができます。

BeanInfoクラスの作成

リソースバンドル

Javaリソースバンドルは、プロパティパネルのローカライズされた記述を提供します。

リソースバンドルの使用

 
Top of page

カスタム条件とカスタムアクションの展開

条件またはアクションのソースファイルを完成したら、コンパイルする必要があります。コンパイル後、exteNd Directorは結果をリソースセットに配置します。これにより、ルールエディタは、条件またはアクションのドロップダウンメニューから選択する際に、ランタイムバージョンを検索および表示することができます。

 
Top of section

条件またはアクションのソースコードのコンパイル

Procedure 条件ソースまたはアクションソースをコンパイルする

  1. exteNd Directorソースビューでファイルをハイライトします。

  2. 右クリックして、ポップアップメニューから[コンパイル]を選択します。

    exteNd Directorによってソースがコンパイルされます。コンパイルエラーがなければ、exteNd Directorは結果をプロジェクトアーカイブのリソースセットに保存します。

    これでルールエディタで条件またはアクションを選択できます。

 
Top of section

サポートファイルの展開

BeanInfoクラスなどのサポートファイルを使用する場合は、ルールエディタで条件またはアクションにアクセスする前に、適切な場所にアーカイブしておく必要があります。この場所は、ResourceSet.warプロジェクトweb.xmlファイルのlibPathで指定する必要があります。



Copyright © 2004 Novell, Inc. All rights reserved. Copyright © 1997, 1998, 1999, 2000, 2001, 2002, 2003 SilverStream Software, LLC. All rights reserved.  more ...