JSP-Templates für Publikationen und Projekte mit der CustomizableObjectList

git-svn-id: https://svn.libreccm.org/ccm/trunk@815 8810af33-2d31-482b-a856-94f89814c4df
master
jensp 2011-04-01 07:28:47 +00:00
parent 439e2d7630
commit 3f6e7f6f5e
2 changed files with 80 additions and 87 deletions

View File

@ -1,53 +1,66 @@
<jsp:root
xmlns:jsp="http://java.sun.com/JSP/Page"
xmlns:define="/WEB-INF/bebop-define.tld"
xmlns:show="/WEB-INF/bebop-show.tld"
version="1.2">
<jsp:directive.page import="com.arsdigita.dispatcher.DispatcherHelper"/>
<jsp:directive.page import="com.arsdigita.bebop.parameters.BigDecimalParameter"/>
<jsp:directive.page import="com.arsdigita.london.navigation.Navigation"/>
<jsp:directive.page import="com.arsdigita.london.navigation.cms.CMSDataCollectionDefinition"/>
<jsp:directive.page import="com.arsdigita.london.navigation.cms.CMSDataCollectionRenderer"/>
xmlns:jsp="http://java.sun.com/JSP/Page"
xmlns:define="/WEB-INF/bebop-define.tld"
xmlns:show="/WEB-INF/bebop-show.tld"
version="1.2">
<jsp:scriptlet>
<jsp:directive.page import="com.arsdigita.dispatcher.DispatcherHelper"/>
<jsp:directive.page import="com.arsdigita.bebop.parameters.BigDecimalParameter"/>
<jsp:directive.page import="com.arsdigita.london.navigation.Navigation"/>
<jsp:directive.page import="com.arsdigita.london.navigation.cms.CMSDataCollectionDefinition"/>
<jsp:directive.page import="com.arsdigita.london.navigation.cms.CMSDataCollectionRenderer"/>
<jsp:directive.page import="com.arsdigita.london.navigation.ui.object.CustomizableObjectList"/>
<jsp:directive.page import="com.arsdigita.london.navigation.ui.object.CompareFilter"/>
<jsp:scriptlet>
long age = Navigation.getConfig().getIndexPageCacheLifetime();
if (age == 0) {
DispatcherHelper.cacheDisable(response);
} else {
DispatcherHelper.cacheForWorld(response, (int)age);
}
</jsp:scriptlet>
<define:page name="defaultItemPage" application="navigation"
title="Navigation" cache="true">
<define:component name="greetingItem"
classname="com.arsdigita.london.navigation.ui.GreetingItem"/>
<define:component name="categoryPath"
classname="com.arsdigita.london.navigation.ui.category.Path"/>
<define:component name="categoryMenu"
classname="com.arsdigita.london.navigation.ui.category.Menu"/>
<define:component name="itemList"
classname="com.arsdigita.london.navigation.ui.object.SimpleObjectList"/>
<jsp:scriptlet>
((com.arsdigita.london.navigation.ui.object.SimpleObjectList) itemList).setDefinition(new CMSDataCollectionDefinition());
((com.arsdigita.london.navigation.ui.object.SimpleObjectList) itemList).setRenderer(new CMSDataCollectionRenderer());
((com.arsdigita.london.navigation.ui.object.SimpleObjectList) itemList).getDefinition().setObjectType("com.arsdigita.cms.ContentPage");
((com.arsdigita.london.navigation.ui.object.SimpleObjectList) itemList).getDefinition().setDescendCategories(false);
((com.arsdigita.london.navigation.ui.object.SimpleObjectList) itemList).getDefinition().addOrder("title");
((com.arsdigita.london.navigation.ui.object.SimpleObjectList) itemList).getRenderer().setPageSize(20);
((com.arsdigita.london.navigation.ui.object.SimpleObjectList) itemList).getRenderer().setSpecializeObjects(true);
((com.arsdigita.london.navigation.ui.object.SimpleObjectList) itemList).getRenderer().setSpecializeObjectsContext("sciProjectList");
</jsp:scriptlet>
<define:component name="assignedTerms"
classname="com.arsdigita.london.navigation.ui.CategoryIndexAssignedTerms"/>
<define:page name="defaultItemPage" application="navigation"
title="Navigation" cache="false">
<define:component name="greetingItem"
classname="com.arsdigita.london.navigation.ui.GreetingItem"/>
<define:component name="categoryPath"
classname="com.arsdigita.london.navigation.ui.category.Path"/>
<define:component name="categoryMenu"
classname="com.arsdigita.london.navigation.ui.category.Menu"/>
<define:component name="itemList"
classname="com.arsdigita.london.navigation.ui.object.CustomizableObjectList"/>
</define:page>
<show:all/>
<jsp:scriptlet>
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");
</jsp:root>
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)
.addOption("finished", CompareFilter.Operators.LT, today);
objList.addSortField("title", "title asc");
objList.getDefinition().addOrder(objList.getOrder(request.getParameter("sort")));
objList.getRenderer().setPageSize(20);
objList.getRenderer().setSpecializeObjects(true);
</jsp:scriptlet>
<define:component name="assignedTerms"
classname="com.arsdigita.london.navigation.ui.CategoryIndexAssignedTerms"/>
</define:page>
<show:all/>
</jsp:root>

View File

