long age = Navigation.getConfig().getIndexPageCacheLifetime();
if (age == 0) {
DispatcherHelper.cacheDisable(response);
} else {
DispatcherHelper.cacheForWorld(response, (int)age);
}
CustomizableObjectList objList = (CustomizableObjectList) itemList;
objList.setDefinition(new CMSDataCollectionDefinition());
objList.setRenderer(new CMSDataCollectionRenderer());
objList.setCustomName("SciProjectList");
objList.getDefinition().setObjectType("com.arsdigita.cms.contenttypes.SciProject");
objList.getDefinition().setDescendCategories(false);
objList.addTextFilter("title", "title");
java.util.GregorianCalendar now = new java.util.GregorianCalendar();
String today = String.format("%d-%02d-%02d", now.get(java.util.GregorianCalendar.YEAR),
now.get(java.util.GregorianCalendar.MONTH) + 1,
now.get(java.util.GregorianCalendar.DATE));
objList.addCompareFilter("projectend", "projectstatus", true, true, false)
.addOption("ongoing", CompareFilter.Operators.GTEQ, today, true)
.addOption("finished", CompareFilter.Operators.LT, today, false);
objList.addSortField("title", "title asc");
objList.getDefinition().addOrder(objList.getOrder(request.getParameter("sort")));
objList.getRenderer().setPageSize(20);
objList.getRenderer().setSpecializeObjects(true);
objList.getRenderer().setSpecializeObjectsContext("sciProjectList");