From 30790c9e37238bab92198b1b84d1f48aca961f7a Mon Sep 17 00:00:00 2001 From: jensp Date: Sat, 19 May 2012 12:07:50 +0000 Subject: [PATCH] Fehler aufgrund der verschiedenen Restruktuierungen bei der XML-Erzeugung von SciProject behoben: Beim List-View wurden die Mitglieder des Projektes nicht ausgegeben. git-svn-id: https://svn.libreccm.org/ccm/trunk@1666 8810af33-2d31-482b-a856-94f89814c4df --- .../cms/contenttypes/SciProject.java | 3 +- .../ui/SciProjectExtraXmlGenerator.java | 57 ++++++++++++++- .../ui/SciProjectListExtraXmlGenerator.java | 69 ------------------- 3 files changed, 57 insertions(+), 72 deletions(-) delete mode 100644 ccm-sci-types-project/src/com/arsdigita/cms/contenttypes/ui/SciProjectListExtraXmlGenerator.java diff --git a/ccm-sci-types-project/src/com/arsdigita/cms/contenttypes/SciProject.java b/ccm-sci-types-project/src/com/arsdigita/cms/contenttypes/SciProject.java index 94d010c8f..2ab997c00 100644 --- a/ccm-sci-types-project/src/com/arsdigita/cms/contenttypes/SciProject.java +++ b/ccm-sci-types-project/src/com/arsdigita/cms/contenttypes/SciProject.java @@ -2,7 +2,6 @@ package com.arsdigita.cms.contenttypes; import com.arsdigita.cms.ExtraXMLGenerator; import com.arsdigita.cms.contenttypes.ui.SciProjectExtraXmlGenerator; -import com.arsdigita.cms.contenttypes.ui.SciProjectListExtraXmlGenerator; import com.arsdigita.domain.DataObjectNotFoundException; import com.arsdigita.persistence.DataObject; import com.arsdigita.persistence.OID; @@ -371,7 +370,7 @@ public class SciProject extends GenericOrganizationalUnit { @Override public List getExtraListXMLGenerators() { final List generators = super.getExtraListXMLGenerators(); - generators.add(new SciProjectListExtraXmlGenerator()); + generators.add(new SciProjectExtraXmlGenerator()); return generators; } diff --git a/ccm-sci-types-project/src/com/arsdigita/cms/contenttypes/ui/SciProjectExtraXmlGenerator.java b/ccm-sci-types-project/src/com/arsdigita/cms/contenttypes/ui/SciProjectExtraXmlGenerator.java index 56791e634..d57adfc9c 100644 --- a/ccm-sci-types-project/src/com/arsdigita/cms/contenttypes/ui/SciProjectExtraXmlGenerator.java +++ b/ccm-sci-types-project/src/com/arsdigita/cms/contenttypes/ui/SciProjectExtraXmlGenerator.java @@ -1,7 +1,12 @@ package com.arsdigita.cms.contenttypes.ui; +import com.arsdigita.bebop.PageState; +import com.arsdigita.cms.ContentItem; +import com.arsdigita.cms.contenttypes.GenericOrganizationalUnitPersonCollection; +import com.arsdigita.cms.contenttypes.GenericPerson; import com.arsdigita.cms.contenttypes.SciProject; import com.arsdigita.cms.contenttypes.SciProjectConfig; +import com.arsdigita.xml.Element; /** * @@ -11,9 +16,59 @@ import com.arsdigita.cms.contenttypes.SciProjectConfig; public class SciProjectExtraXmlGenerator extends GenericOrgaUnitExtraXmlGenerator { + private boolean listMode = false; + + @Override + public void generateXML(final ContentItem item, + final Element element, + final PageState state) { + super.generateXML(item, element, state); + + if (listMode) { + if (!(item instanceof SciProject)) { + throw new IllegalArgumentException( + "This ExtraXMLGenerator supports items of type " + + "'com.arsdigita.cms.contenttypes.SciProject' only."); + } + + final SciProject project = (SciProject) item; + final GenericOrganizationalUnitPersonCollection members = project.getPersons(); + + final Element membersElem = element.newChildElement("members"); + while (members.next()) { + generateMemberXml(membersElem, + members.getPerson(), + members.getRoleName()); + } + } + } + @Override public String getTabConfig() { final SciProjectConfig config = SciProject.getConfig(); - return config.getTabs(); + return config.getTabs(); } + + @Override + public void setListMode(final boolean listMode) { + super.setListMode(listMode); + this.listMode = listMode; + } + + private void generateMemberXml(final Element membersElem, + final GenericPerson member, + final String roleName) { + final Element memberElem = membersElem.newChildElement("member"); + memberElem.addAttribute("role", roleName); + + final Element surnameElem = memberElem.newChildElement("surname"); + surnameElem.setText(member.getSurname()); + final Element givenNameElem = memberElem.newChildElement("givenName"); + givenNameElem.setText(member.getGivenName()); + final Element titlePreElem = memberElem.newChildElement("titlePre"); + titlePreElem.setText(member.getTitlePre()); + final Element titlePostElem = memberElem.newChildElement("titlePost"); + titlePostElem.setText(member.getTitlePost()); + } + } diff --git a/ccm-sci-types-project/src/com/arsdigita/cms/contenttypes/ui/SciProjectListExtraXmlGenerator.java b/ccm-sci-types-project/src/com/arsdigita/cms/contenttypes/ui/SciProjectListExtraXmlGenerator.java deleted file mode 100644 index 37891d7b5..000000000 --- a/ccm-sci-types-project/src/com/arsdigita/cms/contenttypes/ui/SciProjectListExtraXmlGenerator.java +++ /dev/null @@ -1,69 +0,0 @@ -package com.arsdigita.cms.contenttypes.ui; - -import com.arsdigita.bebop.Page; -import com.arsdigita.bebop.PageState; -import com.arsdigita.cms.ContentItem; -import com.arsdigita.cms.ExtraXMLGenerator; -import com.arsdigita.cms.contenttypes.GenericOrganizationalUnitPersonCollection; -import com.arsdigita.cms.contenttypes.GenericPerson; -import com.arsdigita.cms.contenttypes.SciProject; -import com.arsdigita.xml.Element; - -/** - * - * @author Jens Pelzetter - * @version $Id$ - */ -public class SciProjectListExtraXmlGenerator implements ExtraXMLGenerator { - - - - @Override - public void generateXML(final ContentItem item, - final Element element, - final PageState state) { - if (!(item instanceof SciProject)) { - throw new IllegalArgumentException( - "This ExtraXMLGenerator supports items of type " - + "'com.arsdigita.cms.contenttypes.SciProject' only."); - } - - final SciProject project = (SciProject) item; - final GenericOrganizationalUnitPersonCollection members = project. - getPersons(); - - final Element membersElem = element.newChildElement("members"); - while (members.next()) { - generateMemberXml(membersElem, - members.getPerson(), - members.getRoleName()); - } - - } - - @Override - public void addGlobalStateParams(final Page page) { - //Nothing for now - } - - @Override - public void setListMode(final boolean listMode) { - //nothing - } - - private void generateMemberXml(final Element membersElem, - final GenericPerson member, - final String roleName) { - final Element memberElem = membersElem.newChildElement("member"); - memberElem.addAttribute("role", roleName); - - final Element surnameElem = memberElem.newChildElement("surname"); - surnameElem.setText(member.getSurname()); - final Element givenNameElem = memberElem.newChildElement("givenName"); - givenNameElem.setText(member.getGivenName()); - final Element titlePreElem = memberElem.newChildElement("titlePre"); - titlePreElem.setText(member.getTitlePre()); - final Element titlePostElem = memberElem.newChildElement("titlePost"); - titlePostElem.setText(member.getTitlePost()); - } -}