XPageアプリケーションでそれらを使用している限り、これは可能です。ビューに直接アクセスする代わりにどのようなメリットがあるかはわかりませんが、コードは次のとおりです。
1.表形式のデータモデルにアクセスするには、ヘルパークラスが必要です
/**
* Returns the tabular data model from a datasource
*
* @author Christian Guedemann, Sven Hasselbach
* @param dsCurrent
* datasource to get the tdm from
* @param context
* current FacesContext instance
* @return
* TabularDataModel
*/
public static TabularDataModel getTDM(DataSource dsCurrent, FacesContext context) {
try {
if (dsCurrent instanceof ModelDataSource) {
ModelDataSource mds = (ModelDataSource) dsCurrent;
AbstractDataSource ads = (AbstractDataSource) mds;
ads.load(context);
DataModel tdm = mds.getDataModel();
if (tdm instanceof TabularDataModel) {
TabularDataModel tds = (TabularDataModel) tdm;
return tds;
}
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
2.データソースを作成してコンポーネントに追加する必要があります。ビュールートを参照してください。
DominoViewData dvd = new DominoViewData();
dvd.setViewName( "YOUR VIEW NAME" );
dvd.setComponent( FacesContext.getCurrentInstance().getViewRoot() );
3.これで、フィルターオプションまたは追加のオプションをデータソースに追加できます。
dvd.setSortOrder( "ascending" );
dvd.setSortColumn( "NAME OF COLUMN" );
4.次に、データソースのTDMにアクセスし、最初のエントリを取得すると、親であるViewNavigatorへのハンドルがあります。
TabularDataModel tdm = getTDM( dvd, FacesContext.getCurrentInstance() );
tdm.setDataControl( new UIDataEx() );
Entry noiEntry = (Entry) tdm.getRowData();
ViewNavigator nav = null;
try {
nav = (ViewNavigator) noiEntry.getParent();
System.out.println( "NAV COUNT: " + nav.getCount() );
nav.recylce();
} catch (NotesException e) {
e.printStackTrace();
}
(OK、ViewEntryCollectionの代わりにViewNavigatorがあります)