Erster Teil Feintuning XML-Ausgabe für Sci-Typen
git-svn-id: https://svn.libreccm.org/ccm/trunk@1606 8810af33-2d31-482b-a856-94f89814c4dfmaster
parent
41b3d7316c
commit
63892df1f4
|
|
@ -183,6 +183,11 @@ public class PublicPersonalProfileExtraXmlGenerator implements ExtraXMLGenerator
|
|||
//Nothing yet
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setListMode(final boolean listMode) {
|
||||
//nothing
|
||||
}
|
||||
|
||||
private String getProfileUrl(final PublicPersonalProfile profile) {
|
||||
final GenericPerson owner = profile.getOwner();
|
||||
final GenericPersonContactCollection contacts = owner.getContacts();
|
||||
|
|
|
|||
|
|
@ -44,6 +44,11 @@ public class ArticleSectionXMLGenerator implements ExtraXMLGenerator {
|
|||
public void addGlobalStateParams(final Page page) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setListMode(final boolean listMode) {
|
||||
//nothing
|
||||
}
|
||||
|
||||
protected void generateSectionXML(final PageState state,
|
||||
final Element parent,
|
||||
final ContentItem section,
|
||||
|
|
|
|||
|
|
@ -84,6 +84,11 @@ public class ArticleSectionPanel extends SimpleComponent implements
|
|||
p.addGlobalStateParam(m_page);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setListMode(final boolean listMode) {
|
||||
//nothing
|
||||
}
|
||||
|
||||
/**
|
||||
* Try to get the section from the context
|
||||
* if there isn't (eg if we are looking at an index
|
||||
|
|
|
|||
|
|
@ -84,9 +84,15 @@ public class SiteProxyExtraXMLGenerator implements ExtraXMLGenerator {
|
|||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addGlobalStateParams(final Page page) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setListMode(final boolean listMode) {
|
||||
//nothing
|
||||
}
|
||||
|
||||
private String passParameters(final HttpServletRequest request,
|
||||
final String url) {
|
||||
StringBuilder sb = new StringBuilder(url);
|
||||
|
|
|
|||
|
|
@ -1977,6 +1977,7 @@ public class ContentItem extends VersionedACSObject implements CustomCopy {
|
|||
DomainObject obj = DomainObjectFactory.newInstance(collection.getDataObject());
|
||||
if (obj instanceof ContentItem) {
|
||||
final ContentItem item = (ContentItem) obj;
|
||||
collection.close();
|
||||
return item.copyReverseProperty(source,
|
||||
this,
|
||||
property,
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@ package com.arsdigita.cms;
|
|||
|
||||
import com.arsdigita.bebop.Page;
|
||||
import com.arsdigita.bebop.PageState;
|
||||
import com.arsdigita.cms.dispatcher.SimpleXMLGenerator;
|
||||
import com.arsdigita.xml.Element;
|
||||
|
||||
/**
|
||||
|
|
@ -27,7 +28,18 @@ public interface ExtraXMLGenerator {
|
|||
|
||||
/**
|
||||
* Add all required global parameters.
|
||||
* @param p The page which contains to item to render
|
||||
* @param page The page which contains to item to render
|
||||
*/
|
||||
public void addGlobalStateParams(Page p);
|
||||
public void addGlobalStateParams(Page page);
|
||||
|
||||
/**
|
||||
* This method is called by the {@link SimpleXMLGenerator} to forward the
|
||||
* value of the listMode property. This method may does nothing. In other
|
||||
* cases it allows it to disable the output of some properties, for example
|
||||
* to avoid endless loops (item a includes item b in its XML output and
|
||||
* item b includes the XML output of item a).
|
||||
*
|
||||
* @param listMode
|
||||
*/
|
||||
public void setListMode(boolean listMode);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -299,6 +299,7 @@ public class GenericContact extends ContentPage implements
|
|||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void generateXML(ContentItem item, Element element, PageState state) {
|
||||
StringTokenizer keys = s_config.getContactEntryKeys();
|
||||
|
||||
|
|
@ -308,10 +309,16 @@ public class GenericContact extends ContentPage implements
|
|||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addGlobalStateParams(Page p) {
|
||||
//Nothing
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setListMode(final boolean listMode) {
|
||||
//Nothing
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<ExtraXMLGenerator> getExtraXMLGenerators() {
|
||||
List<ExtraXMLGenerator> generators = super.getExtraXMLGenerators();
|
||||
|
|
|
|||
|
|
@ -38,6 +38,7 @@ public abstract class GenericOrgaUnitExtraXmlGenerator
|
|||
private final static Logger logger =
|
||||
Logger.getLogger(
|
||||
GenericOrgaUnitExtraXmlGenerator.class);
|
||||
private boolean listMode = false;
|
||||
private final static String SELECTED_TAB_PARAM = "selectedTab";
|
||||
private String showOnly;
|
||||
|
||||
|
|
@ -51,6 +52,10 @@ public abstract class GenericOrgaUnitExtraXmlGenerator
|
|||
+ "only instances of GenericOrganizationalUnit only.");
|
||||
}
|
||||
|
||||
if (listMode) {
|
||||
return;
|
||||
}
|
||||
|
||||
final Element orgaUnitTabsElem = element.newChildElement("orgaUnitTabs");
|
||||
|
||||
final Element availableTabsElem = orgaUnitTabsElem.newChildElement(
|
||||
|
|
@ -207,4 +212,9 @@ public abstract class GenericOrgaUnitExtraXmlGenerator
|
|||
public void addGlobalStateParams(final Page page) {
|
||||
//Nothing yet
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setListMode(final boolean listMode) {
|
||||
this.listMode = listMode;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,74 @@
|
|||
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.GenericContact;
|
||||
import com.arsdigita.cms.contenttypes.GenericPerson;
|
||||
import com.arsdigita.cms.contenttypes.GenericPersonContactCollection;
|
||||
import com.arsdigita.cms.dispatcher.SimpleXMLGenerator;
|
||||
import com.arsdigita.globalization.GlobalizationHelper;
|
||||
import com.arsdigita.xml.Element;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Jens Pelzetter
|
||||
* @version $Id$
|
||||
*/
|
||||
public class GenericPersonExtraXmlGenerator implements ExtraXMLGenerator {
|
||||
|
||||
public void generateXML(final ContentItem item,
|
||||
final Element element,
|
||||
final PageState state) {
|
||||
if (!(item instanceof GenericPerson)) {
|
||||
throw new IllegalArgumentException(
|
||||
"The GenericPersonExtraXmlGenerator can only process "
|
||||
+ "instances of GenericPerson");
|
||||
}
|
||||
|
||||
final GenericPerson person = (GenericPerson) item;
|
||||
final GenericPersonContactCollection contacts = person.getContacts();
|
||||
|
||||
final Element contactsElem = element.newChildElement("contacts");
|
||||
while (contacts.next()) {
|
||||
generateContactXml(
|
||||
contactsElem,
|
||||
contacts.getContact(GlobalizationHelper.getNegotiatedLocale().
|
||||
getLanguage()),
|
||||
state);
|
||||
}
|
||||
}
|
||||
|
||||
private void generateContactXml(final Element contactsElem,
|
||||
final GenericContact contact,
|
||||
final PageState state) {
|
||||
final XmlGenerator generator = new XmlGenerator(contact);
|
||||
generator.setItemElemName("contact", "");
|
||||
generator.addItemAttribute("contactType", contact.getContactType());
|
||||
generator.generateXML(state, contactsElem, "");
|
||||
}
|
||||
|
||||
public void addGlobalStateParams(final Page page) {
|
||||
//Nothing
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setListMode(final boolean listMode) {
|
||||
//nothing
|
||||
}
|
||||
|
||||
private class XmlGenerator extends SimpleXMLGenerator {
|
||||
|
||||
private ContentItem item;
|
||||
|
||||
public XmlGenerator(final ContentItem item) {
|
||||
this.item = item;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ContentItem getContentItem(final PageState state) {
|
||||
return item;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -69,6 +69,13 @@ public class SimpleXMLGenerator implements XMLGenerator {
|
|||
* your generator.
|
||||
*/
|
||||
private boolean useExtraXml = true;
|
||||
/**
|
||||
* jensp 2012-04-18: This value is forwarded to this ExtraXMLGenerators
|
||||
* by calling {@link ExtraXMLGenerator#setListMode(boolean)}. The behavior
|
||||
* triggered by this value depends on the specific implementation of
|
||||
* the {@code ExtraXMLGenerator}
|
||||
*/
|
||||
private boolean listMode = false;
|
||||
/**
|
||||
* Extra attributes for the cms:item element.
|
||||
*/
|
||||
|
|
@ -103,6 +110,10 @@ public class SimpleXMLGenerator implements XMLGenerator {
|
|||
this.useExtraXml = useExtraXml;
|
||||
}
|
||||
|
||||
public void setListMode(final boolean listMode) {
|
||||
this.listMode = listMode;
|
||||
}
|
||||
|
||||
public void addItemAttribute(final String name,
|
||||
final String value) {
|
||||
itemAttributes.put(name, value);
|
||||
|
|
@ -207,6 +218,7 @@ public class SimpleXMLGenerator implements XMLGenerator {
|
|||
*/
|
||||
if (useExtraXml) {
|
||||
for (ExtraXMLGenerator generator : item.getExtraXMLGenerators()) {
|
||||
generator.setListMode(listMode);
|
||||
generator.generateXML(item, content, state);
|
||||
}
|
||||
}
|
||||
|
|
@ -273,8 +285,8 @@ public class SimpleXMLGenerator implements XMLGenerator {
|
|||
private Element startElement(String useContext, Element parent) {
|
||||
//Element element = new Element("cms:item", CMS.CMS_XML_NS);
|
||||
//final Element element = new Element(itemElemName, itemElemNs);
|
||||
final Element element = parent.newChildElement("cms:item",
|
||||
CMS.CMS_XML_NS);
|
||||
final Element element = parent.newChildElement(itemElemName,
|
||||
itemElemNs);
|
||||
if (useContext != null) {
|
||||
element.addAttribute("useContext", useContext);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -80,6 +80,7 @@ public class CMSDataCollectionRenderer extends DataCollectionRenderer {
|
|||
final ContentItem contentItem = (ContentItem) obj;
|
||||
|
||||
for(ExtraXMLGenerator generator : contentItem.getExtraListXMLGenerators()) {
|
||||
generator.setListMode(true);
|
||||
generator.generateXML(contentItem, item, null);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -22,6 +22,7 @@ package com.arsdigita.cms.contenttypes;
|
|||
import com.arsdigita.cms.ExtraXMLGenerator;
|
||||
import com.arsdigita.cms.contenttypes.ui.ExpertiseExtraXmlGenerator;
|
||||
import com.arsdigita.domain.DataObjectNotFoundException;
|
||||
import com.arsdigita.globalization.GlobalizationHelper;
|
||||
import com.arsdigita.persistence.DataObject;
|
||||
import com.arsdigita.persistence.OID;
|
||||
import java.math.BigDecimal;
|
||||
|
|
@ -75,28 +76,26 @@ public class Expertise extends Publication {
|
|||
}
|
||||
|
||||
public GenericOrganizationalUnit getOrganization() {
|
||||
/*DataCollection collection;
|
||||
final GenericOrganizationalUnitBundle bundle = getExpertiseBundle().
|
||||
getOrganization();
|
||||
|
||||
collection = (DataCollection) get(ORGANIZATION);
|
||||
|
||||
if (0 == collection.size()) {
|
||||
if (bundle == null) {
|
||||
return null;
|
||||
} else {
|
||||
DataObject dobj;
|
||||
|
||||
collection.next();
|
||||
dobj = collection.getDataObject();
|
||||
collection.close();
|
||||
|
||||
return (GenericOrganizationalUnit) DomainObjectFactory.newInstance(dobj);
|
||||
} */
|
||||
return (GenericOrganizationalUnit) getExpertiseBundle().getOrganization().
|
||||
getPrimaryInstance();
|
||||
return (GenericOrganizationalUnit) bundle.getPrimaryInstance();
|
||||
}
|
||||
}
|
||||
|
||||
public GenericOrganizationalUnit getOrganization(final String language) {
|
||||
return (GenericOrganizationalUnit) getExpertiseBundle().getOrganization().
|
||||
getInstance(language);
|
||||
final GenericOrganizationalUnitBundle bundle = getExpertiseBundle().
|
||||
getOrganization();
|
||||
|
||||
if (bundle == null) {
|
||||
return null;
|
||||
} else {
|
||||
return (GenericOrganizationalUnit) bundle.getInstance(GlobalizationHelper.
|
||||
getNegotiatedLocale().getLanguage());
|
||||
}
|
||||
}
|
||||
|
||||
public void setOrganization(final GenericOrganizationalUnit orga) {
|
||||
|
|
@ -126,45 +125,29 @@ public class Expertise extends Publication {
|
|||
}
|
||||
|
||||
public GenericOrganizationalUnit getOrderer() {
|
||||
/*DataCollection collection;
|
||||
final GenericOrganizationalUnitBundle bundle = getExpertiseBundle().
|
||||
getOrderer();
|
||||
|
||||
collection = (DataCollection) get(ORDERER);
|
||||
|
||||
if (0 == collection.size()) {
|
||||
if (bundle == null) {
|
||||
return null;
|
||||
} else {
|
||||
DataObject dobj;
|
||||
|
||||
collection.next();
|
||||
dobj = collection.getDataObject();
|
||||
collection.close();
|
||||
|
||||
return (GenericOrganizationalUnit) DomainObjectFactory.newInstance(
|
||||
dobj);
|
||||
}*/
|
||||
|
||||
return (GenericOrganizationalUnit) getExpertiseBundle().getOrderer().getPrimaryInstance();
|
||||
return (GenericOrganizationalUnit) bundle.getPrimaryInstance();
|
||||
}
|
||||
}
|
||||
|
||||
public GenericOrganizationalUnit getOrderer(final String language) {
|
||||
return (GenericOrganizationalUnit) getExpertiseBundle().getOrderer().getInstance(language);
|
||||
final GenericOrganizationalUnitBundle bundle = getExpertiseBundle().
|
||||
getOrderer();
|
||||
|
||||
if (bundle == null) {
|
||||
return null;
|
||||
} else {
|
||||
return (GenericOrganizationalUnit) bundle.getInstance(GlobalizationHelper.
|
||||
getNegotiatedLocale().getLanguage());
|
||||
}
|
||||
}
|
||||
|
||||
public void setOrderer(final GenericOrganizationalUnit orderer) {
|
||||
/*GenericOrganizationalUnit oldOrga;
|
||||
|
||||
oldOrga = getOrganization();
|
||||
if (oldOrga != null) {
|
||||
remove(ORDERER, oldOrga);
|
||||
}
|
||||
|
||||
if (null != orderer) {
|
||||
Assert.exists(orderer, GenericOrganizationalUnit.class);
|
||||
DataObject link = add(ORDERER, orderer);
|
||||
link.set("ordererOrder", 1);
|
||||
link.save();
|
||||
}*/
|
||||
|
||||
getExpertiseBundle().setOrderer(orderer);
|
||||
}
|
||||
|
||||
|
|
@ -180,7 +163,9 @@ public class Expertise extends Publication {
|
|||
public List<ExtraXMLGenerator> getExtraListXMLGenerators() {
|
||||
final List<ExtraXMLGenerator> generators = super.
|
||||
getExtraListXMLGenerators();
|
||||
generators.add(new ExpertiseExtraXmlGenerator());
|
||||
final ExtraXMLGenerator generator = new ExpertiseExtraXmlGenerator();
|
||||
generator.setListMode(true);
|
||||
generators.add(generator);
|
||||
return generators;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -100,7 +100,7 @@ public class ExpertiseBundle extends PublicationBundle {
|
|||
if (orgaunitLive != null) {
|
||||
final DataObject link = add(ORGANIZATION, orgaunitLive);
|
||||
|
||||
link.set("orgaOrder", link.get("link.orgaOrder"));
|
||||
link.set("orgaOrder", 1);
|
||||
|
||||
link.save();
|
||||
}
|
||||
|
|
@ -117,7 +117,7 @@ public class ExpertiseBundle extends PublicationBundle {
|
|||
if (ordererLive != null) {
|
||||
final DataObject link = add(ORDERER, ordererLive);
|
||||
|
||||
link.set("ordererOrder", link.get("link.ordererOrder"));
|
||||
link.set("ordererOrder", 1);
|
||||
|
||||
link.save();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -31,6 +31,7 @@ import java.util.List;
|
|||
/**
|
||||
*
|
||||
* @author Jens Pelzetter
|
||||
* @version $Id$
|
||||
*/
|
||||
public class InternetArticle extends Publication {
|
||||
|
||||
|
|
@ -81,44 +82,26 @@ public class InternetArticle extends Publication {
|
|||
}
|
||||
|
||||
public GenericOrganizationalUnit getOrganization() {
|
||||
/*DataCollection collection;
|
||||
final GenericOrganizationalUnitBundle bundle = getInternetArticleBundle().getOrganization();
|
||||
|
||||
collection = (DataCollection) get(ORGANIZATION);
|
||||
|
||||
if (collection.size() == 0) {
|
||||
if (bundle == null) {
|
||||
return null;
|
||||
} else {
|
||||
DataObject dobj;
|
||||
|
||||
collection.next();
|
||||
dobj = collection.getDataObject();
|
||||
collection.close();
|
||||
|
||||
return (GenericOrganizationalUnit) DomainObjectFactory.newInstance(dobj);
|
||||
}*/
|
||||
|
||||
return (GenericOrganizationalUnit) getInternetArticleBundle().getOrganization().getPrimaryInstance();
|
||||
return (GenericOrganizationalUnit) bundle.getPrimaryInstance();
|
||||
}
|
||||
}
|
||||
|
||||
public GenericOrganizationalUnit getOrganization(final String language) {
|
||||
return (GenericOrganizationalUnit) getInternetArticleBundle().getOrganization().getInstance(language);
|
||||
final GenericOrganizationalUnitBundle bundle = getInternetArticleBundle().getOrganization();
|
||||
|
||||
if (bundle == null) {
|
||||
return null;
|
||||
} else {
|
||||
return (GenericOrganizationalUnit) bundle.getInstance(language);
|
||||
}
|
||||
}
|
||||
|
||||
public void setOrganization(final GenericOrganizationalUnit orga) {
|
||||
/*GenericOrganizationalUnit oldOrga;
|
||||
|
||||
oldOrga = getOrganization();
|
||||
if(oldOrga != null) {
|
||||
remove(ORGANIZATION, oldOrga);
|
||||
}
|
||||
|
||||
if (orga != null) {
|
||||
Assert.exists(orga, GenericOrganizationalUnit.class);
|
||||
DataObject link = add(ORGANIZATION, orga);
|
||||
link.set("orgaOrder", 1);
|
||||
link.save();
|
||||
}*/
|
||||
|
||||
getInternetArticleBundle().setOrganization(orga);
|
||||
}
|
||||
|
||||
|
|
@ -204,7 +187,9 @@ public class InternetArticle extends Publication {
|
|||
@Override
|
||||
public List<ExtraXMLGenerator> getExtraListXMLGenerators() {
|
||||
final List<ExtraXMLGenerator> generators = super.getExtraListXMLGenerators();
|
||||
generators.add(new InternetArticleExtraXmlGenerator());
|
||||
final ExtraXMLGenerator generator = new InternetArticleExtraXmlGenerator();
|
||||
generator.setListMode(true);
|
||||
generators.add(generator);
|
||||
return generators;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -91,7 +91,7 @@ public class InternetArticleBundle extends PublicationBundle {
|
|||
if (orgaunitLive != null) {
|
||||
final DataObject link = add(ORGANIZATION, orgaunitLive);
|
||||
|
||||
link.set("orgaOrder", link.get("link.orgaOrder"));
|
||||
link.set("orgaOrder", 1);
|
||||
|
||||
link.save();
|
||||
}
|
||||
|
|
@ -142,7 +142,7 @@ public class InternetArticleBundle extends PublicationBundle {
|
|||
final DataObject link = orgaBundle.add("internetArticle",
|
||||
liveInternetArticle);
|
||||
|
||||
link.set("orgaOrder", internetArticles.get("link.orderOrder"));
|
||||
link.set("orgaOrder", 1);
|
||||
|
||||
link.save();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -40,6 +40,7 @@ public class ArticleInCollectedVolumeExtraXmlGenerator
|
|||
if (collectedVolume != null) {
|
||||
final XmlGenerator generator = new XmlGenerator(collectedVolume);
|
||||
generator.setItemElemName("collectedVolume", "");
|
||||
generator.setListMode(true);
|
||||
generator.generateXML(state, parent, "");
|
||||
}
|
||||
}
|
||||
|
|
@ -48,6 +49,11 @@ public class ArticleInCollectedVolumeExtraXmlGenerator
|
|||
//nothing
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setListMode(final boolean listMode) {
|
||||
//Nothing
|
||||
}
|
||||
|
||||
private class XmlGenerator extends SimpleXMLGenerator {
|
||||
|
||||
private final ContentItem item;
|
||||
|
|
|
|||
|
|
@ -38,6 +38,7 @@ public class ArticleInJournalExtraXmlGenerator implements ExtraXMLGenerator {
|
|||
getNegotiatedLocale().getLanguage());
|
||||
if (journal != null) {
|
||||
final XmlGenerator generator = new XmlGenerator(journal);
|
||||
generator.setListMode(true);
|
||||
generator.setItemElemName("journal", "");
|
||||
generator.generateXML(state, parent, "");
|
||||
}
|
||||
|
|
@ -47,6 +48,11 @@ public class ArticleInJournalExtraXmlGenerator implements ExtraXMLGenerator {
|
|||
//nothing
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setListMode(final boolean listMode) {
|
||||
//nothing
|
||||
}
|
||||
|
||||
private class XmlGenerator extends SimpleXMLGenerator {
|
||||
|
||||
private final ContentItem item;
|
||||
|
|
|
|||
|
|
@ -6,7 +6,6 @@ import com.arsdigita.cms.ContentItem;
|
|||
import com.arsdigita.cms.ExtraXMLGenerator;
|
||||
import com.arsdigita.cms.contenttypes.ArticleInCollectedVolume;
|
||||
import com.arsdigita.cms.contenttypes.ArticleInCollectedVolumeCollection;
|
||||
import com.arsdigita.cms.contenttypes.ArticleInJournal;
|
||||
import com.arsdigita.cms.contenttypes.CollectedVolume;
|
||||
import com.arsdigita.cms.dispatcher.SimpleXMLGenerator;
|
||||
import com.arsdigita.globalization.GlobalizationHelper;
|
||||
|
|
@ -19,6 +18,8 @@ import com.arsdigita.xml.Element;
|
|||
*/
|
||||
public class CollectedVolumeExtraXmlGenerator implements ExtraXMLGenerator {
|
||||
|
||||
private boolean listMode = false;
|
||||
|
||||
public void generateXML(final ContentItem item,
|
||||
final Element element,
|
||||
final PageState state) {
|
||||
|
|
@ -30,20 +31,24 @@ public class CollectedVolumeExtraXmlGenerator implements ExtraXMLGenerator {
|
|||
}
|
||||
|
||||
final CollectedVolume collectedVolume = (CollectedVolume) item;
|
||||
if (!listMode) {
|
||||
createArticlesXml(collectedVolume, element, state);
|
||||
}
|
||||
}
|
||||
|
||||
private void createArticlesXml(final CollectedVolume collectedVolume,
|
||||
final Element parent,
|
||||
final PageState state) {
|
||||
final ArticleInCollectedVolumeCollection articles = collectedVolume.getArticles();
|
||||
final ArticleInCollectedVolumeCollection articles = collectedVolume.
|
||||
getArticles();
|
||||
if ((articles == null) || articles.isEmpty()) {
|
||||
return;
|
||||
}
|
||||
|
||||
final Element articlesElem = parent.newChildElement("articles");
|
||||
while (articles.next()) {
|
||||
createArticleXml(articles.getArticle(GlobalizationHelper.getNegotiatedLocale().getLanguage()),
|
||||
createArticleXml(articles.getArticle(GlobalizationHelper.
|
||||
getNegotiatedLocale().getLanguage()),
|
||||
articles.getArticleOrder(),
|
||||
articlesElem,
|
||||
state);
|
||||
|
|
@ -65,6 +70,11 @@ public class CollectedVolumeExtraXmlGenerator implements ExtraXMLGenerator {
|
|||
//Nothing
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setListMode(final boolean listMode) {
|
||||
this.listMode = listMode;
|
||||
}
|
||||
|
||||
private class XmlGenerator extends SimpleXMLGenerator {
|
||||
|
||||
private final ContentItem item;
|
||||
|
|
|
|||
|
|
@ -40,6 +40,7 @@ public class ExpertiseExtraXmlGenerator implements ExtraXMLGenerator {
|
|||
getNegotiatedLocale().getLanguage());
|
||||
if (orga != null) {
|
||||
final XmlGenerator generator = new XmlGenerator(orga);
|
||||
generator.setListMode(true);
|
||||
generator.setItemElemName("organization", "");
|
||||
generator.generateXML(state, parent, "");
|
||||
}
|
||||
|
|
@ -53,6 +54,7 @@ public class ExpertiseExtraXmlGenerator implements ExtraXMLGenerator {
|
|||
getNegotiatedLocale().getLanguage());
|
||||
if (orderer != null) {
|
||||
final XmlGenerator generator = new XmlGenerator(orderer);
|
||||
generator.setListMode(true);
|
||||
generator.setItemElemName("orderer", "");
|
||||
generator.generateXML(state, parent, "");
|
||||
}
|
||||
|
|
@ -62,6 +64,11 @@ public class ExpertiseExtraXmlGenerator implements ExtraXMLGenerator {
|
|||
//nothing
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setListMode(final boolean listMode) {
|
||||
//nothing
|
||||
}
|
||||
|
||||
private class XmlGenerator extends SimpleXMLGenerator {
|
||||
|
||||
private final ContentItem item;
|
||||
|
|
|
|||
|
|
@ -40,6 +40,7 @@ public class InProceedingsExtraXmlGenerator implements ExtraXMLGenerator {
|
|||
if (proceedings != null) {
|
||||
final XmlGenerator generator = new XmlGenerator(proceedings);
|
||||
generator.setItemElemName("proceedings", "");
|
||||
generator.setListMode(true);
|
||||
generator.generateXML(state, parent, "");
|
||||
}
|
||||
}
|
||||
|
|
@ -48,6 +49,11 @@ public class InProceedingsExtraXmlGenerator implements ExtraXMLGenerator {
|
|||
//nothing
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setListMode(final boolean listMode) {
|
||||
//nothing
|
||||
}
|
||||
|
||||
private class XmlGenerator extends SimpleXMLGenerator {
|
||||
|
||||
private final ContentItem item;
|
||||
|
|
|
|||
|
|
@ -17,6 +17,8 @@ import com.arsdigita.xml.Element;
|
|||
*/
|
||||
public class InternetArticleExtraXmlGenerator implements ExtraXMLGenerator {
|
||||
|
||||
private boolean listMode = false;
|
||||
|
||||
public void generateXML(final ContentItem item,
|
||||
final Element element,
|
||||
final PageState state) {
|
||||
|
|
@ -35,6 +37,11 @@ public class InternetArticleExtraXmlGenerator implements ExtraXMLGenerator {
|
|||
//nothing
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setListMode(final boolean listMode) {
|
||||
this.listMode = true;
|
||||
}
|
||||
|
||||
private void createOrganizationXml(final InternetArticle internetArticle,
|
||||
final Element parent,
|
||||
final PageState state) {
|
||||
|
|
@ -44,6 +51,7 @@ public class InternetArticleExtraXmlGenerator implements ExtraXMLGenerator {
|
|||
if (orga != null) {
|
||||
final Element orgaElem = parent.newChildElement("organization");
|
||||
final XmlGenerator generator = new XmlGenerator(orga);
|
||||
generator.setListMode(listMode);
|
||||
generator.generateXML(state, orgaElem, "");
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -17,6 +17,8 @@ import com.arsdigita.xml.Element;
|
|||
*/
|
||||
public class JournalExtraXmlGenerator implements ExtraXMLGenerator {
|
||||
|
||||
private boolean listMode = false;
|
||||
|
||||
public void generateXML(final ContentItem item,
|
||||
final Element element,
|
||||
final PageState state) {
|
||||
|
|
@ -27,9 +29,11 @@ public class JournalExtraXmlGenerator implements ExtraXMLGenerator {
|
|||
Journal.class.getName()));
|
||||
}
|
||||
|
||||
if (!listMode) {
|
||||
final Journal journal = (Journal) item;
|
||||
createArticlesXml(journal, element, state);
|
||||
}
|
||||
}
|
||||
|
||||
private void createArticlesXml(final Journal journal,
|
||||
final Element parent,
|
||||
|
|
@ -62,6 +66,11 @@ public class JournalExtraXmlGenerator implements ExtraXMLGenerator {
|
|||
//nothing
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setListMode(final boolean listMode) {
|
||||
this.listMode = listMode;
|
||||
}
|
||||
|
||||
private class XmlGenerator extends SimpleXMLGenerator {
|
||||
|
||||
private final ContentItem item;
|
||||
|
|
|
|||
|
|
@ -8,7 +8,6 @@ import com.arsdigita.cms.contenttypes.GenericOrganizationalUnit;
|
|||
import com.arsdigita.cms.contenttypes.InProceedings;
|
||||
import com.arsdigita.cms.contenttypes.InProceedingsCollection;
|
||||
import com.arsdigita.cms.contenttypes.Proceedings;
|
||||
import com.arsdigita.cms.contenttypes.Publication;
|
||||
import com.arsdigita.cms.dispatcher.SimpleXMLGenerator;
|
||||
import com.arsdigita.globalization.GlobalizationHelper;
|
||||
import com.arsdigita.xml.Element;
|
||||
|
|
@ -20,6 +19,8 @@ import com.arsdigita.xml.Element;
|
|||
*/
|
||||
public class ProceedingsExtraXmlGenerator implements ExtraXMLGenerator {
|
||||
|
||||
private boolean listMode = false;
|
||||
|
||||
public void generateXML(final ContentItem item,
|
||||
final Element element,
|
||||
final PageState state) {
|
||||
|
|
@ -32,8 +33,10 @@ public class ProceedingsExtraXmlGenerator implements ExtraXMLGenerator {
|
|||
|
||||
final Proceedings proceedings = (Proceedings) item;
|
||||
createOrganizerXml(proceedings, element, state);
|
||||
if (!listMode) {
|
||||
createPapersXml(proceedings, element, state);
|
||||
}
|
||||
}
|
||||
|
||||
private void createOrganizerXml(final Proceedings proceedings,
|
||||
final Element parent,
|
||||
|
|
@ -58,7 +61,8 @@ public class ProceedingsExtraXmlGenerator implements ExtraXMLGenerator {
|
|||
|
||||
final Element papersElem = parent.newChildElement("papers");
|
||||
while (papers.next()) {
|
||||
createPaperXml(papers.getPaper(GlobalizationHelper.getNegotiatedLocale().getLanguage()),
|
||||
createPaperXml(papers.getPaper(GlobalizationHelper.
|
||||
getNegotiatedLocale().getLanguage()),
|
||||
papers.getPaperOrder(),
|
||||
papersElem,
|
||||
state);
|
||||
|
|
@ -79,6 +83,11 @@ public class ProceedingsExtraXmlGenerator implements ExtraXMLGenerator {
|
|||
//nothing
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setListMode(final boolean listMode) {
|
||||
this.listMode = listMode;
|
||||
}
|
||||
|
||||
private class XmlGenerator extends SimpleXMLGenerator {
|
||||
|
||||
private final ContentItem item;
|
||||
|
|
|
|||
|
|
@ -212,21 +212,20 @@ public class PublicationAuthorAddForm
|
|||
getSelectedAuthor();
|
||||
editing = true;
|
||||
}
|
||||
if (!(author.getContentBundle().hasInstance(publication.getLanguage(),
|
||||
|
||||
/*if (!(author.getContentBundle().hasInstance(publication.getLanguage(),
|
||||
Kernel.getConfig().
|
||||
languageIndependentItems()))) {
|
||||
data.addError(
|
||||
PublicationGlobalizationUtil.globalize(
|
||||
"publications.ui.authors.selectAuthor.no_suitable_language_variant"));
|
||||
return;
|
||||
}
|
||||
}*/
|
||||
|
||||
if (!editing) {
|
||||
author = (GenericPerson) author.getContentBundle().getInstance(publication.
|
||||
getLanguage());
|
||||
AuthorshipCollection authors = publication.getAuthors();
|
||||
authors.addFilter(
|
||||
String.format("id = %s", author.getID().toString()));
|
||||
String.format("id = %s", author.getContentBundle().getID().toString()));
|
||||
if (authors.size() > 0) {
|
||||
data.addError(PublicationGlobalizationUtil.globalize(
|
||||
"publications.ui.authors.selectAuthor.already_added"));
|
||||
|
|
|
|||
|
|
@ -25,6 +25,8 @@ import java.util.List;
|
|||
*/
|
||||
public class PublicationExtraXmlGenerator implements ExtraXMLGenerator {
|
||||
|
||||
private boolean listMode;
|
||||
|
||||
public void generateXML(final ContentItem item,
|
||||
final Element element,
|
||||
final PageState state) {
|
||||
|
|
@ -43,10 +45,12 @@ public class PublicationExtraXmlGenerator implements ExtraXMLGenerator {
|
|||
final List<PublicationFormat> formats = SciPublicationsExporters.
|
||||
getInstance().getSupportedFormats();
|
||||
|
||||
if (!listMode) {
|
||||
for (PublicationFormat format : formats) {
|
||||
createExportLink(format, element, (Publication) item, state);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void createAuthorsXml(final Publication publication,
|
||||
final Element parent,
|
||||
|
|
@ -75,6 +79,7 @@ public class PublicationExtraXmlGenerator implements ExtraXMLGenerator {
|
|||
generator.setItemElemName("author", "");
|
||||
generator.addItemAttribute("isEditor", isAuthor.toString());
|
||||
generator.addItemAttribute("order", order.toString());
|
||||
generator.setListMode(listMode);
|
||||
generator.generateXML(state, authorsElem, "");
|
||||
}
|
||||
|
||||
|
|
@ -152,6 +157,11 @@ public class PublicationExtraXmlGenerator implements ExtraXMLGenerator {
|
|||
//Nothing for now
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setListMode(final boolean listMode) {
|
||||
this.listMode = listMode;
|
||||
}
|
||||
|
||||
private class XmlGenerator extends SimpleXMLGenerator {
|
||||
|
||||
private final ContentItem item;
|
||||
|
|
|
|||
|
|
@ -52,6 +52,11 @@ public class PublicationWithPublisherExtraXmlGenerator
|
|||
//nothing
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setListMode(final boolean listMode) {
|
||||
//nothing
|
||||
}
|
||||
|
||||
private class XmlGenerator extends SimpleXMLGenerator {
|
||||
|
||||
private final ContentItem item;
|
||||
|
|
|
|||
|
|
@ -44,10 +44,16 @@ public class UnPublishedExtraXmlGenerator implements ExtraXMLGenerator {
|
|||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addGlobalStateParams(final Page page) {
|
||||
//nothing
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setListMode(final boolean listMode) {
|
||||
//nothing
|
||||
}
|
||||
|
||||
private class XmlGenerator extends SimpleXMLGenerator {
|
||||
|
||||
private final ContentItem item;
|
||||
|
|
|
|||
Loading…
Reference in New Issue