2013-03-22 2 views
0

필자는 Java 클래스에서 com.ibm.xsp.model.domino.DominoViewData()를 사용하여 도미노 뷰 데이터를 필터링하고 정렬하고 싶지만 어떻게해야하는지 잘 모르겠습니다.JAVA 클래스에서 xPages DominoViewData를 사용할 수 있습니까?

거기에는 많은 예제가 없으며 대부분 x 페이지 나 데이터 테이블에서 사용하고 있습니다. 자바 클래스에서

, 나는 싶습니다

  • 새로운 DominoViewData 개체를 만듭니다.
  • 보기 이름을 설정하십시오.
  • 정렬 할 열을 설정하십시오.
  • 선택적으로 필터를 설정하십시오.
  • 마지막으로 추가 처리를 위해 ViewEntryCollection을 검색하십시오.

그런 방식으로 DominoViewData 클래스를 사용할 수 있습니까?

도움을 주셔서 감사 드리며 모든 사례에 감사드립니다.

- 제프

만큼 당신이 XPage 응용 프로그램을 사용하는 것처럼

답변

1

이 가능합니다.

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. 이제 데이터 소스에 필터 옵션 또는 추가 옵션을 추가 할 수 있습니다. 이러한 :

dvd.setSortOrder("ascending"); 
dvd.setSortColumn("NAME OF COLUMN"); 

4.Then 액세스 데이터 소스의 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, 당신은 지금 대신 ViewNavigator이 ViewEntryCollection의

+0

뷰가 유효하지 않게되는 것에 대해 걱정할 필요가 없다는 이점이 있습니까? – jjtbsomhorst

+0

Sven, 답변과 코드를 보내 주셔서 감사합니다. 실제로 View Data 객체에 대한 블로그 게시물을 통해 질문을하게되었습니다. :-) –

관련 문제