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-94f89814c4dfmaster
parent
9968caab6b
commit
30790c9e37
|
|
@ -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<ExtraXMLGenerator> getExtraListXMLGenerators() {
|
||||
final List<ExtraXMLGenerator> generators = super.getExtraListXMLGenerators();
|
||||
generators.add(new SciProjectListExtraXmlGenerator());
|
||||
generators.add(new SciProjectExtraXmlGenerator());
|
||||
return generators;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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());
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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());
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue