From c8ef06aa6528fd8b6a6ecc798eaff3821d98a3b7 Mon Sep 17 00:00:00 2001 From: jensp Date: Wed, 9 Nov 2011 15:45:17 +0000 Subject: [PATCH] =?UTF-8?q?-=20Download-Links=20f=C3=BCr=20Publikationen?= =?UTF-8?q?=20werden=20jetzt=20=C3=BCber=20einen=20ExtraXMLGenerator=20aus?= =?UTF-8?q?gegeben=20-=20Formatierungen?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: https://svn.libreccm.org/ccm/trunk@1231 8810af33-2d31-482b-a856-94f89814c4df --- .../ui/object/CustomizableObjectList.java | 11 +++- .../navigation/ui/object/TextFilter.java | 5 ++ .../cms/contenttypes/Publication.java | 9 +++ .../SciPublicationExtraXmlGenerator.java | 55 +++++++++++++++++++ 4 files changed, 79 insertions(+), 1 deletion(-) create mode 100644 ccm-sci-publications/src/com/arsdigita/cms/contenttypes/SciPublicationExtraXmlGenerator.java diff --git a/ccm-ldn-navigation/src/com/arsdigita/london/navigation/ui/object/CustomizableObjectList.java b/ccm-ldn-navigation/src/com/arsdigita/london/navigation/ui/object/CustomizableObjectList.java index 1d42b91c8..cec1da683 100644 --- a/ccm-ldn-navigation/src/com/arsdigita/london/navigation/ui/object/CustomizableObjectList.java +++ b/ccm-ldn-navigation/src/com/arsdigita/london/navigation/ui/object/CustomizableObjectList.java @@ -3,9 +3,11 @@ package com.arsdigita.london.navigation.ui.object; import com.arsdigita.london.navigation.Navigation; import com.arsdigita.persistence.DataCollection; import com.arsdigita.xml.Element; +import java.io.UnsupportedEncodingException; import java.util.ArrayList; import java.util.LinkedHashMap; import java.util.Map; +import java.util.logging.Level; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.log4j.Logger; @@ -265,7 +267,7 @@ public class CustomizableObjectList extends ComplexObjectList { HttpServletResponse response) { //Some stuff for the list (copied from ComplexObjectList) Element content = Navigation.newElement("customizableObjectList"); - + if (m_customName != null) { content.addAttribute(CUSTOM_NAME, m_customName); } @@ -281,6 +283,13 @@ public class CustomizableObjectList extends ComplexObjectList { //- The HttpRequest is available here. //So we use the HTTP request directly, which allows use to use a //dedicated parameter for each of the filters. + /*if (request.getCharacterEncoding() == null) {*/ + try { + request.setCharacterEncoding("UTF-8"); + } catch (UnsupportedEncodingException ex) { + logger.error(ex); + } + //} for (Map.Entry filterEntry : filters.entrySet()) { String value = request.getParameter(filterEntry.getKey()); diff --git a/ccm-ldn-navigation/src/com/arsdigita/london/navigation/ui/object/TextFilter.java b/ccm-ldn-navigation/src/com/arsdigita/london/navigation/ui/object/TextFilter.java index c9ff5037e..6ff3a68de 100644 --- a/ccm-ldn-navigation/src/com/arsdigita/london/navigation/ui/object/TextFilter.java +++ b/ccm-ldn-navigation/src/com/arsdigita/london/navigation/ui/object/TextFilter.java @@ -1,6 +1,11 @@ package com.arsdigita.london.navigation.ui.object; import com.arsdigita.xml.Element; +import java.io.UnsupportedEncodingException; +import java.net.URLDecoder; +import java.net.URLEncoder; +import java.util.logging.Level; +import java.util.logging.Logger; /** *

diff --git a/ccm-sci-publications/src/com/arsdigita/cms/contenttypes/Publication.java b/ccm-sci-publications/src/com/arsdigita/cms/contenttypes/Publication.java index 40793ed90..d352291be 100644 --- a/ccm-sci-publications/src/com/arsdigita/cms/contenttypes/Publication.java +++ b/ccm-sci-publications/src/com/arsdigita/cms/contenttypes/Publication.java @@ -20,12 +20,14 @@ package com.arsdigita.cms.contenttypes; import com.arsdigita.cms.ContentPage; +import com.arsdigita.cms.ExtraXMLGenerator; import com.arsdigita.domain.DataObjectNotFoundException; import com.arsdigita.persistence.DataCollection; import com.arsdigita.persistence.DataObject; import com.arsdigita.persistence.OID; import com.arsdigita.util.Assert; import java.math.BigDecimal; +import java.util.List; /** *

@@ -280,4 +282,11 @@ public class Publication extends ContentPage { orgaunit.remove(ORGAUNIT_PUBLICATIONS, publication); } + + @Override + public List getExtraXMLGenerators() { + final List generators = super.getExtraXMLGenerators(); + generators.add(new SciPublicationExtraXmlGenerator()); + return generators; + } } diff --git a/ccm-sci-publications/src/com/arsdigita/cms/contenttypes/SciPublicationExtraXmlGenerator.java b/ccm-sci-publications/src/com/arsdigita/cms/contenttypes/SciPublicationExtraXmlGenerator.java new file mode 100644 index 000000000..6b0f627f6 --- /dev/null +++ b/ccm-sci-publications/src/com/arsdigita/cms/contenttypes/SciPublicationExtraXmlGenerator.java @@ -0,0 +1,55 @@ +package com.arsdigita.cms.contenttypes; + +import com.arsdigita.bebop.Page; +import com.arsdigita.bebop.PageState; +import com.arsdigita.cms.ContentItem; +import com.arsdigita.cms.ExtraXMLGenerator; +import com.arsdigita.cms.scipublications.exporter.PublicationFormat; +import com.arsdigita.cms.scipublications.exporter.SciPublicationsExporters; +import com.arsdigita.xml.Element; +import java.util.List; + +/** + * + * @author Jens Pelzetter + * @version $Id$ + */ +public class SciPublicationExtraXmlGenerator implements ExtraXMLGenerator { + + public void generateXML(final ContentItem item, + final Element element, + final PageState state) { + if (!(item instanceof Publication)) { + throw new IllegalArgumentException(String.format( + "ExtraXMLGenerator '%s' only supports items of type '%s'.", + getClass().getName(), + Publication.class.getName())); + } + + List formats = SciPublicationsExporters.getInstance().getSupportedFormats(); + + for(PublicationFormat format : formats) { + createExportLink(format, element, (Publication) item, state); + } + } + + private void createExportLink(final PublicationFormat format, + final Element parent, + final Publication publication, + final PageState state) { + final Element exportLinkElem = parent.newChildElement("publicationExportLink"); + final Element formatKeyElem = exportLinkElem.newChildElement("formatKey"); + formatKeyElem.setText(format.getName().toLowerCase()); + final Element formatNameElem = exportLinkElem.newChildElement("formatName"); + formatNameElem.setText(format.getName()); + final Element publicationIdElem = exportLinkElem.newChildElement("publicationId"); + publicationIdElem.setText(publication.getID().toString()); + } + + public void addGlobalStateParams(final Page page) { + //Nothing for now + } + + + +}