@ -3,13 +3,13 @@
xmlns:define="/WEB-INF/bebop-define.tld"
xmlns:show="/WEB-INF/bebop-show.tld"
version="1.2">
<jsp:directive.page import="com.arsdigita.dispatcher.DispatcherHelper"/>
<jsp:directive.page import="com.arsdigita.bebop.parameters.BigDecimalParameter"/>
<jsp:directive.page import="com.arsdigita.london.navigation.Navigation"/>
<jsp:directive.page import="com.arsdigita.london.navigation.cms.CMSDataCollectionDefinition"/>
<jsp:directive.page import="com.arsdigita.london.navigation.cms.CMSDataCollectionRenderer"/>
<jsp:directive.page import="org.apache.log4j.Logger"/>
<jsp:directive.page import="com.arsdigita.london.navigation.ui.object.CustomizableObjectList"/>
<jsp:scriptlet>
long age = Navigation.getConfig().getIndexPageCacheLifetime();
@ -22,7 +22,6 @@
<define:page name="defaultItemPage" application="navigation"
title="Navigation" cache="false">
<define:component name="greetingItem"
classname="com.arsdigita.london.navigation.ui.GreetingItem"/>
<define:component name="categoryPath"
@ -30,52 +29,33 @@
<define:component name="categoryMenu"
classname="com.arsdigita.london.navigation.ui.category.Menu"/>
<define:component name="itemList"
classname="com.arsdigita.london.navigation.ui.object.ComplexObjectList"/>
<jsp:scriptlet>
classname="com.arsdigita.london.navigation.ui.object.CustomizableObjectList"/>
org.apache.log4j.Logger logger = org.apache.log4j.Logger.getLogger("SciPublicationListJsp");
<jsp:scriptlet>
CustomizableObjectList objList = (CustomizableObjectList) itemList;
objList.setDefinition(new CMSDataCollectionDefinition());
objList.setRenderer(new CMSDataCollectionRenderer());
objList.setCustomName("SciPublicationsList");
objList.getDefinition().setObjectType("com.arsdigita.cms.contenttypes.Publication");
objList.getDefinition().setDescendCategories(false);
objList.addTextFilter("title", "title");
objList.addTextFilter("authors.surname", "author");
objList.addSelectFilter("yearOfPublication", "yearOfPublication", true, true, true, true);
objList.addSortField("title", "title asc");
objList.addSortField("yearAsc", "yearOfPublication asc");
objList.addSortField("yearDesc", "yearOfPublication desc");
objList.addSortField("authors", "authors.surname asc, authors.givenname asc");
objList.getDefinition().addOrder(objList.getOrder(request.getParameter("sort")));
application.log("JSP::Configuring object list...");
logger.warn("JSP::Configuring object list...");
objList.getRenderer().setPageSize(20);
objList.getRenderer().setSpecializeObjects(true);
((com.arsdigita.london.navigation.ui.object.ComplexObjectList) itemList).setDefinition(new CMSDataCollectionDefinition());
((com.arsdigita.london.navigation.ui.object.ComplexObjectList) itemList).setRenderer(new CMSDataCollectionRenderer());
((com.arsdigita.london.navigation.ui.object.ComplexObjectList) itemList).getDefinition().setObjectType("com.arsdigita.cms.contenttypes.Publication");
((com.arsdigita.london.navigation.ui.object.ComplexObjectList) itemList).setCustomName("SciPublicationsList");
</jsp:scriptlet>
((com.arsdigita.london.navigation.ui.object.ComplexObjectList) itemList).getDefinition().setDescendCategories(false);
logger.warn(String.format("JSP::orderBy = %s", request.getParameter("orderBy")));
if((request.getParameter("orderBy") == null)) {
logger.warn("JSP::Setting list order to 'title'...");
((com.arsdigita.london.navigation.ui.object.ComplexObjectList) itemList).getDefinition().addOrder("title");
} else {
if("title".equals(request.getParameter("orderBy"))) {
logger.warn("JSP::Setting list order to 'title'...");
((com.arsdigita.london.navigation.ui.object.ComplexObjectList) itemList).getDefinition().addOrder("title");
} else if("authors".equals(request.getParameter("orderBy"))) {
logger.warn("JSP::Setting list order to 'authors'...");
((com.arsdigita.london.navigation.ui.object.ComplexObjectList) itemList).getDefinition().addOrder("authors asc");
((com.arsdigita.london.navigation.ui.object.ComplexObjectList) itemList).getDefinition().addOrder("authors.givenname asc");
((com.arsdigita.london.navigation.ui.object.ComplexObjectList) itemList).getDefinition().addOrder("authors.link.editor asc");
} else if("year".equals(request.getParameter("orderBy"))) {
logger.warn("JSP::Setting list order to 'yearOfPublication'...");
((com.arsdigita.london.navigation.ui.object.ComplexObjectList) itemList).getDefinition().addOrder("yearOfPublication asc");
} else {
logger.warn("JSP::Unknown value for order, setting list order to 'title'...");
((com.arsdigita.london.navigation.ui.object.ComplexObjectList) itemList).getDefinition().addOrder("title");
}
}
((com.arsdigita.london.navigation.ui.object.ComplexObjectList) itemList).getRenderer().setPageSize(20);
((com.arsdigita.london.navigation.ui.object.ComplexObjectList) itemList).getRenderer().setSpecializeObjects(true);
</jsp:scriptlet>
<define:component name="assignedTerms"
classname="com.arsdigita.london.navigation.ui.CategoryIndexAssignedTerms"/>
</define:page>
<define:component name="assignedTerms"
classname="com.arsdigita.london.navigation.ui.CategoryIndexAssignedTerms"/>
</define:page>
<show:all/>
</jsp:root>
</jsp:root>