Пока ваш используют их в приложении XPage, это возможно. Я не уверен, какие преимущества вы будете иметь вместо доступа вида непосредственно, но вот код:
1.You нужен вспомогательный класс для доступа к модели данных табличного
/**
* 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.You есть создать свой источник данных и добавить их в компонент, fe корневого вид
DominoViewData dvd = new DominoViewData();
dvd.setViewName("YOUR VIEW NAME");
dvd.setComponent(FacesContext.getCurrentInstance().getViewRoot());
3.Now вы можете добавить параметры фильтра или какие-либо дополнительные опции для вашего источника данных, F.E. это:
dvd.setSortOrder("ascending");
dvd.setSortColumn("NAME OF COLUMN");
доступа 4.После МВР из источника данных, получить первую запись, и у вас есть дескриптор родителя, 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();
}
(ОК, теперь у вас есть ViewNavigator вместо of ViewEntryCollection)
Неужели вам не нужно беспокоиться о том, что представление становится недействительным? – jjtbsomhorst
Sven, Спасибо за ответ и код. Это было ваше сообщение в блоге о объектах View Data, которое заставило меня задать вопрос! :-) –