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

@ -9,6 +9,8 @@
<jsp:directive.page import="com.arsdigita.london.navigation.Navigation"/> <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.CMSDataCollectionDefinition"/>
<jsp:directive.page import="com.arsdigita.london.navigation.cms.CMSDataCollectionRenderer"/> <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> <jsp:scriptlet>
long age = Navigation.getConfig().getIndexPageCacheLifetime(); long age = Navigation.getConfig().getIndexPageCacheLifetime();
@ -20,8 +22,7 @@
</jsp:scriptlet> </jsp:scriptlet>
<define:page name="defaultItemPage" application="navigation" <define:page name="defaultItemPage" application="navigation"
title="Navigation" cache="true"> title="Navigation" cache="false">
<define:component name="greetingItem" <define:component name="greetingItem"
classname="com.arsdigita.london.navigation.ui.GreetingItem"/> classname="com.arsdigita.london.navigation.ui.GreetingItem"/>
<define:component name="categoryPath" <define:component name="categoryPath"
@ -29,18 +30,31 @@
<define:component name="categoryMenu" <define:component name="categoryMenu"
classname="com.arsdigita.london.navigation.ui.category.Menu"/> classname="com.arsdigita.london.navigation.ui.category.Menu"/>
<define:component name="itemList" <define:component name="itemList"
classname="com.arsdigita.london.navigation.ui.object.SimpleObjectList"/> classname="com.arsdigita.london.navigation.ui.object.CustomizableObjectList"/>
<jsp:scriptlet> <jsp:scriptlet>
((com.arsdigita.london.navigation.ui.object.SimpleObjectList) itemList).setDefinition(new CMSDataCollectionDefinition()); CustomizableObjectList objList = (CustomizableObjectList) itemList;
((com.arsdigita.london.navigation.ui.object.SimpleObjectList) itemList).setRenderer(new CMSDataCollectionRenderer()); objList.setDefinition(new CMSDataCollectionDefinition());
((com.arsdigita.london.navigation.ui.object.SimpleObjectList) itemList).getDefinition().setObjectType("com.arsdigita.cms.ContentPage"); objList.setRenderer(new CMSDataCollectionRenderer());
objList.setCustomName("SciProjectList");
objList.getDefinition().setObjectType("com.arsdigita.cms.contenttypes.SciProject");
objList.getDefinition().setDescendCategories(false);
objList.addTextFilter("title", "title");
((com.arsdigita.london.navigation.ui.object.SimpleObjectList) itemList).getDefinition().setDescendCategories(false); java.util.GregorianCalendar now = new java.util.GregorianCalendar();
((com.arsdigita.london.navigation.ui.object.SimpleObjectList) itemList).getDefinition().addOrder("title"); 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);
((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> </jsp:scriptlet>
<define:component name="assignedTerms" <define:component name="assignedTerms"
@ -49,5 +63,4 @@
</define:page> </define:page>
<show:all/> <show:all/>
</jsp:root> </jsp:root>

View File

@ -9,7 +9,7 @@
<jsp:directive.page import="com.arsdigita.london.navigation.Navigation"/> <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.CMSDataCollectionDefinition"/>
<jsp:directive.page import="com.arsdigita.london.navigation.cms.CMSDataCollectionRenderer"/> <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> <jsp:scriptlet>
long age = Navigation.getConfig().getIndexPageCacheLifetime(); long age = Navigation.getConfig().getIndexPageCacheLifetime();
@ -22,7 +22,6 @@
<define:page name="defaultItemPage" application="navigation" <define:page name="defaultItemPage" application="navigation"
title="Navigation" cache="false"> title="Navigation" cache="false">
<define:component name="greetingItem" <define:component name="greetingItem"
classname="com.arsdigita.london.navigation.ui.GreetingItem"/> classname="com.arsdigita.london.navigation.ui.GreetingItem"/>
<define:component name="categoryPath" <define:component name="categoryPath"
@ -30,45 +29,27 @@
<define:component name="categoryMenu" <define:component name="categoryMenu"
classname="com.arsdigita.london.navigation.ui.category.Menu"/> classname="com.arsdigita.london.navigation.ui.category.Menu"/>
<define:component name="itemList" <define:component name="itemList"
classname="com.arsdigita.london.navigation.ui.object.ComplexObjectList"/> classname="com.arsdigita.london.navigation.ui.object.CustomizableObjectList"/>
<jsp:scriptlet> <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")));
org.apache.log4j.Logger logger = org.apache.log4j.Logger.getLogger("SciPublicationListJsp"); objList.getRenderer().setPageSize(20);
objList.getRenderer().setSpecializeObjects(true);
application.log("JSP::Configuring object list...");
logger.warn("JSP::Configuring object list...");
((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");
((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> </jsp:scriptlet>
<define:component name="assignedTerms" <define:component name="assignedTerms"
@ -77,5 +58,4 @@
</define:page> </define:page>
<show:all/> <show:all/>
</jsp:root> </jsp:root>