Erster Teil Feintuning XML-Ausgabe für Sci-Typen

git-svn-id: https://svn.libreccm.org/ccm/trunk@1606 8810af33-2d31-482b-a856-94f89814c4df
master
jensp 2012-04-18 17:52:45 +00:00
parent 41b3d7316c
commit 63892df1f4
27 changed files with 333 additions and 144 deletions

View File

@ -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();

View File

@ -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,

View File

@ -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

View File

@ -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);

View File

@ -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,

View File

@ -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);
}

View File

@ -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();

View File

@ -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;
}
}

View File

@ -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;
}
}
}

View File

@ -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);
}

View File

@ -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);
}

View File

@ -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;
}
}

View File

@ -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();
}

View File

@ -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;
}
}

View File

@ -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();
}

View File

@ -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;

View File

@ -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;

View File

@ -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()),
while (articles.next()) {
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;

View File

@ -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;

View File

@ -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;

View File

@ -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, "");
}
}

View File

@ -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,
@ -40,7 +44,7 @@ public class JournalExtraXmlGenerator implements ExtraXMLGenerator {
}
final Element articlesElem = parent.newChildElement("articles");
while(articles.next()) {
while (articles.next()) {
createArticleXml(articles.getArticle(),
articles.getArticleOrder(),
articlesElem,
@ -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;

View File

@ -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,
@ -57,8 +60,9 @@ public class ProceedingsExtraXmlGenerator implements ExtraXMLGenerator {
}
final Element papersElem = parent.newChildElement("papers");
while(papers.next()) {
createPaperXml(papers.getPaper(GlobalizationHelper.getNegotiatedLocale().getLanguage()),
while (papers.next()) {
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;

View File

@ -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"));

View File

@ -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;

View File

@ -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;

View File

@ -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;