- XML-Ausgabe angepasst (Ticket #1208)
- Verschiedene Korrekturen
- Bisher noch nicht umgestellte Assoziationen umgestellt
- Expertise <-> GenericOrganizationalUnit (Organisation und Auftraggeber des
Gutachtens)
- InternetArticle <-> GenericOrganizationalUnit (Organisation)
- UnPublished <-> GenericOrganizationalUnit (Organisation)
git-svn-id: https://svn.libreccm.org/ccm/trunk@1585 8810af33-2d31-482b-a856-94f89814c4df
master
parent
5fc056c4f2
commit
b47811a7e9
|
|
@ -20,6 +20,7 @@
|
|||
model com.arsdigita.cms.contenttypes;
|
||||
|
||||
import com.arsdigita.cms.ContentPage;
|
||||
import com.arsdigita.cms.ContentBundle;
|
||||
|
||||
// PDL definition for an expertise
|
||||
object type Expertise extends Publication {
|
||||
|
|
@ -30,30 +31,34 @@ object type Expertise extends Publication {
|
|||
reference key (ct_expertise.expertise_id);
|
||||
}
|
||||
|
||||
association {
|
||||
Expertise[0..n] expertise = join cms_organizationalunits.organizationalunit_id
|
||||
to ct_expertise_organization_map.organization_id,
|
||||
join ct_expertise_organization_map.experise_id
|
||||
to ct_expertise.expertise_id;
|
||||
object type ExpertiseBundle extends PublicationBundle {
|
||||
reference key(ct_expertise_bundles.bundle_id);
|
||||
}
|
||||
|
||||
GenericOrganizationalUnit[0..n] organization = join ct_expertise.expertise_id
|
||||
to ct_expertise_organization_map.experise_id,
|
||||
join ct_expertise_organization_map.organization_id
|
||||
to cms_organizationalunits.organizationalunit_id;
|
||||
association {
|
||||
ExpertiseBundle[0..n] expertise = join cms_orgaunit_bundles.bundle_id
|
||||
to ct_expertise_organization_map.organization_id,
|
||||
join ct_expertise_organization_map.experise_id
|
||||
to ct_expertise_bundles.bundle_id;
|
||||
|
||||
GenericOrganizationalUnitBundle[0..n] organization = join ct_expertise_bundles.bundle_id
|
||||
to ct_expertise_organization_map.experise_id,
|
||||
join ct_expertise_organization_map.organization_id
|
||||
to cms_orgaunit_bundles.bundle_id;
|
||||
|
||||
Integer[0..1] orgaOrder = ct_expertise_organization_map.orga_order INTEGER;
|
||||
}
|
||||
|
||||
association {
|
||||
Expertise[0..n] orderedExpertise = join cms_organizationalunits.organizationalunit_id
|
||||
to ct_expertise_orderer_map.orderer_id,
|
||||
join ct_expertise_orderer_map.experise_id
|
||||
to ct_expertise.expertise_id;
|
||||
ExpertiseBundle[0..n] orderedExpertise = join cms_orgaunit_bundles.bundle_id
|
||||
to ct_expertise_orderer_map.orderer_id,
|
||||
join ct_expertise_orderer_map.experise_id
|
||||
to ct_expertise_bundles.bundle_id;
|
||||
|
||||
GenericOrganizationalUnit[0..n] orderer = join ct_expertise.expertise_id
|
||||
to ct_expertise_orderer_map.experise_id,
|
||||
join ct_expertise_orderer_map.orderer_id
|
||||
to cms_organizationalunits.organizationalunit_id;
|
||||
GenericOrganizationalUnitBundle[0..n] orderer = join ct_expertise_bundles.bundle_id
|
||||
to ct_expertise_orderer_map.experise_id,
|
||||
join ct_expertise_orderer_map.orderer_id
|
||||
to cms_orgaunit_bundles.bundle_id;
|
||||
|
||||
Integer[0..1] ordererOrder = ct_expertise_orderer_map.orderer_order INTEGER;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -20,6 +20,7 @@
|
|||
model com.arsdigita.cms.contenttypes;
|
||||
|
||||
import com.arsdigita.cms.ContentPage;
|
||||
import com.arsdigita.cms.ContentBundle;
|
||||
|
||||
// PDL definition for a InternetArticle publication
|
||||
object type InternetArticle extends Publication {
|
||||
|
|
@ -38,16 +39,20 @@ object type InternetArticle extends Publication {
|
|||
reference key (ct_internet_article.internet_article_id);
|
||||
}
|
||||
|
||||
association {
|
||||
InternetArticle[0..n] internetArticle = join cms_organizationalunits.organizationalunit_id
|
||||
to ct_internet_article_organization_map.organization_id,
|
||||
join ct_internet_article_organization_map.internet_article_id
|
||||
to ct_internet_article.internet_article_id;
|
||||
object type InternetArticleBundle extends PublicationBundle {
|
||||
reference key( ct_internet_article_bundles.bundle_id);
|
||||
}
|
||||
|
||||
GenericOrganizationalUnit[0..n] organization = join ct_internet_article.internet_article_id
|
||||
to ct_internet_article_organization_map.internet_article_id,
|
||||
join ct_internet_article_organization_map.organization_id
|
||||
to cms_organizationalunits.organizationalunit_id;
|
||||
association {
|
||||
InternetArticleBundle[0..n] internetArticle = join cms_orgaunit_bundles.bundle_id
|
||||
to ct_internet_article_organization_map.organization_id,
|
||||
join ct_internet_article_organization_map.internet_article_id
|
||||
to ct_internet_article_bundles.bundle_id;
|
||||
|
||||
GenericOrganizationalUnitBundle[0..n] organization = join ct_internet_article_bundles.bundle_id
|
||||
to ct_internet_article_organization_map.internet_article_id,
|
||||
join ct_internet_article_organization_map.organization_id
|
||||
to cms_orgaunit_bundles.bundle_id;
|
||||
|
||||
Integer[0..1] orgaOrder = ct_internet_article_organization_map.orga_order INTEGER;
|
||||
}
|
||||
|
|
@ -31,16 +31,20 @@ object type UnPublished extends Publication {
|
|||
reference key (ct_unpublished.unpublished_id);
|
||||
}
|
||||
|
||||
association {
|
||||
UnPublished[0..n] unPublished = join cms_organizationalunits.organizationalunit_id
|
||||
to ct_unpublished_organization_map.organization_id,
|
||||
join ct_unpublished_organization_map.unpublished_id
|
||||
to ct_unpublished.unpublished_id;
|
||||
object type UnPublishedBundle extends PublicationBundle {
|
||||
reference key (ct_unpublished_bundles.bundle_id);
|
||||
}
|
||||
|
||||
GenericOrganizationalUnit[0..n] organization = join ct_unpublished.unpublished_id
|
||||
to ct_unpublished_organization_map.unpublished_id,
|
||||
join ct_unpublished_organization_map.organization_id
|
||||
to cms_organizationalunits.organizationalunit_id;
|
||||
association {
|
||||
UnPublishedBundle[0..n] unPublished = join cms_orgaunit_bundles.bundle_id
|
||||
to ct_unpublished_organization_map.organization_id,
|
||||
join ct_unpublished_organization_map.unpublished_id
|
||||
to ct_unpublished_bundles.bundle_id;
|
||||
|
||||
GenericOrganizationalUnitBundle[0..n] organization = join ct_unpublished_bundles.bundle_id
|
||||
to ct_unpublished_organization_map.unpublished_id,
|
||||
join ct_unpublished_organization_map.organization_id
|
||||
to cms_orgaunit_bundles.bundle_id;
|
||||
|
||||
Integer[0..1] orgaOrder = ct_unpublished_organization_map.orga_order INTEGER;
|
||||
}
|
||||
|
|
@ -10,7 +10,7 @@
|
|||
objectType="com.arsdigita.cms.contenttypes.Expertise"
|
||||
classname="com.arsdigita.cms.contenttypes.Expertise">
|
||||
|
||||
<ctd:authoring-kit createComponent="com.arsdigita.cms.contenttypes.ui.PublicationCreate">
|
||||
<ctd:authoring-kit createComponent="com.arsdigita.cms.contenttypes.ui.ExpertiseCreate">
|
||||
|
||||
<ctd:authoring-step
|
||||
labelKey="publications.ui.expertise_properties.title"
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@
|
|||
objectType="com.arsdigita.cms.contenttypes.GreyLiterature"
|
||||
classname="com.arsdigita.cms.contenttypes.GreyLiterature">
|
||||
|
||||
<ctd:authoring-kit createComponent="com.arsdigita.cms.contenttypes.ui.PublicationCreate">
|
||||
<ctd:authoring-kit createComponent="com.arsdigita.cms.contenttypes.ui.UnPublishedCreate">
|
||||
|
||||
<ctd:authoring-step
|
||||
labelKey="publications.ui.greyLiterature_properties.title"
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@
|
|||
objectType="com.arsdigita.cms.contenttypes.InternetArticle"
|
||||
classname="com.arsdigita.cms.contenttypes.InternetArticle">
|
||||
|
||||
<ctd:authoring-kit createComponent="com.arsdigita.cms.contenttypes.ui.PublicationCreate">
|
||||
<ctd:authoring-kit createComponent="com.arsdigita.cms.contenttypes.ui.InternetArticleCreate">
|
||||
|
||||
<ctd:authoring-step
|
||||
labelKey="publications.ui.InternetArticle_properties.title"
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@
|
|||
objectType="com.arsdigita.cms.contenttypes.Review"
|
||||
classname="com.arsdigita.cms.contenttypes.Review">
|
||||
|
||||
<ctd:authoring-kit createComponent="com.arsdigita.cms.contenttypes.ui.PublicationCreate">
|
||||
<ctd:authoring-kit createComponent="com.arsdigita.cms.contenttypes.ui.ArticleInJournalCreate">
|
||||
|
||||
<ctd:authoring-step
|
||||
labelKey="publications.ui.review_properties.title"
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@
|
|||
classname="com.arsdigita.cms.contenttypes.UnPublished"
|
||||
mode="hidden">
|
||||
|
||||
<ctd:authoring-kit createComponent="com.arsdigita.cms.contenttypes.ui.PublicationCreate">
|
||||
<ctd:authoring-kit createComponent="com.arsdigita.cms.contenttypes.ui.UnPublishedCreate">
|
||||
|
||||
<ctd:authoring-step
|
||||
labelKey="publications.ui.unPublished_properties.title"
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@
|
|||
objectType="com.arsdigita.cms.contenttypes.WorkingPaper"
|
||||
classname="com.arsdigita.cms.contenttypes.WorkingPaper">
|
||||
|
||||
<ctd:authoring-kit createComponent="com.arsdigita.cms.contenttypes.ui.PublicationCreate">
|
||||
<ctd:authoring-kit createComponent="com.arsdigita.cms.contenttypes.ui.UnPublishedCreate">
|
||||
|
||||
<ctd:authoring-step
|
||||
labelKey="publications.ui.workingPaper_properties.title"
|
||||
|
|
|
|||
|
|
@ -19,10 +19,13 @@
|
|||
*/
|
||||
package com.arsdigita.cms.contenttypes;
|
||||
|
||||
import com.arsdigita.cms.ExtraXMLGenerator;
|
||||
import com.arsdigita.cms.contenttypes.ui.ArticleInCollectedVolumeExtraXmlGenerator;
|
||||
import com.arsdigita.domain.DataObjectNotFoundException;
|
||||
import com.arsdigita.persistence.DataObject;
|
||||
import com.arsdigita.persistence.OID;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
*
|
||||
|
|
@ -113,18 +116,20 @@ public class ArticleInCollectedVolume extends Publication {
|
|||
// return (CollectedVolume)DomainObjectFactory.newInstance(dobj);
|
||||
// }
|
||||
|
||||
final CollectedVolumeBundle bundle = getArticleInCollectedVolumeBundle().getCollectedVolume();
|
||||
|
||||
final CollectedVolumeBundle bundle = getArticleInCollectedVolumeBundle().
|
||||
getCollectedVolume();
|
||||
|
||||
if (bundle == null) {
|
||||
return null;
|
||||
} else {
|
||||
return (CollectedVolume) bundle.getPrimaryInstance();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public CollectedVolume getCollectedVolume(final String language) {
|
||||
final CollectedVolumeBundle bundle = getArticleInCollectedVolumeBundle().getCollectedVolume();
|
||||
|
||||
final CollectedVolumeBundle bundle = getArticleInCollectedVolumeBundle().
|
||||
getCollectedVolume();
|
||||
|
||||
if (bundle == null) {
|
||||
return null;
|
||||
} else {
|
||||
|
|
@ -147,7 +152,23 @@ public class ArticleInCollectedVolume extends Publication {
|
|||
// Integer.valueOf((int) collectedVolume.getArticles().size()));
|
||||
// link.save();
|
||||
// }
|
||||
|
||||
|
||||
getArticleInCollectedVolumeBundle().setCollectedVolume(collectedVolume);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<ExtraXMLGenerator> getExtraXMLGenerators() {
|
||||
final List<ExtraXMLGenerator> generators = super.
|
||||
getExtraListXMLGenerators();
|
||||
generators.add(new ArticleInCollectedVolumeExtraXmlGenerator());
|
||||
return generators;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<ExtraXMLGenerator> getExtraListXMLGenerators() {
|
||||
final List<ExtraXMLGenerator> generators = super.
|
||||
getExtraListXMLGenerators();
|
||||
generators.add(new ArticleInCollectedVolumeExtraXmlGenerator());
|
||||
return generators;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -19,14 +19,14 @@
|
|||
*/
|
||||
package com.arsdigita.cms.contenttypes;
|
||||
|
||||
import com.arsdigita.cms.ExtraXMLGenerator;
|
||||
import com.arsdigita.cms.contenttypes.ui.ArticleInJournalExtraXmlGenerator;
|
||||
import com.arsdigita.domain.DataObjectNotFoundException;
|
||||
import com.arsdigita.domain.DomainObjectFactory;
|
||||
import com.arsdigita.persistence.DataCollection;
|
||||
import com.arsdigita.persistence.DataObject;
|
||||
import com.arsdigita.persistence.OID;
|
||||
import com.arsdigita.util.Assert;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
*
|
||||
|
|
@ -135,19 +135,19 @@ public class ArticleInJournal extends Publication {
|
|||
|
||||
final JournalBundle bundle = getArticleInJournalBundle().getJournal();
|
||||
if (bundle == null) {
|
||||
return null;
|
||||
return null;
|
||||
} else {
|
||||
return (Journal) bundle.getPrimaryInstance();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public Journal getJournal(final String language) {
|
||||
final JournalBundle bundle = getArticleInJournalBundle().getJournal();
|
||||
if (bundle == null) {
|
||||
return null;
|
||||
return null;
|
||||
} else {
|
||||
return (Journal) bundle.getInstance(language);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void setJournal(final Journal journal) {
|
||||
|
|
@ -165,7 +165,23 @@ public class ArticleInJournal extends Publication {
|
|||
// Integer.valueOf((int) journal.getArticles().size()));
|
||||
// link.save();
|
||||
// }
|
||||
|
||||
|
||||
getArticleInJournalBundle().setJournal(journal);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<ExtraXMLGenerator> getExtraXMLGenerators() {
|
||||
final List<ExtraXMLGenerator> generators = super.
|
||||
getExtraListXMLGenerators();
|
||||
generators.add(new ArticleInJournalExtraXmlGenerator());
|
||||
return generators;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<ExtraXMLGenerator> getExtraListXMLGenerators() {
|
||||
final List<ExtraXMLGenerator> generators = super.
|
||||
getExtraListXMLGenerators();
|
||||
generators.add(new ArticleInJournalExtraXmlGenerator());
|
||||
return generators;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -19,10 +19,13 @@
|
|||
*/
|
||||
package com.arsdigita.cms.contenttypes;
|
||||
|
||||
import com.arsdigita.cms.ExtraXMLGenerator;
|
||||
import com.arsdigita.cms.contenttypes.ui.CollectedVolumeExtraXmlGenerator;
|
||||
import com.arsdigita.domain.DataObjectNotFoundException;
|
||||
import com.arsdigita.persistence.DataObject;
|
||||
import com.arsdigita.persistence.OID;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* A collected volume which consists of some {@link ArticleInCollectedVolume}
|
||||
|
|
@ -95,4 +98,18 @@ public class CollectedVolume extends PublicationWithPublisher {
|
|||
public boolean hasArticles() {
|
||||
return !this.getArticles().isEmpty();
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<ExtraXMLGenerator> getExtraXMLGenerators() {
|
||||
final List<ExtraXMLGenerator> generators = super.getExtraXMLGenerators();
|
||||
generators.add(new CollectedVolumeExtraXmlGenerator());
|
||||
return generators;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<ExtraXMLGenerator> getExtraListXMLGenerators() {
|
||||
final List<ExtraXMLGenerator> generators = super.getExtraListXMLGenerators();
|
||||
generators.add(new CollectedVolumeExtraXmlGenerator());
|
||||
return generators;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -19,13 +19,13 @@
|
|||
*/
|
||||
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.domain.DomainObjectFactory;
|
||||
import com.arsdigita.persistence.DataCollection;
|
||||
import com.arsdigita.persistence.DataObject;
|
||||
import com.arsdigita.persistence.OID;
|
||||
import com.arsdigita.util.Assert;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.List;
|
||||
import org.apache.log4j.Logger;
|
||||
|
||||
/**
|
||||
|
|
@ -36,7 +36,7 @@ public class Expertise extends Publication {
|
|||
|
||||
public static final String PLACE = "place";
|
||||
public static final String ORGANIZATION = "organization";
|
||||
public static final String NUMBER_OF_PAGES = "numberOfPages";
|
||||
public static final String NUMBER_OF_PAGES = "numberOfPages";
|
||||
public static final String ORDERER = "orderer";
|
||||
public static final String BASE_DATA_OBJECT_TYPE =
|
||||
"com.arsdigita.cms.contenttypes.Expertise";
|
||||
|
|
@ -62,6 +62,10 @@ public class Expertise extends Publication {
|
|||
super(type);
|
||||
}
|
||||
|
||||
public ExpertiseBundle getExpertiseBundle() {
|
||||
return (ExpertiseBundle) getContentBundle();
|
||||
}
|
||||
|
||||
public String getPlace() {
|
||||
return (String) get(PLACE);
|
||||
}
|
||||
|
|
@ -71,25 +75,32 @@ public class Expertise extends Publication {
|
|||
}
|
||||
|
||||
public GenericOrganizationalUnit getOrganization() {
|
||||
DataCollection collection;
|
||||
/*DataCollection collection;
|
||||
|
||||
collection = (DataCollection) get(ORGANIZATION);
|
||||
collection = (DataCollection) get(ORGANIZATION);
|
||||
|
||||
if (0 == collection.size()) {
|
||||
return null;
|
||||
} else {
|
||||
DataObject dobj;
|
||||
if (0 == collection.size()) {
|
||||
return null;
|
||||
} else {
|
||||
DataObject dobj;
|
||||
|
||||
collection.next();
|
||||
dobj = collection.getDataObject();
|
||||
collection.close();
|
||||
collection.next();
|
||||
dobj = collection.getDataObject();
|
||||
collection.close();
|
||||
|
||||
return (GenericOrganizationalUnit) DomainObjectFactory.newInstance(dobj);
|
||||
}
|
||||
return (GenericOrganizationalUnit) DomainObjectFactory.newInstance(dobj);
|
||||
} */
|
||||
return (GenericOrganizationalUnit) getExpertiseBundle().getOrganization().
|
||||
getPrimaryInstance();
|
||||
}
|
||||
|
||||
public GenericOrganizationalUnit getOrganization(final String language) {
|
||||
return (GenericOrganizationalUnit) getExpertiseBundle().getOrganization().
|
||||
getInstance(language);
|
||||
}
|
||||
|
||||
public void setOrganization(final GenericOrganizationalUnit orga) {
|
||||
GenericOrganizationalUnit oldOrga;
|
||||
/*GenericOrganizationalUnit oldOrga;
|
||||
|
||||
oldOrga = getOrganization();
|
||||
if (oldOrga != null) {
|
||||
|
|
@ -101,19 +112,21 @@ public class Expertise extends Publication {
|
|||
DataObject link = add(ORGANIZATION, orga);
|
||||
link.set("orgaOrder", 1);
|
||||
link.save();
|
||||
}
|
||||
}*/
|
||||
|
||||
getExpertiseBundle().setOrganization(orga);
|
||||
}
|
||||
|
||||
public Integer getNumberOfPages() {
|
||||
return (Integer) get(NUMBER_OF_PAGES);
|
||||
}
|
||||
|
||||
public void setNumberOfPages(Integer numberOfPages) {
|
||||
public void setNumberOfPages(final Integer numberOfPages) {
|
||||
set(NUMBER_OF_PAGES, numberOfPages);
|
||||
}
|
||||
|
||||
public GenericOrganizationalUnit getOrderer() {
|
||||
DataCollection collection;
|
||||
/*DataCollection collection;
|
||||
|
||||
collection = (DataCollection) get(ORDERER);
|
||||
|
||||
|
|
@ -126,12 +139,19 @@ public class Expertise extends Publication {
|
|||
dobj = collection.getDataObject();
|
||||
collection.close();
|
||||
|
||||
return (GenericOrganizationalUnit) DomainObjectFactory.newInstance(dobj);
|
||||
}
|
||||
return (GenericOrganizationalUnit) DomainObjectFactory.newInstance(
|
||||
dobj);
|
||||
}*/
|
||||
|
||||
return (GenericOrganizationalUnit) getExpertiseBundle().getOrderer().getPrimaryInstance();
|
||||
}
|
||||
|
||||
public GenericOrganizationalUnit getOrderer(final String language) {
|
||||
return (GenericOrganizationalUnit) getExpertiseBundle().getOrderer().getInstance(language);
|
||||
}
|
||||
|
||||
public void setOrderer(GenericOrganizationalUnit orderer) {
|
||||
GenericOrganizationalUnit oldOrga;
|
||||
public void setOrderer(final GenericOrganizationalUnit orderer) {
|
||||
/*GenericOrganizationalUnit oldOrga;
|
||||
|
||||
oldOrga = getOrganization();
|
||||
if (oldOrga != null) {
|
||||
|
|
@ -143,6 +163,24 @@ public class Expertise extends Publication {
|
|||
DataObject link = add(ORDERER, orderer);
|
||||
link.set("ordererOrder", 1);
|
||||
link.save();
|
||||
}
|
||||
}*/
|
||||
|
||||
getExpertiseBundle().setOrderer(orderer);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<ExtraXMLGenerator> getExtraXMLGenerators() {
|
||||
final List<ExtraXMLGenerator> generators = super.
|
||||
getExtraListXMLGenerators();
|
||||
generators.add(new ExpertiseExtraXmlGenerator());
|
||||
return generators;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<ExtraXMLGenerator> getExtraListXMLGenerators() {
|
||||
final List<ExtraXMLGenerator> generators = super.
|
||||
getExtraListXMLGenerators();
|
||||
generators.add(new ExpertiseExtraXmlGenerator());
|
||||
return generators;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,273 @@
|
|||
package com.arsdigita.cms.contenttypes;
|
||||
|
||||
import com.arsdigita.cms.ContentItem;
|
||||
import com.arsdigita.cms.CustomCopy;
|
||||
import com.arsdigita.cms.ItemCopier;
|
||||
import com.arsdigita.domain.DataObjectNotFoundException;
|
||||
import com.arsdigita.domain.DomainObjectFactory;
|
||||
import com.arsdigita.persistence.DataCollection;
|
||||
import com.arsdigita.persistence.DataObject;
|
||||
import com.arsdigita.persistence.OID;
|
||||
import com.arsdigita.persistence.metadata.Property;
|
||||
import com.arsdigita.util.Assert;
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Jens Pelzetter
|
||||
* @version $Id$
|
||||
*/
|
||||
public class ExpertiseBundle extends PublicationBundle {
|
||||
|
||||
public static final String BASE_DATA_OBJECT_TYPE =
|
||||
"com.arsdigita.cms.contenttypes.ExpertiseBundle";
|
||||
public static final String ORGANIZATION = "organization";
|
||||
public static final String ORDERER = "orderer";
|
||||
|
||||
public ExpertiseBundle(final ContentItem primary) {
|
||||
super(BASE_DATA_OBJECT_TYPE);
|
||||
|
||||
Assert.exists(primary, ContentItem.class);
|
||||
|
||||
setDefaultLanguage(primary.getLanguage());
|
||||
setContentType(primary.getContentType());
|
||||
addInstance(primary);
|
||||
|
||||
setName(primary.getName());
|
||||
}
|
||||
|
||||
public ExpertiseBundle(final OID oid) throws DataObjectNotFoundException {
|
||||
super(oid);
|
||||
}
|
||||
|
||||
public ExpertiseBundle(final BigDecimal id)
|
||||
throws DataObjectNotFoundException {
|
||||
super(new OID(BASE_DATA_OBJECT_TYPE, id));
|
||||
}
|
||||
|
||||
public ExpertiseBundle(final DataObject dobj) {
|
||||
super(dobj);
|
||||
}
|
||||
|
||||
public ExpertiseBundle(final String type) {
|
||||
super(type);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean copyProperty(final CustomCopy source,
|
||||
final Property property,
|
||||
final ItemCopier copier) {
|
||||
final String attribute = property.getName();
|
||||
if (copier.getCopyType() == ItemCopier.VERSION_COPY) {
|
||||
final ExpertiseBundle expertiseBundle = (ExpertiseBundle) source;
|
||||
|
||||
if (ORGANIZATION.equals(attribute)) {
|
||||
final DataCollection organizations =
|
||||
(DataCollection) expertiseBundle.get(
|
||||
ORGANIZATION);
|
||||
|
||||
while (organizations.next()) {
|
||||
createOrganizationAssoc(organizations);
|
||||
}
|
||||
|
||||
return true;
|
||||
} else if (ORDERER.equals(attribute)) {
|
||||
final DataCollection orderers =
|
||||
(DataCollection) expertiseBundle.get(
|
||||
ORDERER);
|
||||
|
||||
while (orderers.next()) {
|
||||
createOrdererAssoc(orderers);
|
||||
}
|
||||
|
||||
return true;
|
||||
} else {
|
||||
return super.copyProperty(source, property, copier);
|
||||
}
|
||||
} else {
|
||||
return super.copyProperty(source, property, copier);
|
||||
}
|
||||
}
|
||||
|
||||
private void createOrganizationAssoc(final DataCollection organizations) {
|
||||
final GenericOrganizationalUnitBundle orgaunitDraft =
|
||||
(GenericOrganizationalUnitBundle) DomainObjectFactory.
|
||||
newInstance(organizations.getDataObject());
|
||||
final GenericOrganizationalUnitBundle orgaunitLive =
|
||||
(GenericOrganizationalUnitBundle) orgaunitDraft.
|
||||
getLiveVersion();
|
||||
|
||||
if (orgaunitLive != null) {
|
||||
final DataObject link = add(ORGANIZATION, orgaunitLive);
|
||||
|
||||
link.set("orgaOrder", link.get("link.orgaOrder"));
|
||||
|
||||
link.save();
|
||||
}
|
||||
}
|
||||
|
||||
private void createOrdererAssoc(final DataCollection orderers) {
|
||||
final GenericOrganizationalUnitBundle ordererDraft =
|
||||
(GenericOrganizationalUnitBundle) DomainObjectFactory.
|
||||
newInstance(orderers.getDataObject());
|
||||
final GenericOrganizationalUnitBundle ordererLive =
|
||||
(GenericOrganizationalUnitBundle) ordererDraft.
|
||||
getLiveVersion();
|
||||
|
||||
if (ordererLive != null) {
|
||||
final DataObject link = add(ORDERER, ordererLive);
|
||||
|
||||
link.set("ordererOrder", link.get("link.ordererOrder"));
|
||||
|
||||
link.save();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean copyReverseProperty(final CustomCopy source,
|
||||
final ContentItem liveItem,
|
||||
final Property property,
|
||||
final ItemCopier copier) {
|
||||
final String attribute = property.getName();
|
||||
if (copier.getCopyType() == ItemCopier.VERSION_COPY) {
|
||||
if (("expertise".equals(attribute)
|
||||
&& (source instanceof GenericOrganizationalUnitBundle))) {
|
||||
final GenericOrganizationalUnitBundle orgaBundle =
|
||||
(GenericOrganizationalUnitBundle) source;
|
||||
final DataCollection expertises = (DataCollection) orgaBundle.
|
||||
get("expertise");
|
||||
|
||||
while (expertises.next()) {
|
||||
createExpertiseAssoc(expertises,
|
||||
(GenericOrganizationalUnitBundle) liveItem);
|
||||
}
|
||||
|
||||
return true;
|
||||
} else if ("ordererExpertise".equals(attribute)
|
||||
&& (source instanceof GenericOrganizationalUnitBundle)) {
|
||||
final GenericOrganizationalUnitBundle ordererBundle =
|
||||
(GenericOrganizationalUnitBundle) source;
|
||||
final DataCollection expertises =
|
||||
(DataCollection) ordererBundle.get(
|
||||
"ordererExpertise");
|
||||
|
||||
while (expertises.next()) {
|
||||
createOrderedExpertiseAssoc(expertises,
|
||||
(GenericOrganizationalUnitBundle) liveItem);
|
||||
}
|
||||
|
||||
return true;
|
||||
} else {
|
||||
return super.copyReverseProperty(source,
|
||||
liveItem,
|
||||
property,
|
||||
copier);
|
||||
}
|
||||
} else {
|
||||
return super.copyReverseProperty(source, liveItem, property, copier);
|
||||
}
|
||||
}
|
||||
|
||||
private void createExpertiseAssoc(final DataCollection expertises,
|
||||
final GenericOrganizationalUnitBundle orgaBundle) {
|
||||
final ExpertiseBundle draftExpertise =
|
||||
(ExpertiseBundle) DomainObjectFactory.newInstance(
|
||||
expertises.getDataObject());
|
||||
final ExpertiseBundle liveExpertise = (ExpertiseBundle) draftExpertise.
|
||||
getLiveVersion();
|
||||
|
||||
if (liveExpertise != null) {
|
||||
final DataObject link = orgaBundle.add("expertise", liveExpertise);
|
||||
|
||||
link.set("orgaOrder", expertises.get("link.orderOrder"));
|
||||
|
||||
link.save();
|
||||
}
|
||||
}
|
||||
|
||||
private void createOrderedExpertiseAssoc(final DataCollection expertises,
|
||||
final GenericOrganizationalUnitBundle orderer) {
|
||||
final ExpertiseBundle draftExpertise =
|
||||
(ExpertiseBundle) DomainObjectFactory.newInstance(
|
||||
expertises.getDataObject());
|
||||
final ExpertiseBundle liveExpertise = (ExpertiseBundle) draftExpertise.
|
||||
getLiveVersion();
|
||||
|
||||
if (liveExpertise != null) {
|
||||
final DataObject link = orderer.add("orderedExpertise",
|
||||
liveExpertise);
|
||||
|
||||
link.set("ordererOrder", expertises.get("link.ordererOrder"));
|
||||
|
||||
link.save();
|
||||
}
|
||||
}
|
||||
|
||||
public GenericOrganizationalUnitBundle getOrganization() {
|
||||
final DataCollection collection = (DataCollection) get(ORGANIZATION);
|
||||
|
||||
if (collection.size() == 0) {
|
||||
return null;
|
||||
} else {
|
||||
final DataObject dobj;
|
||||
|
||||
collection.next();
|
||||
dobj = collection.getDataObject();
|
||||
collection.close();
|
||||
|
||||
return (GenericOrganizationalUnitBundle) DomainObjectFactory.newInstance(dobj);
|
||||
}
|
||||
}
|
||||
|
||||
public void setOrganization(final GenericOrganizationalUnit organization) {
|
||||
final GenericOrganizationalUnitBundle oldOrga = getOrganization();
|
||||
|
||||
if (oldOrga != null) {
|
||||
remove(ORGANIZATION, oldOrga);
|
||||
}
|
||||
|
||||
if (organization != null) {
|
||||
Assert.exists(organization, GenericOrganizationalUnit.class);
|
||||
|
||||
final DataObject link = add(ORGANIZATION,
|
||||
organization.getGenericOrganizationalUnitBundle());
|
||||
link.set("orgaOrder",1);
|
||||
|
||||
link.save();
|
||||
}
|
||||
}
|
||||
|
||||
public GenericOrganizationalUnitBundle getOrderer() {
|
||||
final DataCollection collection = (DataCollection) get(ORDERER);
|
||||
|
||||
if (collection.size() == 0) {
|
||||
return null;
|
||||
} else {
|
||||
final DataObject dobj;
|
||||
|
||||
collection.next();
|
||||
dobj = collection.getDataObject();
|
||||
collection.close();
|
||||
|
||||
return (GenericOrganizationalUnitBundle) DomainObjectFactory.newInstance(dobj);
|
||||
}
|
||||
}
|
||||
|
||||
public void setOrderer(final GenericOrganizationalUnit orderer) {
|
||||
final GenericOrganizationalUnitBundle oldOrga = getOrganization();
|
||||
|
||||
if (oldOrga != null) {
|
||||
remove(ORDERER, oldOrga);
|
||||
}
|
||||
|
||||
if (orderer != null) {
|
||||
Assert.exists(orderer, GenericOrganizationalUnit.class);
|
||||
|
||||
final DataObject link = add(ORDERER,
|
||||
orderer.getGenericOrganizationalUnitBundle());
|
||||
link.set("ordererOrder",1);
|
||||
|
||||
link.save();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -19,13 +19,13 @@
|
|||
*/
|
||||
package com.arsdigita.cms.contenttypes;
|
||||
|
||||
import com.arsdigita.cms.ExtraXMLGenerator;
|
||||
import com.arsdigita.cms.contenttypes.ui.InProceedingsExtraXmlGenerator;
|
||||
import com.arsdigita.domain.DataObjectNotFoundException;
|
||||
import com.arsdigita.domain.DomainObjectFactory;
|
||||
import com.arsdigita.persistence.DataCollection;
|
||||
import com.arsdigita.persistence.DataObject;
|
||||
import com.arsdigita.persistence.OID;
|
||||
import com.arsdigita.util.Assert;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
*
|
||||
|
|
@ -62,7 +62,7 @@ public class InProceedings extends Publication {
|
|||
public InProceedingsBundle getInProceedingsBundle() {
|
||||
return (InProceedingsBundle) getContentBundle();
|
||||
}
|
||||
|
||||
|
||||
public Integer getPagesFrom() {
|
||||
return (Integer) get(PAGES_FROM);
|
||||
}
|
||||
|
|
@ -82,32 +82,34 @@ public class InProceedings extends Publication {
|
|||
public Proceedings getProceedings() {
|
||||
/*DataCollection collection;
|
||||
|
||||
collection = (DataCollection) get(PROCEEDINGS);
|
||||
collection = (DataCollection) get(PROCEEDINGS);
|
||||
|
||||
if (collection.size() == 0) {
|
||||
return null;
|
||||
} else {
|
||||
DataObject dobj;
|
||||
if (collection.size() == 0) {
|
||||
return null;
|
||||
} else {
|
||||
DataObject dobj;
|
||||
|
||||
collection.next();
|
||||
dobj = collection.getDataObject();
|
||||
collection.close();
|
||||
collection.next();
|
||||
dobj = collection.getDataObject();
|
||||
collection.close();
|
||||
|
||||
return (Proceedings) DomainObjectFactory.newInstance(dobj);
|
||||
}*/
|
||||
|
||||
final ProceedingsBundle bundle =
|
||||
getInProceedingsBundle().getProceedings();
|
||||
|
||||
return (Proceedings) DomainObjectFactory.newInstance(dobj);
|
||||
}*/
|
||||
|
||||
final ProceedingsBundle bundle = getInProceedingsBundle().getProceedings();
|
||||
|
||||
if (bundle == null) {
|
||||
return null;
|
||||
} else {
|
||||
return (Proceedings) bundle.getPrimaryInstance();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public Proceedings getProceedings(final String language) {
|
||||
final ProceedingsBundle bundle = getInProceedingsBundle().getProceedings();
|
||||
|
||||
final ProceedingsBundle bundle =
|
||||
getInProceedingsBundle().getProceedings();
|
||||
|
||||
if (bundle == null) {
|
||||
return null;
|
||||
} else {
|
||||
|
|
@ -118,20 +120,34 @@ public class InProceedings extends Publication {
|
|||
public void setProceedings(final Proceedings proceedings) {
|
||||
/*Proceedings oldProceedings;
|
||||
|
||||
oldProceedings = getProceedings();
|
||||
if (oldProceedings != null) {
|
||||
remove(PROCEEDINGS, oldProceedings);
|
||||
}
|
||||
oldProceedings = getProceedings();
|
||||
if (oldProceedings != null) {
|
||||
remove(PROCEEDINGS, oldProceedings);
|
||||
}
|
||||
|
||||
if (proceedings != null) {
|
||||
Assert.exists(proceedings, Proceedings.class);
|
||||
DataObject link = add(PROCEEDINGS, proceedings);
|
||||
link.set(Proceedings.PAPER_ORDER,
|
||||
Integer.valueOf((int) proceedings.getPapers().size()));
|
||||
link.save();
|
||||
}*/
|
||||
|
||||
if (proceedings != null) {
|
||||
Assert.exists(proceedings, Proceedings.class);
|
||||
DataObject link = add(PROCEEDINGS, proceedings);
|
||||
link.set(Proceedings.PAPER_ORDER,
|
||||
Integer.valueOf((int) proceedings.getPapers().size()));
|
||||
link.save();
|
||||
}*/
|
||||
|
||||
getInProceedingsBundle().setProceedings(proceedings);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<ExtraXMLGenerator> getExtraXMLGenerators() {
|
||||
final List<ExtraXMLGenerator> generators = super.getExtraXMLGenerators();
|
||||
generators.add(new InProceedingsExtraXmlGenerator());
|
||||
return generators;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<ExtraXMLGenerator> getExtraListXMLGenerators() {
|
||||
final List<ExtraXMLGenerator> generators = super.
|
||||
getExtraListXMLGenerators();
|
||||
generators.add(new InProceedingsExtraXmlGenerator());
|
||||
return generators;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -19,14 +19,14 @@
|
|||
*/
|
||||
package com.arsdigita.cms.contenttypes;
|
||||
|
||||
import com.arsdigita.cms.ExtraXMLGenerator;
|
||||
import com.arsdigita.cms.contenttypes.ui.InternetArticleExtraXmlGenerator;
|
||||
import com.arsdigita.domain.DataObjectNotFoundException;
|
||||
import com.arsdigita.domain.DomainObjectFactory;
|
||||
import com.arsdigita.persistence.DataCollection;
|
||||
import com.arsdigita.persistence.DataObject;
|
||||
import com.arsdigita.persistence.OID;
|
||||
import com.arsdigita.util.Assert;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
*
|
||||
|
|
@ -52,22 +52,26 @@ public class InternetArticle extends Publication {
|
|||
this(BASE_DATA_OBJECT_TYPE);
|
||||
}
|
||||
|
||||
public InternetArticle(BigDecimal id) throws DataObjectNotFoundException {
|
||||
public InternetArticle(final BigDecimal id) throws DataObjectNotFoundException {
|
||||
this(new OID(BASE_DATA_OBJECT_TYPE, id));
|
||||
}
|
||||
|
||||
public InternetArticle(OID oid) throws DataObjectNotFoundException {
|
||||
public InternetArticle(final OID oid) throws DataObjectNotFoundException {
|
||||
super(oid);
|
||||
}
|
||||
|
||||
public InternetArticle(DataObject dataObject) {
|
||||
public InternetArticle(final DataObject dataObject) {
|
||||
super(dataObject);
|
||||
}
|
||||
|
||||
public InternetArticle(String type) {
|
||||
public InternetArticle(final String type) {
|
||||
super(type);
|
||||
}
|
||||
|
||||
public InternetArticleBundle getInternetArticleBundle() {
|
||||
return (InternetArticleBundle) getContentBundle();
|
||||
}
|
||||
|
||||
public String getPlace() {
|
||||
return (String) get(PLACE);
|
||||
}
|
||||
|
|
@ -77,7 +81,7 @@ public class InternetArticle extends Publication {
|
|||
}
|
||||
|
||||
public GenericOrganizationalUnit getOrganization() {
|
||||
DataCollection collection;
|
||||
/*DataCollection collection;
|
||||
|
||||
collection = (DataCollection) get(ORGANIZATION);
|
||||
|
||||
|
|
@ -91,11 +95,17 @@ public class InternetArticle extends Publication {
|
|||
collection.close();
|
||||
|
||||
return (GenericOrganizationalUnit) DomainObjectFactory.newInstance(dobj);
|
||||
}
|
||||
}*/
|
||||
|
||||
return (GenericOrganizationalUnit) getInternetArticleBundle().getOrganization().getPrimaryInstance();
|
||||
}
|
||||
|
||||
public GenericOrganizationalUnit getOrganization(final String language) {
|
||||
return (GenericOrganizationalUnit) getInternetArticleBundle().getOrganization().getInstance(language);
|
||||
}
|
||||
|
||||
public void setOrganization(GenericOrganizationalUnit orga) {
|
||||
GenericOrganizationalUnit oldOrga;
|
||||
public void setOrganization(final GenericOrganizationalUnit orga) {
|
||||
/*GenericOrganizationalUnit oldOrga;
|
||||
|
||||
oldOrga = getOrganization();
|
||||
if(oldOrga != null) {
|
||||
|
|
@ -107,8 +117,9 @@ public class InternetArticle extends Publication {
|
|||
DataObject link = add(ORGANIZATION, orga);
|
||||
link.set("orgaOrder", 1);
|
||||
link.save();
|
||||
}
|
||||
|
||||
}*/
|
||||
|
||||
getInternetArticleBundle().setOrganization(orga);
|
||||
}
|
||||
|
||||
public String getNumber() {
|
||||
|
|
@ -182,4 +193,18 @@ public class InternetArticle extends Publication {
|
|||
public void setDoi(final String doi) {
|
||||
set(DOI, doi);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<ExtraXMLGenerator> getExtraXMLGenerators() {
|
||||
final List<ExtraXMLGenerator> generators = super.getExtraXMLGenerators();
|
||||
generators.add(new InternetArticleExtraXmlGenerator());
|
||||
return generators;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<ExtraXMLGenerator> getExtraListXMLGenerators() {
|
||||
final List<ExtraXMLGenerator> generators = super.getExtraListXMLGenerators();
|
||||
generators.add(new InternetArticleExtraXmlGenerator());
|
||||
return generators;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,186 @@
|
|||
package com.arsdigita.cms.contenttypes;
|
||||
|
||||
import com.arsdigita.cms.ContentItem;
|
||||
import com.arsdigita.cms.CustomCopy;
|
||||
import com.arsdigita.cms.ItemCopier;
|
||||
import com.arsdigita.domain.DataObjectNotFoundException;
|
||||
import com.arsdigita.domain.DomainObjectFactory;
|
||||
import com.arsdigita.persistence.DataCollection;
|
||||
import com.arsdigita.persistence.DataObject;
|
||||
import com.arsdigita.persistence.OID;
|
||||
import com.arsdigita.persistence.metadata.Property;
|
||||
import com.arsdigita.util.Assert;
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Jens Pelzetter
|
||||
* @version $Id$
|
||||
*/
|
||||
public class InternetArticleBundle extends PublicationBundle {
|
||||
|
||||
public static final String BASE_DATA_OBJECT_TYPE =
|
||||
"com.arsdigita.cms.contenttypes.InternetArticleBundle";
|
||||
public static final String ORGANIZATION = "organization";
|
||||
|
||||
public InternetArticleBundle(final ContentItem primary) {
|
||||
super(BASE_DATA_OBJECT_TYPE);
|
||||
|
||||
Assert.exists(primary, ContentItem.class);
|
||||
|
||||
setDefaultLanguage(primary.getLanguage());
|
||||
setContentType(primary.getContentType());
|
||||
addInstance(primary);
|
||||
|
||||
setName(primary.getName());
|
||||
}
|
||||
|
||||
public InternetArticleBundle(final OID oid) throws
|
||||
DataObjectNotFoundException {
|
||||
super(oid);
|
||||
}
|
||||
|
||||
public InternetArticleBundle(final BigDecimal id)
|
||||
throws DataObjectNotFoundException {
|
||||
super(new OID(BASE_DATA_OBJECT_TYPE, id));
|
||||
}
|
||||
|
||||
public InternetArticleBundle(final DataObject dobj) {
|
||||
super(dobj);
|
||||
}
|
||||
|
||||
public InternetArticleBundle(final String type) {
|
||||
super(type);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean copyProperty(final CustomCopy source,
|
||||
final Property property,
|
||||
final ItemCopier copier) {
|
||||
final String attribute = property.getName();
|
||||
if (copier.getCopyType() == ItemCopier.VERSION_COPY) {
|
||||
final InternetArticleBundle InternetArticleBundle =
|
||||
(InternetArticleBundle) source;
|
||||
|
||||
if (ORGANIZATION.equals(attribute)) {
|
||||
final DataCollection organizations =
|
||||
(DataCollection) InternetArticleBundle.get(
|
||||
ORGANIZATION);
|
||||
|
||||
while (organizations.next()) {
|
||||
createOrganizationAssoc(organizations);
|
||||
}
|
||||
|
||||
return true;
|
||||
} else {
|
||||
return super.copyProperty(source, property, copier);
|
||||
}
|
||||
} else {
|
||||
return super.copyProperty(source, property, copier);
|
||||
}
|
||||
}
|
||||
|
||||
private void createOrganizationAssoc(final DataCollection organizations) {
|
||||
final GenericOrganizationalUnitBundle orgaunitDraft =
|
||||
(GenericOrganizationalUnitBundle) DomainObjectFactory.
|
||||
newInstance(organizations.getDataObject());
|
||||
final GenericOrganizationalUnitBundle orgaunitLive =
|
||||
(GenericOrganizationalUnitBundle) orgaunitDraft.
|
||||
getLiveVersion();
|
||||
|
||||
if (orgaunitLive != null) {
|
||||
final DataObject link = add(ORGANIZATION, orgaunitLive);
|
||||
|
||||
link.set("orgaOrder", link.get("link.orgaOrder"));
|
||||
|
||||
link.save();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean copyReverseProperty(final CustomCopy source,
|
||||
final ContentItem liveItem,
|
||||
final Property property,
|
||||
final ItemCopier copier) {
|
||||
final String attribute = property.getName();
|
||||
if (copier.getCopyType() == ItemCopier.VERSION_COPY) {
|
||||
if (("internetArticle".equals(attribute)
|
||||
&& (source instanceof GenericOrganizationalUnitBundle))) {
|
||||
final GenericOrganizationalUnitBundle orgaBundle =
|
||||
(GenericOrganizationalUnitBundle) source;
|
||||
final DataCollection internetArticles = (DataCollection) orgaBundle.
|
||||
get("internetArticle");
|
||||
|
||||
while (internetArticles.next()) {
|
||||
createInternetArticleAssoc(internetArticles,
|
||||
(GenericOrganizationalUnitBundle) liveItem);
|
||||
}
|
||||
|
||||
return true;
|
||||
} else {
|
||||
return super.copyReverseProperty(source,
|
||||
liveItem,
|
||||
property,
|
||||
copier);
|
||||
}
|
||||
} else {
|
||||
return super.copyReverseProperty(source, liveItem, property, copier);
|
||||
}
|
||||
}
|
||||
|
||||
private void createInternetArticleAssoc(final DataCollection internetArticles,
|
||||
final GenericOrganizationalUnitBundle orgaBundle) {
|
||||
final InternetArticleBundle draftInternetArticle =
|
||||
(InternetArticleBundle) DomainObjectFactory.
|
||||
newInstance(
|
||||
internetArticles.getDataObject());
|
||||
final InternetArticleBundle liveInternetArticle =
|
||||
(InternetArticleBundle) draftInternetArticle.
|
||||
getLiveVersion();
|
||||
|
||||
if (liveInternetArticle != null) {
|
||||
final DataObject link = orgaBundle.add("internetArticle",
|
||||
liveInternetArticle);
|
||||
|
||||
link.set("orgaOrder", internetArticles.get("link.orderOrder"));
|
||||
|
||||
link.save();
|
||||
}
|
||||
}
|
||||
|
||||
public GenericOrganizationalUnitBundle getOrganization() {
|
||||
final DataCollection collection = (DataCollection) get(ORGANIZATION);
|
||||
|
||||
if (collection.size() == 0) {
|
||||
return null;
|
||||
} else {
|
||||
final DataObject dobj;
|
||||
|
||||
collection.next();
|
||||
dobj = collection.getDataObject();
|
||||
collection.close();
|
||||
|
||||
return (GenericOrganizationalUnitBundle) DomainObjectFactory.
|
||||
newInstance(dobj);
|
||||
}
|
||||
}
|
||||
|
||||
public void setOrganization(final GenericOrganizationalUnit organization) {
|
||||
final GenericOrganizationalUnitBundle oldOrga = getOrganization();
|
||||
|
||||
if (oldOrga != null) {
|
||||
remove(ORGANIZATION, oldOrga);
|
||||
}
|
||||
|
||||
if (organization != null) {
|
||||
Assert.exists(organization, GenericOrganizationalUnit.class);
|
||||
|
||||
final DataObject link = add(ORGANIZATION,
|
||||
organization.
|
||||
getGenericOrganizationalUnitBundle());
|
||||
link.set("orgaOrder", 1);
|
||||
|
||||
link.save();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -20,10 +20,13 @@
|
|||
package com.arsdigita.cms.contenttypes;
|
||||
|
||||
import com.arsdigita.cms.ContentPage;
|
||||
import com.arsdigita.cms.ExtraXMLGenerator;
|
||||
import com.arsdigita.cms.contenttypes.ui.JournalExtraXmlGenerator;
|
||||
import com.arsdigita.domain.DataObjectNotFoundException;
|
||||
import com.arsdigita.persistence.DataObject;
|
||||
import com.arsdigita.persistence.OID;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
*
|
||||
|
|
@ -113,4 +116,18 @@ public class Journal extends ContentPage {
|
|||
public boolean hasArticles() {
|
||||
return !this.getArticles().isEmpty();
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<ExtraXMLGenerator> getExtraXMLGenerators() {
|
||||
final List<ExtraXMLGenerator> generators = super.getExtraXMLGenerators();
|
||||
generators.add(new JournalExtraXmlGenerator());
|
||||
return generators;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<ExtraXMLGenerator> getExtraListXMLGenerators() {
|
||||
final List<ExtraXMLGenerator> generators = super.getExtraListXMLGenerators();
|
||||
generators.add(new JournalExtraXmlGenerator());
|
||||
return generators;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -19,6 +19,8 @@
|
|||
*/
|
||||
package com.arsdigita.cms.contenttypes;
|
||||
|
||||
import com.arsdigita.cms.ExtraXMLGenerator;
|
||||
import com.arsdigita.cms.contenttypes.ui.ProceedingsExtraXmlGenerator;
|
||||
import com.arsdigita.domain.DataObjectNotFoundException;
|
||||
import com.arsdigita.domain.DomainObjectFactory;
|
||||
import com.arsdigita.persistence.DataCollection;
|
||||
|
|
@ -27,6 +29,7 @@ import com.arsdigita.persistence.OID;
|
|||
import com.arsdigita.util.Assert;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Content type of proceedings. Provides attributes for storing the data
|
||||
|
|
@ -186,4 +189,18 @@ public class Proceedings extends PublicationWithPublisher {
|
|||
public boolean hasPapers() {
|
||||
return !this.getPapers().isEmpty();
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<ExtraXMLGenerator> getExtraXMLGenerators() {
|
||||
final List<ExtraXMLGenerator> generators = super.getExtraXMLGenerators();
|
||||
generators.add(new ProceedingsExtraXmlGenerator());
|
||||
return generators;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<ExtraXMLGenerator> getExtraListXMLGenerators() {
|
||||
final List<ExtraXMLGenerator> generators = super.getExtraListXMLGenerators();
|
||||
generators.add(new ProceedingsExtraXmlGenerator());
|
||||
return generators;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -21,11 +21,10 @@ package com.arsdigita.cms.contenttypes;
|
|||
|
||||
import com.arsdigita.cms.ContentPage;
|
||||
import com.arsdigita.cms.ExtraXMLGenerator;
|
||||
import com.arsdigita.cms.contenttypes.ui.PublicationExtraXmlGenerator;
|
||||
import com.arsdigita.domain.DataObjectNotFoundException;
|
||||
import com.arsdigita.persistence.DataCollection;
|
||||
import com.arsdigita.persistence.DataObject;
|
||||
import com.arsdigita.persistence.OID;
|
||||
import com.arsdigita.util.Assert;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.List;
|
||||
|
||||
|
|
@ -335,10 +334,17 @@ public class Publication extends ContentPage {
|
|||
@Override
|
||||
public List<ExtraXMLGenerator> getExtraXMLGenerators() {
|
||||
final List<ExtraXMLGenerator> generators = super.getExtraXMLGenerators();
|
||||
generators.add(new SciPublicationExtraXmlGenerator());
|
||||
generators.add(new PublicationExtraXmlGenerator());
|
||||
return generators;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<ExtraXMLGenerator> getExtraListXMLGenerators() {
|
||||
final List<ExtraXMLGenerator> generators = super.getExtraListXMLGenerators();
|
||||
generators.add(new PublicationExtraXmlGenerator());
|
||||
return generators;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getSearchSummary() {
|
||||
return String.format("%s %s %s",
|
||||
|
|
|
|||
|
|
@ -19,10 +19,13 @@
|
|||
*/
|
||||
package com.arsdigita.cms.contenttypes;
|
||||
|
||||
import com.arsdigita.cms.ExtraXMLGenerator;
|
||||
import com.arsdigita.cms.contenttypes.ui.PublicationWithPublisherExtraXmlGenerator;
|
||||
import com.arsdigita.domain.DataObjectNotFoundException;
|
||||
import com.arsdigita.persistence.DataObject;
|
||||
import com.arsdigita.persistence.OID;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.List;
|
||||
import org.apache.log4j.Logger;
|
||||
|
||||
/**
|
||||
|
|
@ -198,4 +201,18 @@ public class PublicationWithPublisher extends Publication {
|
|||
|
||||
getPublicationWithPublisherBundle().setPublisher(publisher);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<ExtraXMLGenerator> getExtraXMLGenerators() {
|
||||
final List<ExtraXMLGenerator> generators = super.getExtraXMLGenerators();
|
||||
generators.add(new PublicationWithPublisherExtraXmlGenerator());
|
||||
return generators;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<ExtraXMLGenerator> getExtraListXMLGenerators() {
|
||||
final List<ExtraXMLGenerator> generators = super.getExtraXMLGenerators();
|
||||
generators.add(new PublicationWithPublisherExtraXmlGenerator());
|
||||
return generators;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,55 +0,0 @@
|
|||
package com.arsdigita.cms.contenttypes;
|
||||
|
||||
import com.arsdigita.bebop.Page;
|
||||
import com.arsdigita.bebop.PageState;
|
||||
import com.arsdigita.cms.ContentItem;
|
||||
import com.arsdigita.cms.ExtraXMLGenerator;
|
||||
import com.arsdigita.cms.scipublications.exporter.PublicationFormat;
|
||||
import com.arsdigita.cms.scipublications.exporter.SciPublicationsExporters;
|
||||
import com.arsdigita.xml.Element;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Jens Pelzetter
|
||||
* @version $Id$
|
||||
*/
|
||||
public class SciPublicationExtraXmlGenerator implements ExtraXMLGenerator {
|
||||
|
||||
public void generateXML(final ContentItem item,
|
||||
final Element element,
|
||||
final PageState state) {
|
||||
if (!(item instanceof Publication)) {
|
||||
throw new IllegalArgumentException(String.format(
|
||||
"ExtraXMLGenerator '%s' only supports items of type '%s'.",
|
||||
getClass().getName(),
|
||||
Publication.class.getName()));
|
||||
}
|
||||
|
||||
List<PublicationFormat> formats = SciPublicationsExporters.getInstance().getSupportedFormats();
|
||||
|
||||
for(PublicationFormat format : formats) {
|
||||
createExportLink(format, element, (Publication) item, state);
|
||||
}
|
||||
}
|
||||
|
||||
private void createExportLink(final PublicationFormat format,
|
||||
final Element parent,
|
||||
final Publication publication,
|
||||
final PageState state) {
|
||||
final Element exportLinkElem = parent.newChildElement("publicationExportLink");
|
||||
final Element formatKeyElem = exportLinkElem.newChildElement("formatKey");
|
||||
formatKeyElem.setText(format.getName().toLowerCase());
|
||||
final Element formatNameElem = exportLinkElem.newChildElement("formatName");
|
||||
formatNameElem.setText(format.getName());
|
||||
final Element publicationIdElem = exportLinkElem.newChildElement("publicationId");
|
||||
publicationIdElem.setText(publication.getID().toString());
|
||||
}
|
||||
|
||||
public void addGlobalStateParams(final Page page) {
|
||||
//Nothing for now
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -19,20 +19,21 @@
|
|||
*/
|
||||
package com.arsdigita.cms.contenttypes;
|
||||
|
||||
import com.arsdigita.cms.ExtraXMLGenerator;
|
||||
import com.arsdigita.cms.contenttypes.ui.UnPublishedExtraXmlGenerator;
|
||||
import com.arsdigita.domain.DataObjectNotFoundException;
|
||||
import com.arsdigita.domain.DomainObjectFactory;
|
||||
import com.arsdigita.persistence.DataCollection;
|
||||
import com.arsdigita.persistence.DataObject;
|
||||
import com.arsdigita.persistence.OID;
|
||||
import com.arsdigita.util.Assert;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Jens Pelzetter
|
||||
* @version $Id$
|
||||
*/
|
||||
public abstract class UnPublished extends Publication {
|
||||
|
||||
|
||||
public static final String PLACE = "place";
|
||||
public static final String ORGANIZATION = "organization";
|
||||
public static final String NUMBER = "number";
|
||||
|
|
@ -60,6 +61,10 @@ public abstract class UnPublished extends Publication {
|
|||
super(type);
|
||||
}
|
||||
|
||||
public UnPublishedBundle getUnPublishedBundle() {
|
||||
return (UnPublishedBundle) getContentBundle();
|
||||
}
|
||||
|
||||
public String getPlace() {
|
||||
return (String) get(PLACE);
|
||||
}
|
||||
|
|
@ -69,39 +74,47 @@ public abstract class UnPublished extends Publication {
|
|||
}
|
||||
|
||||
public GenericOrganizationalUnit getOrganization() {
|
||||
DataCollection collection;
|
||||
/* DataCollection collection;
|
||||
|
||||
collection = (DataCollection) get(ORGANIZATION);
|
||||
collection = (DataCollection) get(ORGANIZATION);
|
||||
|
||||
if (0 == collection.size()) {
|
||||
return null;
|
||||
} else {
|
||||
DataObject dobj;
|
||||
if (0 == collection.size()) {
|
||||
return null;
|
||||
} else {
|
||||
DataObject dobj;
|
||||
|
||||
collection.next();
|
||||
dobj = collection.getDataObject();
|
||||
collection.close();
|
||||
collection.next();
|
||||
dobj = collection.getDataObject();
|
||||
collection.close();
|
||||
|
||||
return (GenericOrganizationalUnit) DomainObjectFactory.newInstance(
|
||||
dobj);
|
||||
}
|
||||
return (GenericOrganizationalUnit) DomainObjectFactory.newInstance(
|
||||
dobj);
|
||||
}*/
|
||||
return (GenericOrganizationalUnit) getUnPublishedBundle().
|
||||
getOrganization().getPrimaryInstance();
|
||||
}
|
||||
|
||||
public GenericOrganizationalUnit getOrganization(final String language) {
|
||||
return (GenericOrganizationalUnit) getUnPublishedBundle().
|
||||
getOrganization().getInstance(language);
|
||||
}
|
||||
|
||||
public void setOrganization(final GenericOrganizationalUnit orga) {
|
||||
GenericOrganizationalUnit oldOrga;
|
||||
/*GenericOrganizationalUnit oldOrga;
|
||||
|
||||
oldOrga = getOrganization();
|
||||
oldOrga = getOrganization();
|
||||
|
||||
if (oldOrga != null) {
|
||||
remove(ORGANIZATION, oldOrga);
|
||||
}
|
||||
if (oldOrga != null) {
|
||||
remove(ORGANIZATION, oldOrga);
|
||||
}
|
||||
|
||||
if (null != orga) {
|
||||
Assert.exists(orga, GenericOrganizationalUnit.class);
|
||||
DataObject link = add(ORGANIZATION, orga);
|
||||
link.set("orgaOrder", 1);
|
||||
link.save();
|
||||
}
|
||||
if (null != orga) {
|
||||
Assert.exists(orga, GenericOrganizationalUnit.class);
|
||||
DataObject link = add(ORGANIZATION, orga);
|
||||
link.set("orgaOrder", 1);
|
||||
link.save();
|
||||
}*/
|
||||
getUnPublishedBundle().setOrganization(orga);
|
||||
}
|
||||
|
||||
public String getNumber() {
|
||||
|
|
@ -119,4 +132,18 @@ public abstract class UnPublished extends Publication {
|
|||
public void setNumberOfPages(Integer numberOfPages) {
|
||||
set(NUMBER_OF_PAGES, numberOfPages);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<ExtraXMLGenerator> getExtraXMLGenerators() {
|
||||
final List<ExtraXMLGenerator> generators = super.getExtraXMLGenerators();
|
||||
generators.add(new UnPublishedExtraXmlGenerator());
|
||||
return generators;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<ExtraXMLGenerator> getExtraListXMLGenerators() {
|
||||
final List<ExtraXMLGenerator> generators = super.getExtraListXMLGenerators();
|
||||
generators.add(new UnPublishedExtraXmlGenerator());
|
||||
return generators;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,186 @@
|
|||
package com.arsdigita.cms.contenttypes;
|
||||
|
||||
import com.arsdigita.cms.ContentItem;
|
||||
import com.arsdigita.cms.CustomCopy;
|
||||
import com.arsdigita.cms.ItemCopier;
|
||||
import com.arsdigita.domain.DataObjectNotFoundException;
|
||||
import com.arsdigita.domain.DomainObjectFactory;
|
||||
import com.arsdigita.persistence.DataCollection;
|
||||
import com.arsdigita.persistence.DataObject;
|
||||
import com.arsdigita.persistence.OID;
|
||||
import com.arsdigita.persistence.metadata.Property;
|
||||
import com.arsdigita.util.Assert;
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Jens Pelzetter
|
||||
* @version $Id$
|
||||
*/
|
||||
public class UnPublishedBundle extends PublicationBundle {
|
||||
|
||||
public static final String BASE_DATA_OBJECT_TYPE =
|
||||
"com.arsdigita.cms.contenttypes.UnPublishedBundle";
|
||||
public static final String ORGANIZATION = "organization";
|
||||
|
||||
public UnPublishedBundle(final ContentItem primary) {
|
||||
super(BASE_DATA_OBJECT_TYPE);
|
||||
|
||||
Assert.exists(primary, ContentItem.class);
|
||||
|
||||
setDefaultLanguage(primary.getLanguage());
|
||||
setContentType(primary.getContentType());
|
||||
addInstance(primary);
|
||||
|
||||
setName(primary.getName());
|
||||
}
|
||||
|
||||
public UnPublishedBundle(final OID oid) throws
|
||||
DataObjectNotFoundException {
|
||||
super(oid);
|
||||
}
|
||||
|
||||
public UnPublishedBundle(final BigDecimal id)
|
||||
throws DataObjectNotFoundException {
|
||||
super(new OID(BASE_DATA_OBJECT_TYPE, id));
|
||||
}
|
||||
|
||||
public UnPublishedBundle(final DataObject dobj) {
|
||||
super(dobj);
|
||||
}
|
||||
|
||||
public UnPublishedBundle(final String type) {
|
||||
super(type);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean copyProperty(final CustomCopy source,
|
||||
final Property property,
|
||||
final ItemCopier copier) {
|
||||
final String attribute = property.getName();
|
||||
if (copier.getCopyType() == ItemCopier.VERSION_COPY) {
|
||||
final UnPublishedBundle unPublishedBundle =
|
||||
(UnPublishedBundle) source;
|
||||
|
||||
if (ORGANIZATION.equals(attribute)) {
|
||||
final DataCollection organizations =
|
||||
(DataCollection) unPublishedBundle.get(
|
||||
ORGANIZATION);
|
||||
|
||||
while (organizations.next()) {
|
||||
createOrganizationAssoc(organizations);
|
||||
}
|
||||
|
||||
return true;
|
||||
} else {
|
||||
return super.copyProperty(source, property, copier);
|
||||
}
|
||||
} else {
|
||||
return super.copyProperty(source, property, copier);
|
||||
}
|
||||
}
|
||||
|
||||
private void createOrganizationAssoc(final DataCollection organizations) {
|
||||
final GenericOrganizationalUnitBundle orgaunitDraft =
|
||||
(GenericOrganizationalUnitBundle) DomainObjectFactory.
|
||||
newInstance(organizations.getDataObject());
|
||||
final GenericOrganizationalUnitBundle orgaunitLive =
|
||||
(GenericOrganizationalUnitBundle) orgaunitDraft.
|
||||
getLiveVersion();
|
||||
|
||||
if (orgaunitLive != null) {
|
||||
final DataObject link = add(ORGANIZATION, orgaunitLive);
|
||||
|
||||
link.set("orgaOrder", link.get("link.orgaOrder"));
|
||||
|
||||
link.save();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean copyReverseProperty(final CustomCopy source,
|
||||
final ContentItem liveItem,
|
||||
final Property property,
|
||||
final ItemCopier copier) {
|
||||
final String attribute = property.getName();
|
||||
if (copier.getCopyType() == ItemCopier.VERSION_COPY) {
|
||||
if (("unPublished".equals(attribute)
|
||||
&& (source instanceof GenericOrganizationalUnitBundle))) {
|
||||
final GenericOrganizationalUnitBundle orgaBundle =
|
||||
(GenericOrganizationalUnitBundle) source;
|
||||
final DataCollection publications = (DataCollection) orgaBundle.
|
||||
get("unPublished");
|
||||
|
||||
while (publications.next()) {
|
||||
createUnPublishedAssoc(publications,
|
||||
(GenericOrganizationalUnitBundle) liveItem);
|
||||
}
|
||||
|
||||
return true;
|
||||
} else {
|
||||
return super.copyReverseProperty(source,
|
||||
liveItem,
|
||||
property,
|
||||
copier);
|
||||
}
|
||||
} else {
|
||||
return super.copyReverseProperty(source, liveItem, property, copier);
|
||||
}
|
||||
}
|
||||
|
||||
private void createUnPublishedAssoc(final DataCollection publications,
|
||||
final GenericOrganizationalUnitBundle orgaBundle) {
|
||||
final UnPublishedBundle draftUnPublished =
|
||||
(UnPublishedBundle) DomainObjectFactory.
|
||||
newInstance(
|
||||
publications.getDataObject());
|
||||
final UnPublishedBundle liveUnPublished =
|
||||
(UnPublishedBundle) draftUnPublished.
|
||||
getLiveVersion();
|
||||
|
||||
if (liveUnPublished != null) {
|
||||
final DataObject link = orgaBundle.add("unPublished",
|
||||
liveUnPublished);
|
||||
|
||||
link.set("orgaOrder", publications.get("link.orderOrder"));
|
||||
|
||||
link.save();
|
||||
}
|
||||
}
|
||||
|
||||
public GenericOrganizationalUnitBundle getOrganization() {
|
||||
final DataCollection collection = (DataCollection) get(ORGANIZATION);
|
||||
|
||||
if (collection.size() == 0) {
|
||||
return null;
|
||||
} else {
|
||||
final DataObject dobj;
|
||||
|
||||
collection.next();
|
||||
dobj = collection.getDataObject();
|
||||
collection.close();
|
||||
|
||||
return (GenericOrganizationalUnitBundle) DomainObjectFactory.
|
||||
newInstance(dobj);
|
||||
}
|
||||
}
|
||||
|
||||
public void setOrganization(final GenericOrganizationalUnit organization) {
|
||||
final GenericOrganizationalUnitBundle oldOrga = getOrganization();
|
||||
|
||||
if (oldOrga != null) {
|
||||
remove(ORGANIZATION, oldOrga);
|
||||
}
|
||||
|
||||
if (organization != null) {
|
||||
Assert.exists(organization, GenericOrganizationalUnit.class);
|
||||
|
||||
final DataObject link = add(ORGANIZATION,
|
||||
organization.
|
||||
getGenericOrganizationalUnitBundle());
|
||||
link.set("orgaOrder", 1);
|
||||
|
||||
link.save();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,65 @@
|
|||
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.ArticleInCollectedVolume;
|
||||
import com.arsdigita.cms.contenttypes.ArticleInJournal;
|
||||
import com.arsdigita.cms.contenttypes.CollectedVolume;
|
||||
import com.arsdigita.cms.dispatcher.SimpleXMLGenerator;
|
||||
import com.arsdigita.globalization.GlobalizationHelper;
|
||||
import com.arsdigita.xml.Element;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Jens Pelzetter
|
||||
* @version $Id$
|
||||
*/
|
||||
public class ArticleInCollectedVolumeExtraXmlGenerator
|
||||
implements ExtraXMLGenerator {
|
||||
|
||||
public void generateXML(final ContentItem item,
|
||||
final Element element,
|
||||
final PageState state) {
|
||||
if (!(item instanceof ArticleInCollectedVolume)) {
|
||||
throw new IllegalArgumentException(String.format(
|
||||
"ExtraXMLGenerator '%s' only supports items of type '%s'.",
|
||||
getClass().getName(),
|
||||
ArticleInJournal.class.getName()));
|
||||
}
|
||||
|
||||
final ArticleInCollectedVolume article = (ArticleInCollectedVolume) item;
|
||||
createCollectedVolumeXml(article, element, state);
|
||||
}
|
||||
|
||||
private void createCollectedVolumeXml(final ArticleInCollectedVolume article,
|
||||
final Element parent,
|
||||
final PageState state) {
|
||||
final CollectedVolume collectedVolume = article.getCollectedVolume(GlobalizationHelper.getNegotiatedLocale().getLanguage());
|
||||
if (collectedVolume != null) {
|
||||
final Element collVolElem = parent.newChildElement("collectedVolume");
|
||||
final XmlGenerator generator = new XmlGenerator(collectedVolume);
|
||||
generator.generateXML(state, collVolElem, "");
|
||||
}
|
||||
}
|
||||
|
||||
public void addGlobalStateParams(final Page p) {
|
||||
//nothing
|
||||
}
|
||||
|
||||
private class XmlGenerator extends SimpleXMLGenerator {
|
||||
|
||||
private final ContentItem item;
|
||||
|
||||
public XmlGenerator(final ContentItem item) {
|
||||
super();
|
||||
this.item = item;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected ContentItem getContentItem(final PageState state) {
|
||||
return item;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,64 @@
|
|||
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.ArticleInJournal;
|
||||
import com.arsdigita.cms.contenttypes.Journal;
|
||||
import com.arsdigita.cms.dispatcher.SimpleXMLGenerator;
|
||||
import com.arsdigita.globalization.GlobalizationHelper;
|
||||
import com.arsdigita.xml.Element;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Jens Pelzetter
|
||||
* @version $Id$
|
||||
*/
|
||||
public class ArticleInJournalExtraXmlGenerator implements ExtraXMLGenerator {
|
||||
|
||||
public void generateXML(final ContentItem item,
|
||||
final Element element,
|
||||
final PageState state) {
|
||||
if (!(item instanceof ArticleInJournal)) {
|
||||
throw new IllegalArgumentException(String.format(
|
||||
"ExtraXMLGenerator '%s' only supports items of type '%s'.",
|
||||
getClass().getName(),
|
||||
ArticleInJournal.class.getName()));
|
||||
}
|
||||
|
||||
final ArticleInJournal article = (ArticleInJournal) item;
|
||||
createJournalXml(article, element, state);
|
||||
}
|
||||
|
||||
private void createJournalXml(final ArticleInJournal article,
|
||||
final Element parent,
|
||||
final PageState state) {
|
||||
final Journal journal = article.getJournal(GlobalizationHelper.
|
||||
getNegotiatedLocale().getLanguage());
|
||||
if (journal != null) {
|
||||
final Element journalElem = parent.newChildElement("journal");
|
||||
final XmlGenerator generator = new XmlGenerator(journal);
|
||||
generator.generateXML(state, journalElem, "");
|
||||
}
|
||||
}
|
||||
|
||||
public void addGlobalStateParams(final Page p) {
|
||||
//nothing
|
||||
}
|
||||
|
||||
private class XmlGenerator extends SimpleXMLGenerator {
|
||||
|
||||
private final ContentItem item;
|
||||
|
||||
public XmlGenerator(final ContentItem item) {
|
||||
super();
|
||||
this.item = item;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected ContentItem getContentItem(final PageState state) {
|
||||
return item;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,81 @@
|
|||
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.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;
|
||||
import com.arsdigita.xml.Element;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Jens Pelzetter
|
||||
* @version $Id$
|
||||
*/
|
||||
public class CollectedVolumeExtraXmlGenerator implements ExtraXMLGenerator {
|
||||
|
||||
public void generateXML(final ContentItem item,
|
||||
final Element element,
|
||||
final PageState state) {
|
||||
if (!(item instanceof CollectedVolume)) {
|
||||
throw new IllegalArgumentException(String.format(
|
||||
"ExtraXMLGenerator '%s' only supports items of type '%s'.",
|
||||
getClass().getName(),
|
||||
CollectedVolume.class.getName()));
|
||||
}
|
||||
|
||||
final CollectedVolume collectedVolume = (CollectedVolume) item;
|
||||
createArticlesXml(collectedVolume, element, state);
|
||||
}
|
||||
|
||||
private void createArticlesXml(final CollectedVolume collectedVolume,
|
||||
final Element parent,
|
||||
final PageState state) {
|
||||
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()),
|
||||
articles.getArticleOrder(),
|
||||
articlesElem,
|
||||
state);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
private void createArticleXml(final ArticleInCollectedVolume article,
|
||||
final Integer order,
|
||||
final Element articlesElem,
|
||||
final PageState state) {
|
||||
final XmlGenerator generator = new XmlGenerator(article);
|
||||
generator.addItemAttribute("order", order.toString());
|
||||
generator.generateXML(state, articlesElem, "");
|
||||
}
|
||||
|
||||
public void addGlobalStateParams(final Page page) {
|
||||
//Nothing
|
||||
}
|
||||
|
||||
private class XmlGenerator extends SimpleXMLGenerator {
|
||||
|
||||
private final ContentItem item;
|
||||
|
||||
public XmlGenerator(final ContentItem item) {
|
||||
super();
|
||||
this.item = item;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected ContentItem getContentItem(final PageState state) {
|
||||
return item;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,26 @@
|
|||
package com.arsdigita.cms.contenttypes.ui;
|
||||
|
||||
import com.arsdigita.cms.ContentItem;
|
||||
import com.arsdigita.cms.ItemSelectionModel;
|
||||
import com.arsdigita.cms.contenttypes.ExpertiseBundle;
|
||||
import com.arsdigita.cms.contenttypes.PublicationBundle;
|
||||
import com.arsdigita.cms.ui.authoring.CreationSelector;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Jens Pelzetter
|
||||
* @version $Id$
|
||||
*/
|
||||
public class ExpertiseCreate extends PublicationCreate {
|
||||
|
||||
public ExpertiseCreate(final ItemSelectionModel itemModel,
|
||||
final CreationSelector parent) {
|
||||
super(itemModel, parent);
|
||||
}
|
||||
|
||||
@Override
|
||||
public PublicationBundle createBundle(final ContentItem primary) {
|
||||
return new ExpertiseBundle(primary);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,79 @@
|
|||
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.Expertise;
|
||||
import com.arsdigita.cms.contenttypes.GenericOrganizationalUnit;
|
||||
import com.arsdigita.cms.dispatcher.SimpleXMLGenerator;
|
||||
import com.arsdigita.globalization.GlobalizationHelper;
|
||||
import com.arsdigita.xml.Element;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Jens Pelzetter
|
||||
* @version $Id$
|
||||
*/
|
||||
public class ExpertiseExtraXmlGenerator implements ExtraXMLGenerator {
|
||||
|
||||
public void generateXML(final ContentItem item,
|
||||
final Element element,
|
||||
final PageState state) {
|
||||
if (!(item instanceof Expertise)) {
|
||||
throw new IllegalArgumentException(String.format(
|
||||
"ExtraXMLGenerator '%s' only supports items of type '%s'.",
|
||||
getClass().getName(),
|
||||
Expertise.class.getName()));
|
||||
}
|
||||
|
||||
final Expertise expertise = (Expertise) item;
|
||||
createOrganizationXml(expertise, element, state);
|
||||
createOrdererXml(expertise, element, state);
|
||||
}
|
||||
|
||||
private void createOrganizationXml(final Expertise expertise,
|
||||
final Element parent,
|
||||
final PageState state) {
|
||||
final GenericOrganizationalUnit orga =
|
||||
expertise.getOrganization(GlobalizationHelper.
|
||||
getNegotiatedLocale().getLanguage());
|
||||
if (orga != null) {
|
||||
final Element orgaElem = parent.newChildElement("organization");
|
||||
final XmlGenerator generator = new XmlGenerator(orga);
|
||||
generator.generateXML(state, orgaElem, "");
|
||||
}
|
||||
}
|
||||
|
||||
private void createOrdererXml(final Expertise expertise,
|
||||
final Element parent,
|
||||
final PageState state) {
|
||||
final GenericOrganizationalUnit orderer =
|
||||
expertise.getOrderer(GlobalizationHelper.
|
||||
getNegotiatedLocale().getLanguage());
|
||||
if (orderer != null) {
|
||||
final Element ordererElem = parent.newChildElement("orderer");
|
||||
final XmlGenerator generator = new XmlGenerator(orderer);
|
||||
generator.generateXML(state, ordererElem, "");
|
||||
}
|
||||
}
|
||||
|
||||
public void addGlobalStateParams(Page p) {
|
||||
//nothing
|
||||
}
|
||||
|
||||
private class XmlGenerator extends SimpleXMLGenerator {
|
||||
|
||||
private final ContentItem item;
|
||||
|
||||
public XmlGenerator(final ContentItem item) {
|
||||
super();
|
||||
this.item = item;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected ContentItem getContentItem(final PageState state) {
|
||||
return item;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,66 @@
|
|||
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.InProceedings;
|
||||
import com.arsdigita.cms.contenttypes.Proceedings;
|
||||
import com.arsdigita.cms.dispatcher.SimpleXMLGenerator;
|
||||
import com.arsdigita.globalization.GlobalizationHelper;
|
||||
import com.arsdigita.xml.Element;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Jens Pelzetter
|
||||
* @version $Id$
|
||||
*/
|
||||
public class InProceedingsExtraXmlGenerator implements ExtraXMLGenerator {
|
||||
|
||||
public void generateXML(final ContentItem item,
|
||||
final Element element,
|
||||
final PageState state) {
|
||||
if (!(item instanceof InProceedings)) {
|
||||
throw new IllegalArgumentException(String.format(
|
||||
"ExtraXMLGenerator '%s' only supports items of type '%s'.",
|
||||
getClass().getName(),
|
||||
InProceedings.class.getName()));
|
||||
}
|
||||
|
||||
final InProceedings inProceedings = (InProceedings) item;
|
||||
createProceedingsXml(inProceedings, element, state);
|
||||
}
|
||||
|
||||
private void createProceedingsXml(final InProceedings inProceedings,
|
||||
final Element parent,
|
||||
final PageState state) {
|
||||
final Proceedings proceedings =
|
||||
inProceedings.getProceedings(GlobalizationHelper.
|
||||
getNegotiatedLocale().getLanguage());
|
||||
if (proceedings != null) {
|
||||
final Element proceedingsElem =
|
||||
parent.newChildElement("proceedings");
|
||||
final XmlGenerator generator = new XmlGenerator(proceedings);
|
||||
generator.generateXML(state, proceedingsElem, "");
|
||||
}
|
||||
}
|
||||
|
||||
public void addGlobalStateParams(final Page page) {
|
||||
//nothing
|
||||
}
|
||||
|
||||
private class XmlGenerator extends SimpleXMLGenerator {
|
||||
|
||||
private final ContentItem item;
|
||||
|
||||
public XmlGenerator(final ContentItem item) {
|
||||
super();
|
||||
this.item = item;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected ContentItem getContentItem(final PageState state) {
|
||||
return item;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,25 @@
|
|||
package com.arsdigita.cms.contenttypes.ui;
|
||||
|
||||
import com.arsdigita.cms.ContentItem;
|
||||
import com.arsdigita.cms.ItemSelectionModel;
|
||||
import com.arsdigita.cms.contenttypes.InternetArticleBundle;
|
||||
import com.arsdigita.cms.contenttypes.PublicationBundle;
|
||||
import com.arsdigita.cms.ui.authoring.CreationSelector;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Jens Pelzetter
|
||||
* @version $Id$
|
||||
*/
|
||||
public class InternetArticleCreate extends PublicationCreate {
|
||||
|
||||
public InternetArticleCreate(final ItemSelectionModel itemModel,
|
||||
final CreationSelector parent) {
|
||||
super(itemModel, parent);
|
||||
}
|
||||
|
||||
@Override
|
||||
public PublicationBundle createBundle(final ContentItem primary) {
|
||||
return new InternetArticleBundle(primary);
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,65 @@
|
|||
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.GenericOrganizationalUnit;
|
||||
import com.arsdigita.cms.contenttypes.InternetArticle;
|
||||
import com.arsdigita.cms.dispatcher.SimpleXMLGenerator;
|
||||
import com.arsdigita.globalization.GlobalizationHelper;
|
||||
import com.arsdigita.xml.Element;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Jens Pelzetter
|
||||
* @version $Id$
|
||||
*/
|
||||
public class InternetArticleExtraXmlGenerator implements ExtraXMLGenerator {
|
||||
|
||||
public void generateXML(final ContentItem item,
|
||||
final Element element,
|
||||
final PageState state) {
|
||||
if (!(item instanceof InternetArticle)) {
|
||||
throw new IllegalArgumentException(String.format(
|
||||
"ExtraXMLGenerator '%s' only supports items of type '%s'.",
|
||||
getClass().getName(),
|
||||
InternetArticle.class.getName()));
|
||||
}
|
||||
|
||||
final InternetArticle internetArticle = (InternetArticle) item;
|
||||
createOrganizationXml(internetArticle, element, state);
|
||||
}
|
||||
|
||||
public void addGlobalStateParams(final Page page) {
|
||||
//nothing
|
||||
}
|
||||
|
||||
private void createOrganizationXml(final InternetArticle internetArticle,
|
||||
final Element parent,
|
||||
final PageState state) {
|
||||
final GenericOrganizationalUnit orga =
|
||||
internetArticle.getOrganization(GlobalizationHelper.
|
||||
getNegotiatedLocale().getLanguage());
|
||||
if (orga != null) {
|
||||
final Element orgaElem = parent.newChildElement("organization");
|
||||
final XmlGenerator generator = new XmlGenerator(orga);
|
||||
generator.generateXML(state, orgaElem, "");
|
||||
}
|
||||
}
|
||||
|
||||
private class XmlGenerator extends SimpleXMLGenerator {
|
||||
|
||||
private final ContentItem item;
|
||||
|
||||
public XmlGenerator(final ContentItem item) {
|
||||
super();
|
||||
this.item = item;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected ContentItem getContentItem(final PageState state) {
|
||||
return item;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,78 @@
|
|||
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.ArticleInJournal;
|
||||
import com.arsdigita.cms.contenttypes.ArticleInJournalCollection;
|
||||
import com.arsdigita.cms.contenttypes.Journal;
|
||||
import com.arsdigita.cms.dispatcher.SimpleXMLGenerator;
|
||||
import com.arsdigita.xml.Element;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Jens Pelzetter
|
||||
* @version $Id$
|
||||
*/
|
||||
public class JournalExtraXmlGenerator implements ExtraXMLGenerator {
|
||||
|
||||
public void generateXML(final ContentItem item,
|
||||
final Element element,
|
||||
final PageState state) {
|
||||
if (!(item instanceof Journal)) {
|
||||
throw new IllegalArgumentException(String.format(
|
||||
"ExtraXMLGenerator '%s' only supports items of type '%s'.",
|
||||
getClass().getName(),
|
||||
Journal.class.getName()));
|
||||
}
|
||||
|
||||
final Journal journal = (Journal) item;
|
||||
createArticlesXml(journal, element, state);
|
||||
}
|
||||
|
||||
private void createArticlesXml(final Journal journal,
|
||||
final Element parent,
|
||||
final PageState state) {
|
||||
final ArticleInJournalCollection articles = journal.getArticles();
|
||||
if ((articles == null) || articles.isEmpty()) {
|
||||
return;
|
||||
}
|
||||
|
||||
final Element articlesElem = parent.newChildElement("articles");
|
||||
while(articles.next()) {
|
||||
createArticleXml(articles.getArticle(),
|
||||
articles.getArticleOrder(),
|
||||
articlesElem,
|
||||
state);
|
||||
}
|
||||
}
|
||||
|
||||
private void createArticleXml(final ArticleInJournal article,
|
||||
final Integer order,
|
||||
final Element articlesElem,
|
||||
final PageState state) {
|
||||
final XmlGenerator generator = new XmlGenerator(article);
|
||||
generator.addItemAttribute("order", order.toString());
|
||||
generator.generateXML(state, articlesElem, "");
|
||||
}
|
||||
|
||||
public void addGlobalStateParams(final Page page) {
|
||||
//nothing
|
||||
}
|
||||
|
||||
private class XmlGenerator extends SimpleXMLGenerator {
|
||||
|
||||
private final ContentItem item;
|
||||
|
||||
public XmlGenerator(final ContentItem item) {
|
||||
super();
|
||||
this.item = item;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected ContentItem getContentItem(final PageState state) {
|
||||
return item;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,95 @@
|
|||
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.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;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Jens Pelzetter
|
||||
* @version $Id$
|
||||
*/
|
||||
public class ProceedingsExtraXmlGenerator implements ExtraXMLGenerator {
|
||||
|
||||
public void generateXML(final ContentItem item,
|
||||
final Element element,
|
||||
final PageState state) {
|
||||
if (!(item instanceof Proceedings)) {
|
||||
throw new IllegalArgumentException(String.format(
|
||||
"ExtraXMLGenerator '%s' only supports items of type '%s'.",
|
||||
getClass().getName(),
|
||||
Proceedings.class.getName()));
|
||||
}
|
||||
|
||||
final Proceedings proceedings = (Proceedings) item;
|
||||
createOrganizerXml(proceedings, element, state);
|
||||
createPapersXml(proceedings, element, state);
|
||||
}
|
||||
|
||||
private void createOrganizerXml(final Proceedings proceedings,
|
||||
final Element parent,
|
||||
final PageState state) {
|
||||
final GenericOrganizationalUnit organizer =
|
||||
proceedings.getOrganizerOfConference(GlobalizationHelper.
|
||||
getNegotiatedLocale().getLanguage());
|
||||
if (organizer != null) {
|
||||
final Element organizerElem = parent.newChildElement("organizer");
|
||||
final XmlGenerator generator = new XmlGenerator(organizer);
|
||||
generator.generateXML(state, organizerElem, "");
|
||||
}
|
||||
}
|
||||
|
||||
private void createPapersXml(final Proceedings proceedings,
|
||||
final Element parent,
|
||||
final PageState state) {
|
||||
final InProceedingsCollection papers = proceedings.getPapers();
|
||||
if ((papers == null) || papers.isEmpty()) {
|
||||
return;
|
||||
}
|
||||
|
||||
final Element papersElem = parent.newChildElement("papers");
|
||||
while(papers.next()) {
|
||||
createPaperXml(papers.getPaper(GlobalizationHelper.getNegotiatedLocale().getLanguage()),
|
||||
papers.getPaperOrder(),
|
||||
papersElem,
|
||||
state);
|
||||
}
|
||||
}
|
||||
|
||||
private void createPaperXml(final InProceedings paper,
|
||||
final Integer order,
|
||||
final Element papersElem,
|
||||
final PageState state) {
|
||||
final XmlGenerator generator = new XmlGenerator(paper);
|
||||
generator.addItemAttribute("order", order.toString());
|
||||
generator.generateXML(state, papersElem, "");
|
||||
}
|
||||
|
||||
public void addGlobalStateParams(final Page page) {
|
||||
//nothing
|
||||
}
|
||||
|
||||
private class XmlGenerator extends SimpleXMLGenerator {
|
||||
|
||||
private final ContentItem item;
|
||||
|
||||
public XmlGenerator(final ContentItem item) {
|
||||
super();
|
||||
this.item = item;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected ContentItem getContentItem(final PageState state) {
|
||||
return item;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,166 @@
|
|||
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.AuthorshipCollection;
|
||||
import com.arsdigita.cms.contenttypes.GenericOrganizationalUnit;
|
||||
import com.arsdigita.cms.contenttypes.GenericPerson;
|
||||
import com.arsdigita.cms.contenttypes.Publication;
|
||||
import com.arsdigita.cms.contenttypes.PublicationGenericOrganizationalsUnitCollection;
|
||||
import com.arsdigita.cms.contenttypes.Series;
|
||||
import com.arsdigita.cms.contenttypes.SeriesCollection;
|
||||
import com.arsdigita.cms.dispatcher.SimpleXMLGenerator;
|
||||
import com.arsdigita.cms.scipublications.exporter.PublicationFormat;
|
||||
import com.arsdigita.cms.scipublications.exporter.SciPublicationsExporters;
|
||||
import com.arsdigita.globalization.GlobalizationHelper;
|
||||
import com.arsdigita.xml.Element;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Jens Pelzetter
|
||||
* @version $Id$
|
||||
*/
|
||||
public class PublicationExtraXmlGenerator implements ExtraXMLGenerator {
|
||||
|
||||
public void generateXML(final ContentItem item,
|
||||
final Element element,
|
||||
final PageState state) {
|
||||
if (!(item instanceof Publication)) {
|
||||
throw new IllegalArgumentException(String.format(
|
||||
"ExtraXMLGenerator '%s' only supports items of type '%s'.",
|
||||
getClass().getName(),
|
||||
Publication.class.getName()));
|
||||
}
|
||||
|
||||
final Publication publication = (Publication) item;
|
||||
createAuthorsXml(publication, element, state);
|
||||
createOrgaUnitsXml(publication, element, state);
|
||||
createSeriesXml(publication, element, state);
|
||||
|
||||
final List<PublicationFormat> formats = SciPublicationsExporters.
|
||||
getInstance().getSupportedFormats();
|
||||
|
||||
for (PublicationFormat format : formats) {
|
||||
createExportLink(format, element, (Publication) item, state);
|
||||
}
|
||||
}
|
||||
|
||||
private void createAuthorsXml(final Publication publication,
|
||||
final Element parent,
|
||||
final PageState state) {
|
||||
final AuthorshipCollection authors = publication.getAuthors();
|
||||
if ((authors == null) || authors.isEmpty()) {
|
||||
return;
|
||||
}
|
||||
|
||||
final Element authorsElem = parent.newChildElement("authors");
|
||||
while (authors.next()) {
|
||||
createAuthorXml(authors.getAuthor(),
|
||||
authors.isEditor(),
|
||||
authors.getAuthorshipOrder(),
|
||||
authorsElem,
|
||||
state);
|
||||
}
|
||||
}
|
||||
|
||||
private void createAuthorXml(final GenericPerson author,
|
||||
final Boolean isAuthor,
|
||||
final Integer order,
|
||||
final Element authorsElem,
|
||||
final PageState state) {
|
||||
final XmlGenerator generator = new XmlGenerator(author);
|
||||
generator.addItemAttribute("isEditor", isAuthor.toString());
|
||||
generator.addItemAttribute("order", order.toString());
|
||||
generator.generateXML(state, authorsElem, "");
|
||||
}
|
||||
|
||||
private void createOrgaUnitsXml(final Publication publication,
|
||||
final Element parent,
|
||||
final PageState state) {
|
||||
final PublicationGenericOrganizationalsUnitCollection orgaunits =
|
||||
publication.
|
||||
getOrganizationalUnits();
|
||||
if ((orgaunits == null) || orgaunits.isEmpty()) {
|
||||
return;
|
||||
}
|
||||
|
||||
final Element orgaunitsElem = parent.newChildElement(
|
||||
"organizationalunits");
|
||||
while (orgaunits.next()) {
|
||||
createOrgaUnitXml(orgaunits.getOrganizationalUnit(GlobalizationHelper.
|
||||
getNegotiatedLocale().getLanguage()),
|
||||
orgaunitsElem,
|
||||
state);
|
||||
}
|
||||
}
|
||||
|
||||
private void createOrgaUnitXml(final GenericOrganizationalUnit orgaunit,
|
||||
final Element orgaunitsElem,
|
||||
final PageState state) {
|
||||
final XmlGenerator generator = new XmlGenerator(orgaunit);
|
||||
generator.generateXML(state, orgaunitsElem, "");
|
||||
}
|
||||
|
||||
private void createSeriesXml(final Publication publication,
|
||||
final Element parent,
|
||||
final PageState state) {
|
||||
final SeriesCollection series = publication.getSeries();
|
||||
if ((series == null) || series.isEmpty()) {
|
||||
return;
|
||||
}
|
||||
|
||||
final Element seriesElem = parent.newChildElement("series");
|
||||
while (series.next()) {
|
||||
createSeriesElemXml(series.getSeries(GlobalizationHelper.
|
||||
getNegotiatedLocale().getLanguage()),
|
||||
seriesElem,
|
||||
state);
|
||||
}
|
||||
}
|
||||
|
||||
private void createSeriesElemXml(final Series series,
|
||||
final Element seriesElem,
|
||||
final PageState state) {
|
||||
final XmlGenerator generator = new XmlGenerator(series);
|
||||
generator.generateXML(state, seriesElem, "");
|
||||
}
|
||||
|
||||
private void createExportLink(final PublicationFormat format,
|
||||
final Element parent,
|
||||
final Publication publication,
|
||||
final PageState state) {
|
||||
final Element exportLinkElem = parent.newChildElement(
|
||||
"publicationExportLink");
|
||||
final Element formatKeyElem =
|
||||
exportLinkElem.newChildElement("formatKey");
|
||||
formatKeyElem.setText(format.getName().toLowerCase());
|
||||
final Element formatNameElem = exportLinkElem.newChildElement(
|
||||
"formatName");
|
||||
formatNameElem.setText(format.getName());
|
||||
final Element publicationIdElem = exportLinkElem.newChildElement(
|
||||
"publicationId");
|
||||
publicationIdElem.setText(publication.getID().toString());
|
||||
}
|
||||
|
||||
public void addGlobalStateParams(final Page page) {
|
||||
//Nothing for now
|
||||
}
|
||||
|
||||
private class XmlGenerator extends SimpleXMLGenerator {
|
||||
|
||||
private final ContentItem item;
|
||||
|
||||
public XmlGenerator(final ContentItem item) {
|
||||
super();
|
||||
this.item = item;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected ContentItem getContentItem(final PageState state) {
|
||||
return item;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,68 @@
|
|||
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.PublicationWithPublisher;
|
||||
import com.arsdigita.cms.contenttypes.Publisher;
|
||||
import com.arsdigita.cms.dispatcher.SimpleXMLGenerator;
|
||||
import com.arsdigita.globalization.GlobalizationHelper;
|
||||
import com.arsdigita.xml.Element;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Jens Pelzetter
|
||||
* @version $Id$
|
||||
*/
|
||||
public class PublicationWithPublisherExtraXmlGenerator
|
||||
implements ExtraXMLGenerator {
|
||||
|
||||
public void generateXML(final ContentItem item,
|
||||
final Element element,
|
||||
final PageState state) {
|
||||
if (!(item instanceof PublicationWithPublisher)) {
|
||||
throw new IllegalArgumentException(String.format(
|
||||
"ExtraXMLGenerator '%s' only supports items of type '%s'.",
|
||||
getClass().getName(),
|
||||
PublicationWithPublisher.class.getName()));
|
||||
}
|
||||
|
||||
final PublicationWithPublisher publication =
|
||||
(PublicationWithPublisher) item;
|
||||
createPublisherXml(publication, element, state);
|
||||
}
|
||||
|
||||
private void createPublisherXml(final PublicationWithPublisher publication,
|
||||
final Element parent,
|
||||
final PageState state) {
|
||||
final Publisher publisher =
|
||||
publication.getPublisher(GlobalizationHelper.
|
||||
getNegotiatedLocale().getLanguage());
|
||||
if (publisher == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
final XmlGenerator generator = new XmlGenerator(publisher);
|
||||
generator.generateXML(state, parent, "");
|
||||
}
|
||||
|
||||
public void addGlobalStateParams(final Page p) {
|
||||
//nothing
|
||||
}
|
||||
|
||||
private class XmlGenerator extends SimpleXMLGenerator {
|
||||
|
||||
private final ContentItem item;
|
||||
|
||||
public XmlGenerator(final ContentItem item) {
|
||||
super();
|
||||
this.item = item;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected ContentItem getContentItem(final PageState state) {
|
||||
return item;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,26 @@
|
|||
package com.arsdigita.cms.contenttypes.ui;
|
||||
|
||||
import com.arsdigita.cms.ContentItem;
|
||||
import com.arsdigita.cms.ItemSelectionModel;
|
||||
import com.arsdigita.cms.contenttypes.PublicationBundle;
|
||||
import com.arsdigita.cms.contenttypes.UnPublishedBundle;
|
||||
import com.arsdigita.cms.ui.authoring.CreationSelector;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Jens Pelzetter
|
||||
* @version $Id$
|
||||
*/
|
||||
public class UnPublishedCreate extends PublicationCreate {
|
||||
|
||||
public UnPublishedCreate(final ItemSelectionModel itemModel,
|
||||
final CreationSelector parent) {
|
||||
super(itemModel, parent);
|
||||
}
|
||||
|
||||
@Override
|
||||
public PublicationBundle createBundle(final ContentItem primary) {
|
||||
return new UnPublishedBundle(primary);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,65 @@
|
|||
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.GenericOrganizationalUnit;
|
||||
import com.arsdigita.cms.contenttypes.UnPublished;
|
||||
import com.arsdigita.cms.dispatcher.SimpleXMLGenerator;
|
||||
import com.arsdigita.globalization.GlobalizationHelper;
|
||||
import com.arsdigita.xml.Element;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Jens Pelzetter
|
||||
* @version $Id$
|
||||
*/
|
||||
public class UnPublishedExtraXmlGenerator implements ExtraXMLGenerator {
|
||||
|
||||
public void generateXML(final ContentItem item,
|
||||
final Element element,
|
||||
final PageState state) {
|
||||
if (!(item instanceof UnPublished)) {
|
||||
throw new IllegalArgumentException(String.format(
|
||||
"ExtraXMLGenerator '%s' only supports items of type '%s'.",
|
||||
getClass().getName(),
|
||||
UnPublished.class.getName()));
|
||||
}
|
||||
|
||||
final UnPublished unPublished = (UnPublished) item;
|
||||
createOrganizationXml(unPublished, element, state);
|
||||
}
|
||||
|
||||
private void createOrganizationXml(final UnPublished unPublished,
|
||||
final Element parent,
|
||||
final PageState state) {
|
||||
final GenericOrganizationalUnit orga =
|
||||
unPublished.getOrganization(GlobalizationHelper.
|
||||
getNegotiatedLocale().getLanguage());
|
||||
if (orga != null) {
|
||||
final Element orgaElem = parent.newChildElement("organization");
|
||||
final XmlGenerator generator = new XmlGenerator(orga);
|
||||
generator.generateXML(state, orgaElem, "");
|
||||
}
|
||||
}
|
||||
|
||||
public void addGlobalStateParams(final Page page) {
|
||||
//nothing
|
||||
}
|
||||
|
||||
private class XmlGenerator extends SimpleXMLGenerator {
|
||||
|
||||
private final ContentItem item;
|
||||
|
||||
public XmlGenerator(final ContentItem item) {
|
||||
super();
|
||||
this.item = item;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected ContentItem getContentItem(final PageState state) {
|
||||
return item;
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue