第5章
この章では、exteNd Directorの条件ウィザードとアクションウィザードを使用して、カスタム条件とカスタムアクションを作成する方法について説明します。この章には、次のトピックが含まれています。
exteNd Directorのインストールには、ルールエディタからアクセス可能な一連の条件とアクションが含まれます。また、独自の条件とアクションを作成することができ、同じ方法でこれらにアクセスできます。
exteNd Directorには、Javaソースファイルテンプレートを作成するために条件ウィザードとアクションウィザードが提供されています。
オプション |
操作内容 |
---|---|
クラス名 |
クラスの名前を入力します。 |
パッケージ |
(オプション)パッケージ名を入力します。 デフォルトでは、exteNd Directorは、クラスをResource Set/resource.spf/srcディレクトリのプロジェクトソースレイアウトに追加します。パッケージを指定すると、/srcに追加されます。 |
リソースセット |
この条件またはアクションで使用するリソースセットを入力します。 リソースセットは、プロジェクトの要素に対するソースおよびアーカイブの場所を決定します。詳細については、『exteNd Directorアプリケーションの開発』のリソースセットの使用に関する章を参照してください。 |
ログコードを含める |
エラートレースおよびデバッグメッセージのためにログコードをコードテンプレートに含める場合にオンにします。 |
入力した情報に基づいて、exteNd Directorにより、カスタム条件またはカスタムアクションのいずれかを作成するためのJavaテンプレートが作成されます。
この節では、条件JavaテンプレートとアクションJavaテンプレートで定義されているメソッドについて説明します。
メソッドの概要については、テンプレートメソッドについてを参照してください。
条件の定義メソッドは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>";
}
}
アクションの定義メソッドは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>";
}
}
条件にはdoCondition()メソッドを実装する必要があり、アクションにはdoAction()メソッドを実装する必要があります。その他のメソッドは、Java条件とJavaアクションの両方のテンプレートで同じです。
テンプレートメソッド |
用途 |
機能 |
---|---|---|
getLog() |
オプション |
デバッグ用のトレースおよびエラーメッセージを生成します。このメソッドは、ウィザードで[ログコードを含める]をオンにした場合に表示されます。 |
getParameterPanel() |
オプション |
条件またはアクション用のカスタムプロパティパネルを作成できます。特定のデータタイプに対しては、Ruleサブシステムによってデフォルトのコントロールが提供されます。
|
doCondition() |
条件ウィザード専用 必須 |
EbiConditionインタフェースの要件を満たします。このメソッドには、プロパティ値を比較または評価してブール値を返すコードを記述します。 EbiContextオブジェクトは、現在のセッション、ユーザ、およびポートレットにアクセスできるようにするためにdoCondition()に渡されます。
|
doAction() |
アクションウィザード専用 必須 |
インタフェースの要件を満たします。このメソッドには、関連付けられた条件がtrueまたはfalseのどちらに評価されるかに基づいてアクションを実行するコードを記述します。一般的に、このメソッドはビジネスルールの結果を返します。 返される値は、単なるブール値、またはデータベースからアクセスされた情報の場合があります。ポートレットが生成されたコンテンツに含めることのできる書式設定されたコンテンツを返すルールを設計することができます。またはルールのアクション値に基づいてポートレットの処理を変更できます。 EbiContextオブジェクトは、現在のセッション、ユーザ、およびポートレットにアクセスできるようにするためにdoAction()に渡されます。
|
toString()メソッド |
必須 |
条件および現在の設定を句として記述する文字列を返します。一般的に、句はプロパティ値を含めるためプロパティのgetメソッドをコールします。この句は、ルールエディタによってルール定義に表示されます。
|
一般的に、条件とアクションは、ルールエディタで設定できるプロパティを含むJavaBeanとして実装されます。次に、プロパティを作成するために使用できるコード要素を示します。
条件またはアクションのソースファイルを完成したら、コンパイルする必要があります。コンパイル後、exteNd Directorは結果をリソースセットに配置します。これにより、ルールエディタは、条件またはアクションのドロップダウンメニューから選択する際に、ランタイムバージョンを検索および表示することができます。
右クリックして、ポップアップメニューから[コンパイル]を選択します。
exteNd Directorによってソースがコンパイルされます。コンパイルエラーがなければ、exteNd Directorは結果をプロジェクトアーカイブのリソースセットに保存します。
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 ...