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.ExtraXMLGenerator;
|
||||||
import com.arsdigita.cms.contenttypes.ui.SciProjectExtraXmlGenerator;
|
import com.arsdigita.cms.contenttypes.ui.SciProjectExtraXmlGenerator;
|
||||||
import com.arsdigita.cms.contenttypes.ui.SciProjectListExtraXmlGenerator;
|
|
||||||
import com.arsdigita.domain.DataObjectNotFoundException;
|
import com.arsdigita.domain.DataObjectNotFoundException;
|
||||||
import com.arsdigita.persistence.DataObject;
|
import com.arsdigita.persistence.DataObject;
|
||||||
import com.arsdigita.persistence.OID;
|
import com.arsdigita.persistence.OID;
|
||||||
|
|
@ -371,7 +370,7 @@ public class SciProject extends GenericOrganizationalUnit {
|
||||||
@Override
|
@Override
|
||||||
public List<ExtraXMLGenerator> getExtraListXMLGenerators() {
|
public List<ExtraXMLGenerator> getExtraListXMLGenerators() {
|
||||||
final List<ExtraXMLGenerator> generators = super.getExtraListXMLGenerators();
|
final List<ExtraXMLGenerator> generators = super.getExtraListXMLGenerators();
|
||||||
generators.add(new SciProjectListExtraXmlGenerator());
|
generators.add(new SciProjectExtraXmlGenerator());
|
||||||
return generators;
|
return generators;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,12 @@
|
||||||
package com.arsdigita.cms.contenttypes.ui;
|
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.SciProject;
|
||||||
import com.arsdigita.cms.contenttypes.SciProjectConfig;
|
import com.arsdigita.cms.contenttypes.SciProjectConfig;
|
||||||
|
import com.arsdigita.xml.Element;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
|
|
@ -11,9 +16,59 @@ import com.arsdigita.cms.contenttypes.SciProjectConfig;
|
||||||
public class SciProjectExtraXmlGenerator
|
public class SciProjectExtraXmlGenerator
|
||||||
extends GenericOrgaUnitExtraXmlGenerator {
|
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
|
@Override
|
||||||
public String getTabConfig() {
|
public String getTabConfig() {
|
||||||
final SciProjectConfig config = SciProject.getConfig();
|
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