第8章
この章では、Content Management (CM)サブシステムの操作およびアクティビティに関連するイベントの処理方法について説明します。この章は、次の節から構成されています。
この章では、exteNd Directorイベントモデルおよびイベント処理について熟知していることを前提としています。詳細については、『exteNd Directorアプリケーションの開発』のイベントの操作に関する章を参照してください。
CMイベントはexteNd Directorイベントモデルフレームワークの拡張子で、「状態変更イベント」、「イベントプロデューサ」、および「イベントリスナ」(拒否権付きリスナを含む)で構成されます。CMイベントのAPIは、次のパッケージに定義されています。
APIは、ドキュメント、フォルダ、およびその他の要素をはじめ、データのインポートやエクスポートなどの一般的なアクティビティについての、CM操作に関連する一連の状態変更イベントを定義します。イベントIDは、個々のイベントクラスのほかにcom.sssw.cm.event.api.EbiConstantsインタフェースにも表示されます。さらに、状態変更定数がcom.sssw.fw.event.api.EboStateChangeEventに定義されています。
CMサブシステムに定義されているイベントのリストを次に示します。
この節には、次の節が含まれています。
CMサブシステムのイベントサポートは、CMカテゴリ、フォルダ、およびドキュメントに基づきリスナの登録に簡易メソッドを提供します。メソッドは、EbiContentMgmtDelegateオブジェクトで利用できます。
たとえば、フォルダ操作に関連するすべてのイベントを購読する方法を次に示します。
EbiContentMgmtDelegate cmgr =
com.sssw.cm.client.EboFactory.getDefaultContentMgmtDelegate();
cmgr. addFolderStateChangeListener (myStateChangeListener);
EbiContentMgmtDelegateで利用できるaddStateChangeListener()のフレームワークバージョンを使用して指定されたタイプのイベントを登録できます。
public boolean addStateChangeListener(
BitSet events, EbiStateChangeListener listener)
ここで、eventsはイベントIDのビットセットです。CM APIは、ビットセットを指定するヘルパメソッドを提供します(次のイベントヘルパクラスの使用で説明)。
特定のディレクトリエントリまたは、その下にあるディレクトリかエントリのいずれかで発生するイベントをフィルタすることもできます(再帰的に)。特定のディレクトリエントリの範囲で発生するイベントを登録するには、次のメソッドを使用してリスナを追加します。
public boolean addStateChangeListener(
BitSet events, EbiDirectoryEntry entry, int depth,
EbiStateChangeListener listener)
|
メソッドパラメータ |
説明 |
|---|---|
|
events |
イベントIDのビットセット |
|
entry |
ディレクトリエントリ(フォルダ、カテゴリ、またはドキュメント) |
|
depth |
イベント追跡の深さ その他の深さでは、エントリ階層のその深さでエントリおよびその子孫に発生した状態変更を追跡するように指定します。 |
|
listener |
新規リスナオブジェクト |
com.sssw.cm.event.util.EboEventHelperクラスは、イベントセットを管理するユーティリティを提供します。このクラスには、次のメソッドが含まれています。
すべての要素に対して1つのイベントをリッスンする この例では、すべての要素で「作成」状態変更イベントにリスナを追加します。
EbiContentMgmtDelegate cmgr =
com.sssw.cm.client.EboFactory.getDefaultContentMgmtDelegate();
BitSet events = EboEventHelper.getEventIDSet(
com.sssw.fw.event.api.EboStateChangeEvent.SC_CREATE);
cmgr.addStateChangeListener(events, MyListener);
2つの要素タイプについてすべてのイベントをリッスンする この例では、ドキュメントタイプおよびフィールドについてのみすべての変更にリスナを追加します。adjustEventIDSet()の使用方法に注目してください。
EbiContentMgmtDelegate cmgr =
com.sssw.cm.client.EboFactory.getDefaultContentMgmtDelegate();
BitSet events =
EboEventHelper.getEventIDSet(EbiDocType.EL_DOC_TYPE);
EboEventHelper.adjustEventIDSet(events,
EbiDocField.EL_DOC_FIELD, true);
cmgr.addStateChangeListener(events, Mylistener);
すべての要素に対して複数のイベントをリッスンする この例では、新しいビットセットをインスタンス化することでイベントタイプを追加します。この方法は、複数のイベントのセットを指定するのに使用します。
EbiContentMgmtDelegate cmgr =
com.sssw.cm.client.EboFactory.getDefaultContentMgmtDelegate();
BitSet events = new BitSet();
events.set(com.sssw.cm.event.api.EbiConstants.
EVENT_ID_ACCESS_CHECKED);
events.set(com.sssw.cm.event.api.EbiConstants.
EVENT_ID_ADMIN_ACCESS_CHECKED);
events.set(com.sssw.cm.event.api.EbiConstants.
EVENT_ID_SECUIRTY_RETRIEVED);
cmgr.addStateChangeListener(events, Mylistener);
指定した要素タイプ以外のすべてのイベントをリッスンする この例では、adjustEventIDSet()でブール引数を使用してイベントセットをオフにする方法を示します。
EbiContentMgmtDelegate cmgr =
com.sssw.cm.client.EboFactory.getDefaultContentMgmtDelegate();
BitSet events = EboEventHelper.getFullEventIDSet();
EboEventHelper.adjustEventIDSet(events, EbiDocType.EL_DOC_TYPE, false);
cmgr.addStateChangeListener(events, Mylistener);
config.xml を開いてexteNd Directorプロジェクトをコンテンツ管理します。
com.sssw.cm.events.enable.Default
Copyright © 2004 Novell, Inc. All rights reserved. Copyright © 1997, 1998, 1999, 2000, 2001, 2002, 2003 SilverStream Software, LLC. All rights reserved. more ...