//<start id="ne-setup"/>
protected void doGet(HttpServletRequest request,
HttpServletResponse response, Session session)
throws ServletException, IOException, TheBlendException {
// --- get parameters ---
String id = getStringParameter(request, "id");
if (id == null) {
id = session.getRepositoryInfo().getRootFolderId();
}
int skip = getIntParameter(request, "skip", 0);
if (skip < 0) {
skip = 0;
}
request.setAttribute("skip", skip);
// --- fetch folder object ---
OperationContext folderOpCtx
= session.createOperationContext();
folderOpCtx.setFilterString("cmis:name,cmis:path");
folderOpCtx.setIncludeAcls(false);
folderOpCtx.setIncludeAllowableActions(false);
folderOpCtx.setIncludePolicies(false);
folderOpCtx.setIncludeRelationships(IncludeRelationships.NONE);
folderOpCtx.setRenditionFilterString("cmis:none");
folderOpCtx.setIncludePathSegments(false);
folderOpCtx.setOrderBy(null);
folderOpCtx.setCacheEnabled(true);
CmisObject object = null;
try {
object = session.getObject(id, folderOpCtx);
} catch (CmisBaseException cbe) {
throw new TheBlendException("Could not retrieve folder!", cbe);
}
Folder folder = null;
if (object instanceof Folder) {
folder = (Folder) object;
} else {
throw new TheBlendException("Object is not a folder!");
}
request.setAttribute("folder", folder);
// --- fetch children ---
OperationContext childrenOpCtx = session.createOperationContext();
childrenOpCtx.setFilterString("cmis:objectId,cmis:baseTypeId,"
+ "cmis:name,cmis:contentStreamLength,"
+ "cmis:contentStreamMimeType");
childrenOpCtx.setIncludeAcls(false);
childrenOpCtx.setIncludeAllowableActions(true);
childrenOpCtx.setIncludePolicies(false);
childrenOpCtx.setIncludeRelationships(IncludeRelationships.NONE);
childrenOpCtx.setRenditionFilterString("cmis:none");
childrenOpCtx.setIncludePathSegments(true);
childrenOpCtx.setOrderBy("cmis:name");
childrenOpCtx.setCacheEnabled(false);
childrenOpCtx.setMaxItemsPerPage(10);
ItemIterable<CmisObject> children =
folder.getChildren(childrenOpCtx);
ItemIterable<CmisObject> page = children.skipTo(skip).getPage(10);
List<CmisObject> childrenPage = new ArrayList<CmisObject>();
try {
for (CmisObject child : page) {
childrenPage.add(child);
}
} catch (CmisBaseException cbe) {
throw new TheBlendException("Could not fetch children!");
}
request.setAttribute("page", childrenPage);
request.setAttribute("total", page.getTotalNumItems());
// --- determine paging links ---
request.setAttribute("isFirstPage", skip == 0);
request.setAttribute("isLastPage", !page.getHasMoreItems());
// --- fetch parent ---
Folder parent = null;
if (!folder.isRootFolder()) {
try {
parent = folder.getParents(childrenOpCtx).get(0);
} catch (CmisBaseException cbe) {
throw new TheBlendException("Could not fetch parent folder!");
}
}
request.setAttribute("parent", parent);
// --- show browse page ---
dispatch("browse.jsp", folder.getName() + ". The Blend.",
request, response);
}
//<end id="ne-setup"/>