- Journal ist nicht mehr Publication abgeleitet, sondern direkt von ContentPage (Tickets #1061 und #1063)
- Assoziation Journal <-> ArticleInJournal optimiert (Ticket #1116) git-svn-id: https://svn.libreccm.org/ccm/trunk@1571 8810af33-2d31-482b-a856-94f89814c4dfmaster
parent
674402d624
commit
cec7fb12a2
|
|
@ -13,7 +13,6 @@ import com.arsdigita.bebop.event.FormSectionEvent;
|
|||
import com.arsdigita.bebop.parameters.DateParameter;
|
||||
import com.arsdigita.bebop.parameters.ParameterModel;
|
||||
import com.arsdigita.bebop.util.GlobalizationUtil;
|
||||
import com.arsdigita.cms.ContentBundle;
|
||||
import com.arsdigita.cms.ContentPage;
|
||||
import com.arsdigita.cms.ContentSection;
|
||||
import com.arsdigita.cms.ContentType;
|
||||
|
|
|
|||
|
|
@ -31,5 +31,8 @@ object type ArticleInCollectedVolume extends Publication {
|
|||
|
||||
|
||||
reference key (ct_article_in_collected_volume.article_id);
|
||||
|
||||
}
|
||||
|
||||
object type ArticleInJournalBundle extends PublicationBundle {
|
||||
reference key (ct_article_in_journal_bundles.bundle_id);
|
||||
}
|
||||
|
|
@ -20,27 +20,33 @@
|
|||
model com.arsdigita.cms.contenttypes;
|
||||
|
||||
import com.arsdigita.cms.ContentPage;
|
||||
import com.arsdigita.cms.ContentBundle;
|
||||
|
||||
//PDL definition for a journal
|
||||
object type Journal extends Publication {
|
||||
object type Journal extends ContentPage {
|
||||
|
||||
Integer[0..1] firstYear = ct_journal.firstyear INTEGER;
|
||||
Integer[0..1] lastYear = ct_journal.lastyear INTEGER;
|
||||
String[0..1] issn = ct_journal.issn VARCHAR(9);
|
||||
|
||||
reference key (ct_journal.journal_id);
|
||||
}
|
||||
|
||||
object type JournalBundle extends ContentBundle {
|
||||
reference key (ct_journal_bundles.bundle_id);
|
||||
}
|
||||
|
||||
association {
|
||||
|
||||
Journal[0..n] journal = join ct_article_in_journal.article_in_journal_id
|
||||
to ct_journal_article_map.article_in_journal_id,
|
||||
join ct_journal_article_map.journal_id
|
||||
to ct_journal.journal_id;
|
||||
JournalBundle[0..n] journal = join ct_article_in_journal_bundles.bundle_id
|
||||
to ct_journal_article_map.article_in_journal_id,
|
||||
join ct_journal_article_map.journal_id
|
||||
to ct_journal_bundles.bundle_id;
|
||||
|
||||
ArticleInJournal[0..n] articles = join ct_journal.journal_id
|
||||
ArticleInJournalBundle[0..n] articles = join ct_journal_bundles.bundle_id
|
||||
to ct_journal_article_map.journal_id,
|
||||
join ct_journal_article_map.article_in_journal_id
|
||||
to ct_article_in_journal.article_in_journal_id;
|
||||
to ct_article_in_journal_bundles.bundle_id;
|
||||
|
||||
Integer[0..1] articleOrder = ct_journal_article_map.article_order INTEGER;
|
||||
}
|
||||
|
|
@ -10,7 +10,7 @@
|
|||
objectType="com.arsdigita.cms.contenttypes.ArticleInJournal"
|
||||
classname="com.arsdigita.cms.contenttypes.ArticleInJournal">
|
||||
|
||||
<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.articleInJournal_properties.title"
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@
|
|||
objectType="com.arsdigita.cms.contenttypes.Journal"
|
||||
classname="com.arsdigita.cms.contenttypes.Journal">
|
||||
|
||||
<ctd:authoring-kit createComponent="com.arsdigita.cms.contenttypes.ui.PublicationCreate">
|
||||
<ctd:authoring-kit createComponent="com.arsdigita.cms.contenttypes.ui.JournalCreate">
|
||||
|
||||
<ctd:authoring-step
|
||||
labelKey="publications.ui.articleInJournal_properties.title"
|
||||
|
|
|
|||
|
|
@ -31,6 +31,7 @@ import java.util.Date;
|
|||
/**
|
||||
*
|
||||
* @author Jens Pelzetter
|
||||
* @version $Id$
|
||||
*/
|
||||
public class ArticleInJournal extends Publication {
|
||||
|
||||
|
|
@ -64,6 +65,10 @@ public class ArticleInJournal extends Publication {
|
|||
super(type);
|
||||
}
|
||||
|
||||
public ArticleInJournalBundle getArticleInJournalBundle() {
|
||||
return (ArticleInJournalBundle) getContentBundle();
|
||||
}
|
||||
|
||||
public Integer getVolume() {
|
||||
return (Integer) get(VOLUME);
|
||||
}
|
||||
|
|
@ -104,46 +109,55 @@ public class ArticleInJournal extends Publication {
|
|||
set(PUBLICATION_DATE, publicationDate);
|
||||
}
|
||||
|
||||
/* public Boolean getReviewed() {
|
||||
return (Boolean) get(REVIEWED);
|
||||
}
|
||||
|
||||
public void setReviewed(Boolean reviewed) {
|
||||
set(REVIEWED, reviewed);
|
||||
}*/
|
||||
/* public Boolean getReviewed() {
|
||||
return (Boolean) get(REVIEWED);
|
||||
}
|
||||
|
||||
public void setReviewed(Boolean reviewed) {
|
||||
set(REVIEWED, reviewed);
|
||||
}*/
|
||||
public Journal getJournal() {
|
||||
DataCollection collection;
|
||||
// DataCollection collection;
|
||||
//
|
||||
// collection = (DataCollection) get(JOURNAL);
|
||||
//
|
||||
// if (collection.size() == 0) {
|
||||
// return null;
|
||||
// } else {
|
||||
// DataObject dobj;
|
||||
//
|
||||
// collection.next();
|
||||
// dobj = collection.getDataObject();
|
||||
// collection.close();
|
||||
//
|
||||
// return (Journal) DomainObjectFactory.newInstance(dobj);
|
||||
// }
|
||||
|
||||
collection = (DataCollection) get(JOURNAL);
|
||||
|
||||
if (collection.size() == 0) {
|
||||
return null;
|
||||
} else {
|
||||
DataObject dobj;
|
||||
|
||||
collection.next();
|
||||
dobj = collection.getDataObject();
|
||||
collection.close();
|
||||
|
||||
return (Journal) DomainObjectFactory.newInstance(dobj);
|
||||
}
|
||||
return (Journal) getArticleInJournalBundle().getJournal().
|
||||
getPrimaryInstance();
|
||||
}
|
||||
|
||||
public void setJournal(Journal journal) {
|
||||
Journal oldJournal;
|
||||
public Journal getJournal(final String language) {
|
||||
return (Journal) getArticleInJournalBundle().getJournal().getInstance(
|
||||
language);
|
||||
}
|
||||
|
||||
oldJournal = getJournal();
|
||||
if (oldJournal != null) {
|
||||
remove(JOURNAL, oldJournal);
|
||||
}
|
||||
public void setJournal(final Journal journal) {
|
||||
// Journal oldJournal;
|
||||
//
|
||||
// oldJournal = getJournal();
|
||||
// if (oldJournal != null) {
|
||||
// remove(JOURNAL, oldJournal);
|
||||
// }
|
||||
//
|
||||
// if (journal != null) {
|
||||
// Assert.exists(journal, Journal.class);
|
||||
// DataObject link = add(JOURNAL, journal);
|
||||
// link.set(Journal.ARTICLE_ORDER,
|
||||
// Integer.valueOf((int) journal.getArticles().size()));
|
||||
// link.save();
|
||||
// }
|
||||
|
||||
if (journal != null) {
|
||||
Assert.exists(journal, Journal.class);
|
||||
DataObject link = add(JOURNAL, journal);
|
||||
link.set(Journal.ARTICLE_ORDER,
|
||||
Integer.valueOf((int) journal.getArticles().size()));
|
||||
link.save();
|
||||
}
|
||||
}
|
||||
getArticleInJournalBundle().setJournal(journal);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,128 @@
|
|||
package com.arsdigita.cms.contenttypes;
|
||||
|
||||
import com.arsdigita.cms.ContentBundle;
|
||||
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 ArticleInJournalBundle extends PublicationBundle {
|
||||
|
||||
public static final String BASE_DATA_OBJECT_TYPE = "com.arsdigita.cms.contentttypes.ArticleInJournalBundle";
|
||||
public static final String JOURNAL = "JOURNAL";
|
||||
|
||||
public ArticleInJournalBundle(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 ArticleInJournalBundle(final OID oid)
|
||||
throws DataObjectNotFoundException {
|
||||
super(oid);
|
||||
}
|
||||
|
||||
public ArticleInJournalBundle(final BigDecimal id)
|
||||
throws DataObjectNotFoundException {
|
||||
super(new OID(BASE_DATA_OBJECT_TYPE, id));
|
||||
}
|
||||
|
||||
public ArticleInJournalBundle(final DataObject dobj) {
|
||||
super(dobj);
|
||||
}
|
||||
|
||||
public ArticleInJournalBundle(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 ArticleInJournalBundle articleBundle = (ArticleInJournalBundle) source;
|
||||
|
||||
if (JOURNAL.equals(attribute)) {
|
||||
final DataCollection journals = (DataCollection) articleBundle.get(JOURNAL);
|
||||
|
||||
while(journals.next()) {
|
||||
createJournalAssoc(journals);
|
||||
}
|
||||
|
||||
return true;
|
||||
} else {
|
||||
return super.copyProperty(source, property, copier);
|
||||
}
|
||||
} else {
|
||||
return super.copyProperty(source, property, copier);
|
||||
}
|
||||
}
|
||||
|
||||
private void createJournalAssoc(final DataCollection journals) {
|
||||
final JournalBundle draftJournal = (JournalBundle) DomainObjectFactory.newInstance(journals.getDataObject());
|
||||
final JournalBundle liveJournal = (JournalBundle) draftJournal.getLiveVersion();
|
||||
|
||||
if (liveJournal != null) {
|
||||
final DataObject link = add(JOURNAL, liveJournal);
|
||||
|
||||
link.set(JournalBundle.ARTICLE_ORDER,
|
||||
journals.get(ArticleInJournalCollection.LINKORDER));
|
||||
|
||||
link.save();
|
||||
}
|
||||
}
|
||||
|
||||
public JournalBundle getJournal() {
|
||||
final DataCollection collection = (DataCollection) get(JOURNAL);
|
||||
|
||||
if (collection.size() == 0) {
|
||||
return null;
|
||||
} else {
|
||||
final DataObject dobj;
|
||||
|
||||
collection.next();
|
||||
dobj = collection.getDataObject();
|
||||
collection.close();
|
||||
|
||||
return (JournalBundle) DomainObjectFactory.newInstance(dobj);
|
||||
}
|
||||
}
|
||||
|
||||
public void setJournal(final Journal journal) {
|
||||
final JournalBundle oldJournal = getJournal();
|
||||
|
||||
if (oldJournal != null) {
|
||||
remove(JOURNAL, oldJournal);
|
||||
}
|
||||
|
||||
if (journal != null) {
|
||||
Assert.exists(journal, JournalBundle.class);
|
||||
|
||||
final DataObject link = add(JOURNAL, journal.getJournalBundle());
|
||||
link.set(JournalBundle.ARTICLE_ORDER,
|
||||
Integer.valueOf((int) journal.getArticles().size()));
|
||||
link.save();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -19,6 +19,7 @@
|
|||
*/
|
||||
package com.arsdigita.cms.contenttypes;
|
||||
|
||||
import com.arsdigita.cms.ContentBundle;
|
||||
import com.arsdigita.domain.DomainCollection;
|
||||
import com.arsdigita.domain.DomainObjectFactory;
|
||||
import com.arsdigita.persistence.DataCollection;
|
||||
|
|
@ -28,6 +29,7 @@ import org.apache.log4j.Logger;
|
|||
/**
|
||||
*
|
||||
* @author Jens Pelzetter
|
||||
* @version $Id$
|
||||
*/
|
||||
public class ArticleInJournalCollection extends DomainCollection {
|
||||
|
||||
|
|
@ -150,7 +152,18 @@ public class ArticleInJournalCollection extends DomainCollection {
|
|||
}
|
||||
|
||||
public ArticleInJournal getArticle() {
|
||||
return (ArticleInJournal) DomainObjectFactory.newInstance(m_dataCollection.
|
||||
getDataObject());
|
||||
//return (ArticleInJournal) DomainObjectFactory.newInstance(m_dataCollection.
|
||||
// getDataObject());
|
||||
final ContentBundle bundle = (ContentBundle) DomainObjectFactory.
|
||||
newInstance(m_dataCollection.getDataObject());
|
||||
|
||||
return (ArticleInJournal) bundle.getPrimaryInstance();
|
||||
}
|
||||
|
||||
public ArticleInJournal getArticle(final String language) {
|
||||
final ContentBundle bundle = (ContentBundle) DomainObjectFactory.
|
||||
newInstance(m_dataCollection.getDataObject());
|
||||
|
||||
return (ArticleInJournal) bundle.getInstance(language);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -19,20 +19,21 @@
|
|||
*/
|
||||
package com.arsdigita.cms.contenttypes;
|
||||
|
||||
import com.arsdigita.cms.ContentPage;
|
||||
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;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Jens Pelzetter
|
||||
* @version $Id$
|
||||
*/
|
||||
public class Journal extends Publication {
|
||||
public class Journal extends ContentPage {
|
||||
|
||||
public static final String ISSN = "issn";
|
||||
public static final String FIRST_YEAR = "firstYear";
|
||||
public static final String LAST_YEAR = "lastYear";
|
||||
public static final String ARTICLES = "articles";
|
||||
public static final String ARTICLE_ORDER = "articleOrder";
|
||||
|
|
@ -43,53 +44,70 @@ public class Journal extends Publication {
|
|||
this(BASE_DATA_OBJECT_TYPE);
|
||||
}
|
||||
|
||||
public Journal(BigDecimal id) throws DataObjectNotFoundException {
|
||||
public Journal(final BigDecimal id) throws DataObjectNotFoundException {
|
||||
this(new OID(BASE_DATA_OBJECT_TYPE, id));
|
||||
}
|
||||
|
||||
public Journal(OID oid) throws DataObjectNotFoundException {
|
||||
public Journal(final OID oid) throws DataObjectNotFoundException {
|
||||
super(oid);
|
||||
}
|
||||
|
||||
public Journal(DataObject dobj) {
|
||||
public Journal(final DataObject dobj) {
|
||||
super(dobj);
|
||||
}
|
||||
|
||||
public Journal(String type) {
|
||||
public Journal(final String type) {
|
||||
super(type);
|
||||
}
|
||||
|
||||
public JournalBundle getJournalBundle() {
|
||||
return (JournalBundle) getContentBundle();
|
||||
}
|
||||
|
||||
public String getISSN() {
|
||||
return (String) get(ISSN);
|
||||
}
|
||||
|
||||
public void setISSN(String issn) {
|
||||
public void setISSN(final String issn) {
|
||||
set(ISSN, issn);
|
||||
}
|
||||
|
||||
public Integer getFirstYear() {
|
||||
return (Integer) get(FIRST_YEAR);
|
||||
}
|
||||
|
||||
public void setFirstYear(final Integer firstYear) {
|
||||
set(FIRST_YEAR, firstYear);
|
||||
}
|
||||
|
||||
public Integer getLastYear() {
|
||||
return (Integer) get(LAST_YEAR);
|
||||
}
|
||||
|
||||
public void setLastYear(Integer lastYear) {
|
||||
public void setLastYear(final Integer lastYear) {
|
||||
set(LAST_YEAR, lastYear);
|
||||
}
|
||||
|
||||
public ArticleInJournalCollection getArticles() {
|
||||
return new ArticleInJournalCollection((DataCollection) get(ARTICLES));
|
||||
//return new ArticleInJournalCollection((DataCollection) get(ARTICLES));
|
||||
return getJournalBundle().getArticles();
|
||||
}
|
||||
|
||||
public void addArticle(ArticleInJournal article) {
|
||||
Assert.exists(article, ArticleInJournal.class);
|
||||
public void addArticle(final ArticleInJournal article) {
|
||||
//Assert.exists(article, ArticleInJournal.class);
|
||||
|
||||
DataObject link = add(ARTICLES, article);
|
||||
//DataObject link = add(ARTICLES, article);
|
||||
|
||||
link.set(ARTICLE_ORDER, Integer.valueOf((int) getArticles().size()));
|
||||
//link.set(ARTICLE_ORDER, Integer.valueOf((int) getArticles().size()));
|
||||
|
||||
getJournalBundle().addArticle(article);
|
||||
}
|
||||
|
||||
public void removeArticle(ArticleInJournal article) {
|
||||
Assert.exists(article, ArticleInCollectedVolume.class);
|
||||
remove(ARTICLES, article);
|
||||
//Assert.exists(article, ArticleInCollectedVolume.class);
|
||||
//remove(ARTICLES, article);
|
||||
|
||||
getJournalBundle().removeArticle(article);
|
||||
}
|
||||
|
||||
public boolean hasArticles() {
|
||||
|
|
|
|||
|
|
@ -0,0 +1,118 @@
|
|||
package com.arsdigita.cms.contenttypes;
|
||||
|
||||
import com.arsdigita.cms.ContentBundle;
|
||||
import com.arsdigita.cms.ContentItem;
|
||||
import com.arsdigita.cms.CustomCopy;
|
||||
import com.arsdigita.cms.ItemCopier;
|
||||
import com.arsdigita.domain.DataObjectNotFoundException;
|
||||
import com.arsdigita.domain.DomainObject;
|
||||
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 JournalBundle extends ContentBundle {
|
||||
|
||||
public static final String BASE_DATA_OBJECT_TYPE =
|
||||
"com.arsdigita.cms.contenttypes.JournalBundle";
|
||||
public static final String ARTICLES = "articles";
|
||||
public static final String ARTICLE_ORDER = "articleOrder";
|
||||
|
||||
public JournalBundle(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 JournalBundle(final OID oid) throws DataObjectNotFoundException {
|
||||
super(oid);
|
||||
}
|
||||
|
||||
public JournalBundle(final BigDecimal id)
|
||||
throws DataObjectNotFoundException {
|
||||
super(new OID(BASE_DATA_OBJECT_TYPE, id));
|
||||
}
|
||||
|
||||
public JournalBundle(final DataObject dobj) {
|
||||
super(dobj);
|
||||
}
|
||||
|
||||
public JournalBundle(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 JournalBundle journalBundle = (JournalBundle) source;
|
||||
|
||||
if (ARTICLES.equals(attribute)) {
|
||||
final DataCollection articles = (DataCollection) journalBundle.
|
||||
get(ARTICLES);
|
||||
|
||||
while (articles.next()) {
|
||||
createArticleAssoc(articles);
|
||||
}
|
||||
|
||||
return true;
|
||||
} else {
|
||||
return super.copyProperty(source, property, copier);
|
||||
}
|
||||
} else {
|
||||
return super.copyProperty(source, property, copier);
|
||||
}
|
||||
}
|
||||
|
||||
private void createArticleAssoc(final DataCollection articles) {
|
||||
final ArticleInJournalBundle draftArticle =
|
||||
(ArticleInJournalBundle) DomainObjectFactory.
|
||||
newInstance(articles.getDataObject());
|
||||
final ArticleInJournalBundle liveArticle =
|
||||
(ArticleInJournalBundle) draftArticle.
|
||||
getLiveVersion();
|
||||
|
||||
if (liveArticle != null) {
|
||||
final DataObject link = add(ARTICLES, liveArticle);
|
||||
|
||||
link.set(ARTICLE_ORDER, articles.get(
|
||||
ArticleInJournalCollection.LINKORDER));
|
||||
|
||||
link.save();
|
||||
}
|
||||
}
|
||||
|
||||
public ArticleInJournalCollection getArticles() {
|
||||
return new ArticleInJournalCollection((DataCollection) get(ARTICLES));
|
||||
}
|
||||
|
||||
public void addArticle(final ArticleInJournal article) {
|
||||
Assert.exists(article, ArticleInJournal.class);
|
||||
|
||||
final DataObject link = add(ARTICLES,
|
||||
article.getArticleInJournalBundle());
|
||||
link.set(ARTICLE_ORDER, Integer.valueOf((int) getArticles().size()));
|
||||
}
|
||||
|
||||
public void removeArticle(final ArticleInJournal article) {
|
||||
Assert.exists(article, ArticleInJournal.class);
|
||||
|
||||
remove(ARTICLES, article.getArticleInJournalBundle());
|
||||
}
|
||||
}
|
||||
|
|
@ -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.ArticleInJournalBundle;
|
||||
import com.arsdigita.cms.contenttypes.PublicationBundle;
|
||||
import com.arsdigita.cms.ui.authoring.CreationSelector;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Jens Pelzetter
|
||||
* @version $Id$
|
||||
*/
|
||||
public class ArticleInJournalCreate extends PublicationCreate {
|
||||
|
||||
public ArticleInJournalCreate(final ItemSelectionModel itemModel,
|
||||
final CreationSelector parent) {
|
||||
super(itemModel, parent);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected PublicationBundle createBundle(final ContentItem primary) {
|
||||
return new ArticleInJournalBundle(primary);
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,57 @@
|
|||
package com.arsdigita.cms.contenttypes.ui;
|
||||
|
||||
import com.arsdigita.bebop.FormData;
|
||||
import com.arsdigita.bebop.FormProcessException;
|
||||
import com.arsdigita.bebop.FormSection;
|
||||
import com.arsdigita.bebop.PageState;
|
||||
import com.arsdigita.bebop.event.FormSectionEvent;
|
||||
import com.arsdigita.cms.ContentItem;
|
||||
import com.arsdigita.cms.ContentPage;
|
||||
import com.arsdigita.cms.ContentSection;
|
||||
import com.arsdigita.cms.Folder;
|
||||
import com.arsdigita.cms.ItemSelectionModel;
|
||||
import com.arsdigita.cms.contenttypes.JournalBundle;
|
||||
import com.arsdigita.cms.ui.authoring.CreationSelector;
|
||||
import com.arsdigita.cms.ui.authoring.PageCreate;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Jens Pelzetter
|
||||
* @version $Id$
|
||||
*/
|
||||
public class JournalCreate extends PageCreate {
|
||||
|
||||
public JournalCreate(final ItemSelectionModel itemModel,
|
||||
final CreationSelector parent) {
|
||||
super(itemModel, parent);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void process(final FormSectionEvent fse) throws FormProcessException {
|
||||
final FormData data = fse.getFormData();
|
||||
final PageState state = fse.getPageState();
|
||||
final ContentSection section = m_parent.getContentSection(state);
|
||||
final Folder folder = m_parent.getFolder(state);
|
||||
|
||||
final ContentPage item = createContentPage(state);
|
||||
item.setLanguage((String) data.get(LANGUAGE));
|
||||
item.setName((String) data.get(NAME));
|
||||
if (!ContentSection.getConfig().getHideLaunchDate()) {
|
||||
item.setLaunchDate((Date) data.get(LAUNCH_DATE));
|
||||
}
|
||||
|
||||
final JournalBundle bundle = createBundle(item);
|
||||
bundle.setParent(folder);
|
||||
bundle.setContentSection(section);
|
||||
bundle.save();
|
||||
|
||||
m_workflowSection.applyWorkflow(state, item);
|
||||
|
||||
m_parent.editItem(state, item);
|
||||
}
|
||||
|
||||
protected JournalBundle createBundle(final ContentItem primary) {
|
||||
return new JournalBundle(primary);
|
||||
}
|
||||
}
|
||||
|
|
@ -86,9 +86,9 @@ public class PublicationXmlHelper {
|
|||
generateInternetArticleXml(publicationElem);
|
||||
}
|
||||
|
||||
if (publication instanceof Journal) {
|
||||
/*if (publication instanceof Journal) {
|
||||
generateJournalXml(publicationElem);
|
||||
}
|
||||
}*/
|
||||
|
||||
if (publication instanceof Monograph) {
|
||||
generateMonographXml(publicationElem);
|
||||
|
|
@ -294,15 +294,17 @@ public class PublicationXmlHelper {
|
|||
}
|
||||
|
||||
private void generateJournalLinkXml(final Element publicationElem,
|
||||
ArticleInJournal article) {
|
||||
Journal journal = article.getJournal();
|
||||
final ArticleInJournal article) {
|
||||
final Journal journal = article.getJournal();
|
||||
|
||||
if (journal != null) {
|
||||
Element journalElem = publicationElem.newChildElement("journal");
|
||||
PublicationXmlHelper xmlHelper = new PublicationXmlHelper(
|
||||
journalElem,
|
||||
journal);
|
||||
xmlHelper.generateXml(false);
|
||||
final Element journalElem = publicationElem.newChildElement("journal");
|
||||
//PublicationXmlHelper xmlHelper = new PublicationXmlHelper(
|
||||
// journalElem,
|
||||
// journal);
|
||||
//xmlHelper.generateXml(false);
|
||||
final Element nameElem = journalElem.newChildElement("name");
|
||||
nameElem.setText(journal.getTitle());
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -371,12 +373,12 @@ public class PublicationXmlHelper {
|
|||
|
||||
}
|
||||
|
||||
private void generateJournalXml(final Element publicationElem) {
|
||||
/*private void generateJournalXml(final Element publicationElem) {
|
||||
final Journal journal = (Journal) publication;
|
||||
|
||||
generateXmlElement(publicationElem, "lastYear", journal.getLastYear());
|
||||
generateXmlElement(publicationElem, "issn", journal.getISSN());
|
||||
}
|
||||
}*/
|
||||
|
||||
private void generateMonographXml(final Element publicationElem) {
|
||||
final Monograph monograph = (Monograph) publication;
|
||||
|
|
|
|||
Loading…
Reference in New Issue