diff --git a/ccm-cms/src/com/arsdigita/cms/ContentItem.java b/ccm-cms/src/com/arsdigita/cms/ContentItem.java
index 7ea2c5c81..964df7614 100755
--- a/ccm-cms/src/com/arsdigita/cms/ContentItem.java
+++ b/ccm-cms/src/com/arsdigita/cms/ContentItem.java
@@ -400,6 +400,29 @@ public class ContentItem extends VersionedACSObject implements CustomCopy {
super.set(key, value);
}
+ /**
+ * Public add for use by metadata forms.
+ *
+ * @param propertyName
+ * @param dobj
+ * @return
+ */
+ @Override
+ public DataObject add(String propertyName, DomainObject dobj) {
+ return super.add(propertyName, dobj);
+ }
+
+ /**
+ * Public remove for use by metadata forms
+ *
+ * @param propertyName
+ * @param dobj
+ */
+ @Override
+ public void remove(String propertyName, DomainObject dobj) {
+ super.remove(propertyName, dobj);
+ }
+
/**
* For new content items, sets the associated content type if it
* has not been already set.
diff --git a/ccm-core/src/com/arsdigita/persistence/DataObjectImpl.java b/ccm-core/src/com/arsdigita/persistence/DataObjectImpl.java
index b8cbd964b..089a29d98 100755
--- a/ccm-core/src/com/arsdigita/persistence/DataObjectImpl.java
+++ b/ccm-core/src/com/arsdigita/persistence/DataObjectImpl.java
@@ -43,7 +43,6 @@ import org.apache.log4j.Logger;
class DataObjectImpl implements DataObject {
final static Logger s_log = Logger.getLogger(DataObjectImpl.class);
-
private Session m_ssn;
private OID m_oid;
private List m_observers = new ArrayList();
@@ -53,10 +52,9 @@ class DataObjectImpl implements DataObject {
private boolean m_valid = true;
// originating transaction has terminated
private boolean m_transactionDone = false;
-
// package-scoped, written and read by Session
PropertyMap p_pMap;
- // package-scoped, read/written by Session
+ // package-scoped, read/written by Session
com.redhat.persistence.metadata.ObjectType p_objectType;
private final class ObserverEntry {
@@ -85,7 +83,7 @@ class DataObjectImpl implements DataObject {
// unschedule event from others
if (isWaiting(event)) {
for (Iterator it = m_waiting.entrySet().iterator();
- it.hasNext(); ) {
+ it.hasNext();) {
Map.Entry me = (Map.Entry) it.next();
DataEvent value = (DataEvent) me.getValue();
if (value.equals(event)) {
@@ -100,7 +98,9 @@ class DataObjectImpl implements DataObject {
}
public void scheduleEvent(DataEvent now, DataEvent waiting) {
- if (!isFiring(waiting)) { m_waiting.put(now, waiting); }
+ if (!isFiring(waiting)) {
+ m_waiting.put(now, waiting);
+ }
}
public DataEvent clearFiring(DataEvent event) {
@@ -124,7 +124,6 @@ class DataObjectImpl implements DataObject {
public String toString() {
return "Observer: " + m_observer;
}
-
}
DataObjectImpl(ObjectType type) {
@@ -143,9 +142,9 @@ class DataObjectImpl implements DataObject {
// disconnected data objects should use the session of the current
// thread
if (isDisconnected()) {
- throw new IllegalStateException
- ("There was an error in disconnected object implementation. "
- + "Disconnected data object can not access session.");
+ throw new IllegalStateException(
+ "There was an error in disconnected object implementation. "
+ + "Disconnected data object can not access session.");
}
// this checks that nondisconnected objects are not being used
@@ -156,10 +155,10 @@ class DataObjectImpl implements DataObject {
&& m_ssn != null
&& SessionManager.getSession() != null
&& m_ssn != SessionManager.getSession().getProtoSession()) {
- throw new PersistenceException
- ("This data object: (" + this + ") is being accessed from "
- + "another thread before its originating transaction has "
- + "terminated.");
+ throw new PersistenceException("This data object: (" + this
+ + ") is being accessed from "
+ + "another thread before its originating transaction has "
+ + "terminated.");
}
return m_ssn;
@@ -188,13 +187,26 @@ class DataObjectImpl implements DataObject {
validate();
Property prop = getObjectType().getProperty(property);
if (prop == null) {
- throw new PersistenceException
- ("no such property: " + property + " for " + this);
+ StringBuilder builder = new StringBuilder();
+ Iterator properties = getObjectType().getProperties();
+ while (properties.hasNext()) {
+ if (builder.length() > 0) {
+ builder.append(", ");
+ }
+
+ builder.append(((Property) properties.next()).getName());
+ }
+
+ throw new PersistenceException(String.format(
+ "no such property: %s for %s. Available properties: %s",
+ property.toString(),
+ this.toString(),
+ builder.toString()));
}
if (prop.isCollection()) {
if (isDisconnected()) {
- return new DataAssociationImpl
- (SessionManager.getSession(), this, prop);
+ return new DataAssociationImpl(SessionManager.getSession(), this,
+ prop);
} else {
return new DataAssociationImpl(getSession(), this, prop);
}
@@ -222,8 +234,8 @@ class DataObjectImpl implements DataObject {
DataObjectImpl dobj = (DataObjectImpl) obj;
dobj.disconnect();
if (!dobj.isValid()) {
- throw new IllegalStateException
- ("got invalid data object from session: " + obj);
+ throw new IllegalStateException("got invalid data object from session: "
+ + obj);
}
}
m_disconnect.put(prop, obj);
@@ -244,10 +256,14 @@ class DataObjectImpl implements DataObject {
}
private void doDisconnect() {
- if (m_disconnect != null) { return; }
+ if (m_disconnect != null) {
+ return;
+ }
m_disconnect = new HashMap();
// access the session directly as part of disconnection
- if (m_ssn.isDeleted(this)) { return; }
+ if (m_ssn.isDeleted(this)) {
+ return;
+ }
if (!m_manualDisconnect) {
if (s_log.isDebugEnabled()) {
s_log.debug("autodisconnect: " + getOID(), new Throwable());
@@ -255,10 +271,11 @@ class DataObjectImpl implements DataObject {
}
com.redhat.persistence.Session ssn =
- SessionManager.getSession().getProtoSession();
+ SessionManager.getSession().
+ getProtoSession();
for (Iterator it = getObjectType().getProperties();
- it.hasNext(); ) {
+ it.hasNext();) {
Property p = (Property) it.next();
if (!p.isCollection()
&& !p.isKeyProperty()
@@ -274,12 +291,14 @@ class DataObjectImpl implements DataObject {
public void set(String property, Object value) {
validateWrite();
// all entry points for empty strings need to be converted to null
- if ("".equals(value)) { value = null; }
+ if ("".equals(value)) {
+ value = null;
+ }
try {
Property prop = getObjectType().getProperty(property);
if (prop == null) {
- throw new PersistenceException
- ("no such property: " + property + " for " + this);
+ throw new PersistenceException("no such property: " + property
+ + " for " + this);
}
if (prop.isKeyProperty()) {
m_oid.set(property, value);
@@ -296,21 +315,27 @@ class DataObjectImpl implements DataObject {
public boolean isNew() {
validate();
- if (isDisconnected()) { return false; }
+ if (isDisconnected()) {
+ return false;
+ }
// handle calls to isNew before key is set
- return !m_oid.isInitialized() ||
- (getSsn().isNew(this) && !getSsn().isPersisted(this));
+ return !m_oid.isInitialized() || (getSsn().isNew(this) && !getSsn().
+ isPersisted(this));
}
public boolean isDeleted() {
validate();
- if (isDisconnected()) { return false; }
+ if (isDisconnected()) {
+ return false;
+ }
return getSsn().isDeleted(this);
}
public boolean isCommitted() {
validate();
- if (isDisconnected()) { return false; }
+ if (isDisconnected()) {
+ return false;
+ }
return m_oid.isInitialized() && !getSsn().isNew(this);
}
@@ -319,7 +344,9 @@ class DataObjectImpl implements DataObject {
}
void invalidate(boolean connectedOnly, boolean error) {
- if (!isValid()) { return; }
+ if (!isValid()) {
+ return;
+ }
// access the session directly as part of disconnection
if (error || (!connectedOnly && m_ssn.isModified(this))) {
@@ -336,8 +363,8 @@ class DataObjectImpl implements DataObject {
public void disconnect() {
if (!m_oid.isInitialized()) {
- throw new PersistenceException
- ("can't disconnect uninitialized: " + this);
+ throw new PersistenceException("can't disconnect uninitialized: "
+ + this);
}
m_manualDisconnect = true;
@@ -346,13 +373,17 @@ class DataObjectImpl implements DataObject {
public boolean isModified() {
validate();
- if (isDisconnected()) { return false; }
+ if (isDisconnected()) {
+ return false;
+ }
return !getSsn().isFlushed(this);
}
public boolean isPropertyModified(String name) {
validate();
- if (isDisconnected()) { return false; }
+ if (isDisconnected()) {
+ return false;
+ }
return !getSsn().isFlushed(this, convert(name));
}
@@ -369,8 +400,8 @@ class DataObjectImpl implements DataObject {
private void validate() {
if (!isValid()) {
if (s_log.isDebugEnabled()) {
- s_log.debug
- ("invalid data object invalidated at: ", m_invalidStack);
+ s_log.debug("invalid data object invalidated at: ",
+ m_invalidStack);
}
throw new PersistenceException("invalid data object: " + this);
}
@@ -379,8 +410,8 @@ class DataObjectImpl implements DataObject {
private void validateWrite() {
validate();
if (isDisconnected()) {
- throw new PersistenceException
- ("can not write to disconnected data object: " + this);
+ throw new PersistenceException("can not write to disconnected data object: "
+ + this);
}
}
@@ -398,7 +429,7 @@ class DataObjectImpl implements DataObject {
public void specialize(String subtypeName) {
validate();
ObjectType subtype =
- getSession().getMetadataRoot().getObjectType(subtypeName);
+ getSession().getMetadataRoot().getObjectType(subtypeName);
if (subtype == null) {
throw new PersistenceException("No such type: " + subtypeName);
@@ -442,9 +473,10 @@ class DataObjectImpl implements DataObject {
private void assertFlushed() {
// m_ssn.assertFlushed(this) doesn't work because of '~' properties
for (Iterator it = getObjectType().getProperties();
- it.hasNext(); ) {
+ it.hasNext();) {
Property p = (Property) it.next();
- s_log.debug(String.format("Asserting that property '%s' is flushed...", p.getName()));
+ s_log.debug(String.format(
+ "Asserting that property '%s' is flushed...", p.getName()));
if (!getSsn().isFlushed(this, C.prop(m_ssn.getRoot(), p))) {
// use m_ssn to generate the exception
getSsn().assertFlushed(this);
@@ -460,21 +492,21 @@ class DataObjectImpl implements DataObject {
ObserverEntry entry = new ObserverEntry(observer);
if (!m_observers.contains(entry)) {
if (m_firing != null) {
- throw new IllegalStateException
- ("Can't add a new observer from within another " +
- "observer.\n" +
- "Trying to add: " + observer + "\n" +
- "Currently firing: " + m_firing + "\n" +
- "Current observers: " + m_observers);
+ throw new IllegalStateException("Can't add a new observer from within another "
+ + "observer.\n"
+ + "Trying to add: " + observer
+ + "\n" + "Currently firing: "
+ + m_firing + "\n"
+ + "Current observers: "
+ + m_observers);
}
m_observers.add(entry);
}
}
-
private ObserverEntry m_firing = null;
void scheduleObserver(DataEvent event) {
- for (Iterator it = m_observers.iterator(); it.hasNext(); ) {
+ for (Iterator it = m_observers.iterator(); it.hasNext();) {
ObserverEntry entry = (ObserverEntry) it.next();
DataObserver observer = entry.getObserver();
if (event instanceof AfterEvent) {
@@ -488,7 +520,9 @@ class DataObjectImpl implements DataObject {
ObserverEntry entry = (ObserverEntry) m_observers.get(i);
final DataObserver observer = entry.getObserver();
if (entry.isFiring(event)) {
- if (s_log.isDebugEnabled()) { s_log.debug("isFiring: " + event); }
+ if (s_log.isDebugEnabled()) {
+ s_log.debug("isFiring: " + event);
+ }
continue;
}
@@ -510,7 +544,9 @@ class DataObjectImpl implements DataObject {
// after events never delay firing
if (event instanceof BeforeEvent) {
DataEvent waiting = entry.clearFiring(event);
- if (waiting != null) { fireObserver(waiting); }
+ if (waiting != null) {
+ fireObserver(waiting);
+ }
}
entry.setFiring(event);
@@ -518,7 +554,9 @@ class DataObjectImpl implements DataObject {
event.invoke(observer);
DataEvent waiting = entry.clearFiring(event);
- if (waiting != null) { fireObserver(waiting); }
+ if (waiting != null) {
+ fireObserver(waiting);
+ }
} finally {
entry.clearFiring(event);
}
@@ -549,5 +587,4 @@ class DataObjectImpl implements DataObject {
public String toString() {
return m_oid.toString();
}
-
}
diff --git a/ccm-core/src/com/arsdigita/persistence/metadata/ObjectType.java b/ccm-core/src/com/arsdigita/persistence/metadata/ObjectType.java
index d2805a951..4eddad177 100755
--- a/ccm-core/src/com/arsdigita/persistence/metadata/ObjectType.java
+++ b/ccm-core/src/com/arsdigita/persistence/metadata/ObjectType.java
@@ -24,7 +24,6 @@ import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
-
/**
* The ObjectType class is a specialized form of CompoundType that supports
* inheritence. It also adds the notion of identity by allowing properties to
@@ -36,59 +35,49 @@ import java.util.Iterator;
*/
public class ObjectType extends CompoundType {
- static ObjectType
- wrap(com.redhat.persistence.metadata.ObjectType type) {
- if (type == null) {
- return null;
- } else {
- return new ObjectType(type);
- }
+ static ObjectType wrap(com.redhat.persistence.metadata.ObjectType type) {
+ if (type == null) {
+ return null;
+ } else {
+ return new ObjectType(type);
+ }
}
static Collection wrap(Collection types) {
- ArrayList result = new ArrayList(types.size());
- for (Iterator it = types.iterator(); it.hasNext(); ) {
- result.add
- (wrap((com.redhat.persistence.metadata.ObjectType)
- it.next()));
- }
- return result;
+ ArrayList result = new ArrayList(types.size());
+ for (Iterator it = types.iterator(); it.hasNext();) {
+ result.add(wrap(
+ (com.redhat.persistence.metadata.ObjectType) it.next()));
+ }
+ return result;
}
-
-
private com.redhat.persistence.metadata.ObjectType m_type;
- private
- ObjectType(com.redhat.persistence.metadata.ObjectType type) {
- super(type);
+ private ObjectType(com.redhat.persistence.metadata.ObjectType type) {
+ super(type);
m_type = type;
}
-
/**
* Returns the supertype of this ObjectType or null if this is a base
* type.
*
* @return The supertype of this ObjectType or null if this is a base.
**/
-
public ObjectType getSupertype() {
return ObjectType.wrap(m_type.getSupertype());
}
-
/**
* Returns the base type of this ObjectType (which may simply be the
* current ObjectType).
*
* @return The base type of this ObjectType.
**/
-
public ObjectType getBasetype() {
- return ObjectType.wrap(m_type.getBasetype());
+ return ObjectType.wrap(m_type.getBasetype());
}
-
/**
* Returns true if the given Property is one of the key Properties on this
* ObjectType.
@@ -97,7 +86,7 @@ public class ObjectType extends CompoundType {
* @return true if is a key property.
*/
public boolean isKeyProperty(Property p) {
- return m_type.isKeyProperty(p.getName());
+ return m_type.isKeyProperty(p.getName());
}
/**
@@ -108,7 +97,7 @@ public class ObjectType extends CompoundType {
* @return true if is a key property.
*/
public boolean isKeyProperty(String name) {
- return m_type.isKeyProperty(name);
+ return m_type.isKeyProperty(name);
}
/**
@@ -119,9 +108,8 @@ public class ObjectType extends CompoundType {
*
* @see Property
**/
-
public Iterator getKeyProperties() {
- return Property.wrap(m_type.getKeyProperties()).iterator();
+ return Property.wrap(m_type.getKeyProperties()).iterator();
}
/**
@@ -133,7 +121,6 @@ public class ObjectType extends CompoundType {
*
* @see Property
**/
-
public Iterator getProperties() {
return Property.wrap(m_type.getProperties()).iterator();
}
@@ -147,12 +134,10 @@ public class ObjectType extends CompoundType {
*
* @see Property
**/
-
public Iterator getDeclaredProperties() {
return Property.wrap(m_type.getDeclaredProperties()).iterator();
}
-
/**
* Returns true if this ObjectType contains a Property with the given
* name. This includes any Properties inherited from the supertype.
@@ -162,12 +147,10 @@ public class ObjectType extends CompoundType {
* @return True if this ObjectType contains a Property with the given
* name, false otherwise.
**/
-
public boolean hasProperty(String name) {
- return m_type.hasProperty(name);
+ return m_type.hasProperty(name);
}
-
/**
* Returns true if this ObjectType directly defines a Property with the
* given name. This does not any Properties inherited from the
@@ -178,12 +161,10 @@ public class ObjectType extends CompoundType {
* @return True if this ObjectType contains a directly defined Property
* with the given name, false otherwise.
**/
-
public boolean hasDeclaredProperty(String name) {
return m_type.hasDeclaredProperty(name);
}
-
/**
* Returns the Property contained by this ObjectType with the given name
* or null if no such property exists. This includes any properties that
@@ -193,12 +174,10 @@ public class ObjectType extends CompoundType {
*
* @return An instance of Property or null.
**/
-
public Property getProperty(String name) {
- return Property.wrap(m_type.getProperty(name));
+ return Property.wrap(m_type.getProperty(name));
}
-
/**
* Returns the Property directly defined by this ObjectType with the given
* name or null if no such property exists. This does not include
@@ -208,18 +187,15 @@ public class ObjectType extends CompoundType {
*
* @return An instance of Property or null.
**/
-
public Property getDeclaredProperty(String name) {
return Property.wrap(m_type.getDeclaredProperty(name));
}
-
/**
* @see #isSubtypeOf(ObjectType)
**/
-
public boolean isSubtypeOf(String qualifiedName) {
- return m_type.isSubtypeOf(qualifiedName);
+ return m_type.isSubtypeOf(qualifiedName);
}
/**
@@ -233,12 +209,10 @@ public class ObjectType extends CompoundType {
*
* @return True if this ObjectType is a subtype of type.
**/
-
public boolean isSubtypeOf(ObjectType type) {
- return m_type.isSubtypeOf(type.m_type);
+ return m_type.isSubtypeOf(type.m_type);
}
-
/**
* Checks if the ObjectType specified by extendedType
* is a subtype of the ObjectType specified by baseType.
@@ -255,35 +229,32 @@ public class ObjectType extends CompoundType {
public static void verifySubtype(ObjectType baseType,
ObjectType extendedType) {
if (!extendedType.isSubtypeOf(baseType)) {
- throw new PersistenceException
- ("The object type '" + extendedType.getQualifiedName() +
- "' is not a subtype of the object type '" +
- baseType.getQualifiedName() + "'");
+ throw new PersistenceException("The object type '" + extendedType.
+ getQualifiedName()
+ + "' is not a subtype of the object type '"
+ + baseType.getQualifiedName() + "'");
}
}
public static void verifySubtype(String baseType,
String extendedType) {
- verifySubtype
- (MetadataRoot.getMetadataRoot().getObjectType(baseType),
- MetadataRoot.getMetadataRoot().getObjectType(extendedType));
+ verifySubtype(MetadataRoot.getMetadataRoot().getObjectType(baseType),
+ MetadataRoot.getMetadataRoot().getObjectType(extendedType));
}
public static void verifySubtype(String baseType,
ObjectType extendedType) {
ObjectType baseObjectType =
- MetadataRoot.getMetadataRoot().getObjectType(baseType);
+ MetadataRoot.getMetadataRoot().getObjectType(baseType);
Assert.isTrue(baseObjectType != null,
- "Could not find the ObjectType for the " +
- "base type. The base type was: " + baseType + ".");
+ "Could not find the ObjectType for the "
+ + "base type. The base type was: " + baseType + ".");
verifySubtype(baseObjectType, extendedType);
}
public static void verifySubtype(ObjectType baseType,
String extendedType) {
- verifySubtype
- (baseType,
- MetadataRoot.getMetadataRoot().getObjectType(extendedType));
+ verifySubtype(baseType,
+ MetadataRoot.getMetadataRoot().getObjectType(extendedType));
}
-
}
diff --git a/ccm-ldn-util/src/com/arsdigita/london/util/cmd/ReloadAuthoringSteps.java b/ccm-ldn-util/src/com/arsdigita/london/util/cmd/ReloadAuthoringSteps.java
index 22bc2ff8d..4189c6438 100644
--- a/ccm-ldn-util/src/com/arsdigita/london/util/cmd/ReloadAuthoringSteps.java
+++ b/ccm-ldn-util/src/com/arsdigita/london/util/cmd/ReloadAuthoringSteps.java
@@ -1,15 +1,10 @@
package com.arsdigita.london.util.cmd;
-import com.arsdigita.cms.installer.xml.XMLContentItemHandler;
import com.arsdigita.cms.installer.xml.XMLContentTypeHandler;
import com.arsdigita.london.util.Transaction;
import com.arsdigita.packaging.Program;
-import com.arsdigita.persistence.Session;
-import com.arsdigita.persistence.SessionManager;
-import com.arsdigita.persistence.TransactionContext;
import com.arsdigita.xml.XML;
import org.apache.commons.cli.CommandLine;
-import org.apache.commons.cli.Options;
/**
*
@@ -22,8 +17,6 @@ public class ReloadAuthoringSteps extends Program {
"1.0.0",
"");
-
-
}
@Override
@@ -57,7 +50,10 @@ public class ReloadAuthoringSteps extends Program {
XML.parseResource(defToReload, handler);
}
}.run();
- System.out.printf("Reloaded AuthoringSteps from '%s'.", defToReload);
-
+ System.out.printf("Reloaded AuthoringSteps from '%s'.", defToReload);
+ }
+
+ public static void main(String[] args) {
+ new ReloadAuthoringSteps().run(args);
}
}
diff --git a/ccm-sci-assets-organizationpublicationlink/pdl/com/arsdigita/cms/contentassets/SciOrganizationPublicationLink.pdl b/ccm-sci-assets-organizationpublicationlink/pdl/com/arsdigita/cms/contentassets/SciOrganizationPublicationLink.pdl
deleted file mode 100644
index 99688433d..000000000
--- a/ccm-sci-assets-organizationpublicationlink/pdl/com/arsdigita/cms/contentassets/SciOrganizationPublicationLink.pdl
+++ /dev/null
@@ -1,30 +0,0 @@
-model com.arsdigita.cms.contentassets;
-
-import com.arsdigita.kernel.ACSObject;
-import com.arsdigita.cms.*;
-import com.arsdigita.cms.contenttypes.Publication;
-import com.arsdigita.cms.contenttypes.GenericOrganizationalUnit;
-
-association {
- GenericOrganizationalUnit[0..n] organizations = join ct_publications.publication_id
- to cms_organization_publication_map.publication_id,
- join cms_organization_publication_map.organization_id
- to cms_organizationalunits.organizationalunit_id;
-
- Publication[0..n] publications = join cms_organizationalunits.organizationalunit_id
- to cms_organization_publication_map.organization_id,
- join cms_organization_publication_map.publication_id
- to ct_publications.publication_id;
-}
-
-query getIdsOfPublicationsOfSciOrganization {
- BigDecimal publicationId;
-
- do {
- select cms_organization_publication_map.publication_id
- from cms_organization_publication_map
- where cms_organization_publication_map.organization_id = :organization
- } map {
- publicationId = cms_organization_publication_map.publication_id;
- }
-}
\ No newline at end of file
diff --git a/ccm-sci-assets-organizationpublicationlink/src/WEB-INF/traversal-adapters/com/arsdigita/cms/contentassets/SciOrganizationPublication.xml b/ccm-sci-assets-organizationpublicationlink/src/WEB-INF/traversal-adapters/com/arsdigita/cms/contentassets/SciOrganizationPublication.xml
deleted file mode 100644
index a8d6c5b2b..000000000
--- a/ccm-sci-assets-organizationpublicationlink/src/WEB-INF/traversal-adapters/com/arsdigita/cms/contentassets/SciOrganizationPublication.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/ccm-sci-assets-organizationpublicationlink/src/ccm-sci-assets-organizationpublicationlink.load b/ccm-sci-assets-organizationpublicationlink/src/ccm-sci-assets-organizationpublicationlink.load
deleted file mode 100644
index a75fee60c..000000000
--- a/ccm-sci-assets-organizationpublicationlink/src/ccm-sci-assets-organizationpublicationlink.load
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/ccm-sci-assets-organizationpublicationlink/src/com/arsdigita/cms/contentassets/ConvertRelatedPublicationsLinkToPublicationAssoc.java b/ccm-sci-assets-organizationpublicationlink/src/com/arsdigita/cms/contentassets/ConvertRelatedPublicationsLinkToPublicationAssoc.java
deleted file mode 100644
index f38cc2d5f..000000000
--- a/ccm-sci-assets-organizationpublicationlink/src/com/arsdigita/cms/contentassets/ConvertRelatedPublicationsLinkToPublicationAssoc.java
+++ /dev/null
@@ -1,163 +0,0 @@
-package com.arsdigita.cms.contentassets;
-
-import com.arsdigita.cms.ContentItem;
-import com.arsdigita.cms.ContentPage;
-import com.arsdigita.cms.contenttypes.GenericOrganizationalUnitWithPublications;
-import com.arsdigita.cms.contenttypes.GenericPerson;
-import com.arsdigita.cms.contenttypes.Publication;
-import com.arsdigita.cms.contenttypes.SciDepartment;
-import com.arsdigita.cms.contenttypes.SciMember;
-import com.arsdigita.cms.dispatcher.ContentItemDispatcher;
-import com.arsdigita.cms.installer.xml.ContentItemHelper;
-import com.arsdigita.domain.DomainObjectFactory;
-import com.arsdigita.persistence.DataCollection;
-import com.arsdigita.persistence.Session;
-import com.arsdigita.persistence.SessionManager;
-import com.arsdigita.persistence.TransactionContext;
-import java.math.BigDecimal;
-import javax.sound.sampled.TargetDataLine;
-
-/**
- *
- * @author Jens Pelzetter
- */
-public class ConvertRelatedPublicationsLinkToPublicationAssoc {
-
- public static void main(String[] args) {
- final com.arsdigita.runtime.Runtime runtime =
- new com.arsdigita.runtime.Runtime();
-
- runtime.startup();
-
- final Session session = SessionManager.getSession();
- final TransactionContext tc = session.getTransactionContext();
-
- tc.beginTxn();
- try {
- DataCollection data = session.retrieve(
- SciDepartment.BASE_DATA_OBJECT_TYPE);
- data.addOrder("title");
-
- SciDepartment department;
- while (data.next()) {
- department =
- (SciDepartment) DomainObjectFactory.newInstance(data.
- getDataObject());
-
- if (department.isDraftVersion()) {
-
- System.out.printf("Found department '%s'\n",
- department.getTitle());
-
- DataCollection relatedLinks = RelatedLink.getRelatedLinks(
- department, "SciDepartmentPublications");
-
- System.out.printf(
- "Found %d related links from department '%s' with link list name '%s':\n",
- relatedLinks.size(),
- department.getTitle(),
- "SciDepartmentPublications");
- int i = 1;
- while (relatedLinks.next()) {
- RelatedLink relatedLink =
- (RelatedLink) DomainObjectFactory.
- newInstance(relatedLinks.getDataObject());
-
- if (relatedLink == null) {
- System.out.println(
- "Failed to convert related link to domain object...");
- continue;
- }
-
- ContentItem target = relatedLink.getTargetItem();
- Publication publication = (Publication) target;
- System.out.printf(
- "\tconverting related link to '%s' (%d of %d)\n",
- publication.getTitle(),
- i,
- relatedLinks.size());
-
- GenericOrganizationalUnitWithPublications orga =
- new GenericOrganizationalUnitWithPublications(
- department.getID());
- orga.addPublication(publication);
-
- relatedLink.delete();
-
- i++;
- }
- }
- }
-
-
- DataCollection persons = session.retrieve(
- GenericPerson.BASE_DATA_OBJECT_TYPE);
- persons.addOrder("surname");
- persons.addOrder("givenname");
-
- GenericPerson person;
- while (persons.next()) {
- person =
- (GenericPerson) DomainObjectFactory.newInstance(persons.
- getDataObject());
-
- if (person.isDraftVersion()) {
- System.out.printf("Found person '%s'\n",
- person.getGivenName(),
- person.getSurname());
-
- DataCollection relatedLinks = RelatedLink.getRelatedLinks(
- person, "MyPublications");
-
- System.out.printf(
- "Found %d related links from person '%s' '%s' with link list name '%s'\n",
- relatedLinks.size(),
- person.getGivenName(),
- person.getSurname(),
- "MyPublications");
- int i = 1;
- while (relatedLinks.next()) {
- RelatedLink relatedLink =
- (RelatedLink) DomainObjectFactory.
- newInstance(relatedLinks.getDataObject());
-
- if (relatedLink == null) {
- System.out.println(
- "Failed to convert related link to domain object...");
- continue;
- }
-
- ContentItem target = relatedLink.getTargetItem();
- if (target == null) {
- System.out.println(
- "\t Strange: Target item is null. But thats no problem, since we are only deleting this related link.");
-
- } else {
- Publication publication = (Publication) target;
- System.out.printf(
- "\tDeleting obsolete related link to '%s' (%d of %d)\n",
- publication.getTitle(),
- i,
- relatedLinks.size());
- }
- relatedLink.delete();
-
- i++;
- }
-
-
- }
- }
-
-
- tc.commitTxn();
- } catch (Exception ex) {
- System.out.println("Exception ocurred during convert process:");
- ex.printStackTrace(System.err);
- } finally {
- if (tc.inTxn()) {
- tc.abortTxn();
- }
- }
- }
-}
diff --git a/ccm-sci-assets-organizationpublicationlink/src/com/arsdigita/cms/contentassets/PublicationSciOrganizationCollection.java b/ccm-sci-assets-organizationpublicationlink/src/com/arsdigita/cms/contentassets/PublicationSciOrganizationCollection.java
deleted file mode 100644
index bb534b646..000000000
--- a/ccm-sci-assets-organizationpublicationlink/src/com/arsdigita/cms/contentassets/PublicationSciOrganizationCollection.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Copyright (c) 2011 Jens Pelzetter,
- * for the Center of Social Politics of the University of Bremen
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public License
- * as published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- */
-package com.arsdigita.cms.contentassets;
-
-import com.arsdigita.cms.contenttypes.GenericOrganizationalUnit;
-import com.arsdigita.domain.DomainCollection;
-import com.arsdigita.domain.DomainObjectFactory;
-import com.arsdigita.persistence.DataCollection;
-
-/**
- *
- * @author Jens Pelzetter
- */
-public class PublicationSciOrganizationCollection extends DomainCollection {
-
- public PublicationSciOrganizationCollection(final DataCollection dataCollection) {
- super(dataCollection);
-
- m_dataCollection.addOrder("title");
- }
-
- public GenericOrganizationalUnit getOrganization() {
- return (GenericOrganizationalUnit) DomainObjectFactory.newInstance(m_dataCollection.
- getDataObject());
- }
-}
diff --git a/ccm-sci-assets-organizationpublicationlink/src/com/arsdigita/cms/contentassets/SciOrganizationPublicationCollection.java b/ccm-sci-assets-organizationpublicationlink/src/com/arsdigita/cms/contentassets/SciOrganizationPublicationCollection.java
deleted file mode 100644
index 815583fdf..000000000
--- a/ccm-sci-assets-organizationpublicationlink/src/com/arsdigita/cms/contentassets/SciOrganizationPublicationCollection.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Copyright (c) 2011 Jens Pelzetter,
- * for the Center of Social Politics of the University of Bremen
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public License
- * as published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- */
-package com.arsdigita.cms.contentassets;
-
-import com.arsdigita.cms.contenttypes.Publication;
-import com.arsdigita.domain.DomainCollection;
-import com.arsdigita.domain.DomainObjectFactory;
-import com.arsdigita.persistence.DataCollection;
-
-/**
- *
- * @author Jens Pelzetter
- */
-public class SciOrganizationPublicationCollection extends DomainCollection {
-
- public SciOrganizationPublicationCollection(final DataCollection dataCollection) {
- super(dataCollection);
-
- m_dataCollection.addOrder("title");
- }
-
- public Publication getPublication() {
- return (Publication) DomainObjectFactory.newInstance(m_dataCollection.
- getDataObject());
- }
-}
diff --git a/ccm-sci-assets-organizationpublicationlink/src/com/arsdigita/cms/contentassets/SciOrganizationPublicationInitializer.java b/ccm-sci-assets-organizationpublicationlink/src/com/arsdigita/cms/contentassets/SciOrganizationPublicationInitializer.java
deleted file mode 100644
index 697b7b292..000000000
--- a/ccm-sci-assets-organizationpublicationlink/src/com/arsdigita/cms/contentassets/SciOrganizationPublicationInitializer.java
+++ /dev/null
@@ -1,131 +0,0 @@
-/*
- * Copyright (c) 2011 Jens Pelzetter,
- * for the Center of Social Politics of the University of Bremen
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public License
- * as published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- */
-package com.arsdigita.cms.contentassets;
-
-import com.arsdigita.cms.contentassets.ui.PublicationSciOrganizationStep;
-import com.arsdigita.cms.contentassets.ui.SciOrganizationPublicationStep;
-import com.arsdigita.cms.contenttypes.ContentAssetTraversalHandler;
-import com.arsdigita.cms.contenttypes.Publication;
-import com.arsdigita.cms.contenttypes.SciDepartment;
-import com.arsdigita.cms.contenttypes.SciOrganization;
-import com.arsdigita.cms.contenttypes.SciProject;
-import com.arsdigita.cms.ui.authoring.AuthoringKitWizard;
-import com.arsdigita.db.DbHelper;
-import com.arsdigita.globalization.GlobalizedMessage;
-import com.arsdigita.persistence.pdl.ManifestSource;
-import com.arsdigita.persistence.pdl.NameFilter;
-import com.arsdigita.runtime.CompoundInitializer;
-import com.arsdigita.runtime.DomainInitEvent;
-import com.arsdigita.runtime.PDLInitializer;
-import com.arsdigita.runtime.RuntimeConfig;
-import com.arsdigita.xml.XML;
-
-/**
- *
- * @author Jens Pelzetter
- */
-public class SciOrganizationPublicationInitializer extends CompoundInitializer {
-
- public SciOrganizationPublicationInitializer() {
- final String url = RuntimeConfig.getConfig().getJDBCURL();
- final int database = DbHelper.getDatabaseFromURL(url);
-
- System.err.println("Creating SciOrganizationPublicationInitializer...");
-
- add(new PDLInitializer(
- new ManifestSource(
- "ccm-sci-assets-organizationpublicationlink.pdl.mf",
- new NameFilter(DbHelper.getDatabaseSuffix(database), "pdl"))));
-
- System.err.println("Constructor of SciOrganizationPublicationInitializer finished...");
- }
-
- @Override
- public void init(DomainInitEvent event) {
- System.out.println("Beginning init of SciOrganizationPublicationInitializer...");
-
- System.out.println("Calling super.init()");
- super.init(event);
-
- System.out.println("Creating traversal handler...");
- final String traversal = getTraversalXML();
- XML.parseResource(traversal,
- new ContentAssetTraversalHandler(getProperty()));
-
- System.out.println("Registering authoring step for publications of an organization...");
- AuthoringKitWizard.registerAssetStep(
- SciOrganization.BASE_DATA_OBJECT_TYPE,
- SciOrganizationPublicationStep.class,
- new GlobalizedMessage("sciorganizationpublication.ui.publicationsOfOrganization",
- "com.arsdigita.cms.contentassets.ui.SciOrganizationPublicationResources"),
- new GlobalizedMessage("sciorganizationpublication.ui.publicationsOfOrganization",
- "com.arsdigita.cms.contentassets.ui.SciOrganizationPublicationResources"),
- 99);
-
- System.out.println("Registering authoring step for publications of a department..");
- AuthoringKitWizard.registerAssetStep(
- SciDepartment.BASE_DATA_OBJECT_TYPE,
- SciOrganizationPublicationStep.class,
- new GlobalizedMessage("sciorganizationpublication.ui.publicationsOfDepartment",
- "com.arsdigita.cms.contentassets.ui.SciOrganizationPublicationResources"),
- new GlobalizedMessage("sciorganizationpublication.ui.publicationsOfDepartment",
- "com.arsdigita.cms.contentassets.ui.SciOrganizationPublicationResources"),
- 99);
-
- System.out.println("Registering authoring step for publications of a project...");
- AuthoringKitWizard.registerAssetStep(
- SciProject.BASE_DATA_OBJECT_TYPE,
- SciOrganizationPublicationStep.class,
- new GlobalizedMessage("sciorganizationpublication.ui.publicationsOfProject",
- "com.arsdigita.cms.contentassets.ui.SciOrganizationPublicationResources"),
- new GlobalizedMessage("sciorganizationpublication.ui.publicationsOfProject",
- "com.arsdigita.cms.contentassets.ui.SciOrganizationPublicationResources"),
- 1);
-
- System.out.println("Registering authoring step of organization of a publication...");
- AuthoringKitWizard.registerAssetStep(
- Publication.BASE_DATA_OBJECT_TYPE,
- PublicationSciOrganizationStep.class,
- new GlobalizedMessage("sciorganizationpublication.ui.organizationsOfPublication",
- "com.arsdigita.cms.contentassets.ui.SciOrganizationPublicationResources"),
- new GlobalizedMessage("ssciorganizationpublication.ui.organizationsOfPublication",
- "com.arsdigita.cms.contentassets.ui.SciOrganizationPublicationResources"),
- 1);
-
- System.err.println("Finished init of SciOrganizationPublicationInitializer.");
- }
-
- /**
- *
- * @return
- */
- public String getTraversalXML() {
- return "/WEB-INF/traversal-adapters/com/arsdigita/"
- + "cms/contentassets/SciOrganizationPublication.xml";
- }
-
- /**
- *
- * @return
- */
- public String getProperty() {
- return "publications";
- }
-}
diff --git a/ccm-sci-assets-organizationpublicationlink/src/com/arsdigita/cms/contentassets/SciOrganizationPublicationLoader.java b/ccm-sci-assets-organizationpublicationlink/src/com/arsdigita/cms/contentassets/SciOrganizationPublicationLoader.java
deleted file mode 100644
index e1ecce67d..000000000
--- a/ccm-sci-assets-organizationpublicationlink/src/com/arsdigita/cms/contentassets/SciOrganizationPublicationLoader.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Copyright (c) 2011 Jens Pelzetter,
- * for the Center of Social Politics of the University of Bremen
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public License
- * as published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- */
-package com.arsdigita.cms.contentassets;
-
-import com.arsdigita.loader.PackageLoader;
-import com.arsdigita.runtime.ScriptContext;
-
-/**
- *
- * @author Jens Pelzetter
- */
-public class SciOrganizationPublicationLoader extends PackageLoader {
-
- public void run(final ScriptContext cts) {
- //Nothing to do.
- }
-
-}
diff --git a/ccm-sci-assets-organizationpublicationlink/src/com/arsdigita/cms/contentassets/ui/PublicationSciOrganizationAddForm.java b/ccm-sci-assets-organizationpublicationlink/src/com/arsdigita/cms/contentassets/ui/PublicationSciOrganizationAddForm.java
deleted file mode 100644
index 5fa67a7ef..000000000
--- a/ccm-sci-assets-organizationpublicationlink/src/com/arsdigita/cms/contentassets/ui/PublicationSciOrganizationAddForm.java
+++ /dev/null
@@ -1,88 +0,0 @@
-/*
- * Copyright (c) 2011 Jens Pelzetter,
- * for the Center of Social Politics of the University of Bremen
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public License
- * as published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- */
-package com.arsdigita.cms.contentassets.ui;
-
-import com.arsdigita.bebop.FormData;
-import com.arsdigita.bebop.FormProcessException;
-import com.arsdigita.bebop.Label;
-import com.arsdigita.bebop.PageState;
-import com.arsdigita.bebop.event.FormInitListener;
-import com.arsdigita.bebop.event.FormProcessListener;
-import com.arsdigita.bebop.event.FormSectionEvent;
-import com.arsdigita.cms.ContentType;
-import com.arsdigita.cms.ItemSelectionModel;
-import com.arsdigita.cms.contenttypes.GenericOrganizationalUnit;
-import com.arsdigita.cms.contenttypes.Publication;
-import com.arsdigita.cms.contenttypes.PublicationWithOrganization;
-import com.arsdigita.cms.ui.ItemSearchWidget;
-import com.arsdigita.cms.ui.authoring.BasicItemForm;
-import java.math.BigDecimal;
-
-/**
- *
- * @author Jens Pelzetter
- */
-public class PublicationSciOrganizationAddForm
- extends BasicItemForm
- implements FormProcessListener,
- FormInitListener {
-
- private ItemSearchWidget itemSearch;
- private final String ITEM_SEARCH = "organizations";
-
- public PublicationSciOrganizationAddForm(ItemSelectionModel itemModel) {
- super("OrganizationsAddForm", itemModel);
- }
-
- @Override
- public void addWidgets() {
- add(new Label((String) SciOrganizationPublicationGlobalizationUtil.
- globalize("sciorganization.ui.selectOrganization").localize()));
- itemSearch = new ItemSearchWidget(ITEM_SEARCH, ContentType.
- findByAssociatedObjectType(GenericOrganizationalUnit.class.
- getName()));
- add(itemSearch);
- }
-
- @Override
- public void init(FormSectionEvent fse) throws FormProcessException {
- PageState state = fse.getPageState();
-
- setVisible(state, true);
- }
-
- @Override
- public void process(FormSectionEvent fse) throws FormProcessException {
- FormData data = fse.getFormData();
- PageState state = fse.getPageState();
- Publication pub = (Publication) getItemSelectionModel().
- getSelectedObject(state);
- PublicationWithOrganization publication =
- new PublicationWithOrganization(
- pub.getOID());
-
- if (this.getSaveCancelSection().getSaveButton().isSelected(state)) {
- publication.addOrganization((GenericOrganizationalUnit) data.get(
- ITEM_SEARCH));
- }
-
- init(fse);
- }
-}
diff --git a/ccm-sci-assets-organizationpublicationlink/src/com/arsdigita/cms/contentassets/ui/PublicationSciOrganizationStep.java b/ccm-sci-assets-organizationpublicationlink/src/com/arsdigita/cms/contentassets/ui/PublicationSciOrganizationStep.java
deleted file mode 100644
index 813c2bce5..000000000
--- a/ccm-sci-assets-organizationpublicationlink/src/com/arsdigita/cms/contentassets/ui/PublicationSciOrganizationStep.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * Copyright (c) 2011 Jens Pelzetter,
- * for the Center of Social Politics of the University of Bremen
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public License
- * as published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- */
-package com.arsdigita.cms.contentassets.ui;
-
-import com.arsdigita.cms.ItemSelectionModel;
-import com.arsdigita.cms.contenttypes.GenericOrganizationalUnit;
-import com.arsdigita.cms.contenttypes.SciOrganization;
-import com.arsdigita.cms.ui.authoring.AuthoringKitWizard;
-import com.arsdigita.cms.ui.authoring.BasicItemForm;
-import com.arsdigita.cms.ui.authoring.SimpleEditStep;
-import com.arsdigita.cms.ui.workflow.WorkflowLockedComponentAccess;
-
-/**
- *
- * @author Jens Pelzetter
- */
-public class PublicationSciOrganizationStep extends SimpleEditStep {
-
- private String ADD_ORGANIZATION_SHEET_NAME = "addOrganization";
-
- public PublicationSciOrganizationStep(ItemSelectionModel itemModel,
- AuthoringKitWizard parent) {
- this(itemModel, parent, null);
- }
-
- public PublicationSciOrganizationStep(ItemSelectionModel itemModel,
- AuthoringKitWizard parent,
- String prefix) {
- super(itemModel, parent, prefix);
-
- BasicItemForm addOrganizationSheet =
- new PublicationSciOrganizationAddForm(itemModel);
- add(ADD_ORGANIZATION_SHEET_NAME,
- (String) SciOrganizationPublicationGlobalizationUtil.globalize(
- "sciorganizationpublication.ui.addOrganization").localize(),
- new WorkflowLockedComponentAccess(addOrganizationSheet, itemModel),
- addOrganizationSheet.getSaveCancelSection().getCancelButton());
-
- PublicationSciOrganizationTable organizationTable =
- new PublicationSciOrganizationTable(
- itemModel);
- setDisplayComponent(organizationTable);
- }
-}
diff --git a/ccm-sci-assets-organizationpublicationlink/src/com/arsdigita/cms/contentassets/ui/PublicationSciOrganizationTable.java b/ccm-sci-assets-organizationpublicationlink/src/com/arsdigita/cms/contentassets/ui/PublicationSciOrganizationTable.java
deleted file mode 100644
index d6b220044..000000000
--- a/ccm-sci-assets-organizationpublicationlink/src/com/arsdigita/cms/contentassets/ui/PublicationSciOrganizationTable.java
+++ /dev/null
@@ -1,267 +0,0 @@
-/*
- * Copyright (c) 2011 Jens Pelzetter,
- * for the Center of Social Politics of the University of Bremen
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public License
- * as published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- */
-package com.arsdigita.cms.contentassets.ui;
-
-import com.arsdigita.bebop.Component;
-import com.arsdigita.bebop.ControlLink;
-import com.arsdigita.bebop.Label;
-import com.arsdigita.bebop.Link;
-import com.arsdigita.bebop.PageState;
-import com.arsdigita.bebop.Table;
-import com.arsdigita.bebop.event.TableActionEvent;
-import com.arsdigita.bebop.event.TableActionListener;
-import com.arsdigita.bebop.table.TableCellRenderer;
-import com.arsdigita.bebop.table.TableColumn;
-import com.arsdigita.bebop.table.TableColumnModel;
-import com.arsdigita.bebop.table.TableModel;
-import com.arsdigita.bebop.table.TableModelBuilder;
-import com.arsdigita.cms.CMS;
-import com.arsdigita.cms.ContentSection;
-import com.arsdigita.cms.ItemSelectionModel;
-import com.arsdigita.cms.contentassets.PublicationSciOrganizationCollection;
-import com.arsdigita.cms.contenttypes.GenericOrganizationalUnit;
-import com.arsdigita.cms.contenttypes.Publication;
-import com.arsdigita.cms.contenttypes.PublicationWithOrganization;
-import com.arsdigita.cms.dispatcher.ItemResolver;
-import com.arsdigita.cms.dispatcher.Utilities;
-import com.arsdigita.dispatcher.ObjectNotFoundException;
-import com.arsdigita.util.Assert;
-import com.arsdigita.util.LockableImpl;
-import java.math.BigDecimal;
-
-/**
- *
- * @author Jens Pelzetter
- */
-public class PublicationSciOrganizationTable
- extends Table
- implements TableActionListener {
-
- private final String TABLE_COL_EDIT = "table_col_edit";
- private final String TABLE_COL_DEL = "table_col_del";
- private ItemSelectionModel itemModel;
-
- public PublicationSciOrganizationTable(ItemSelectionModel itemModel) {
- super();
- this.itemModel = itemModel;
-
- setEmptyView(new Label(SciOrganizationPublicationGlobalizationUtil.
- globalize("sciorganizationpublication.ui.organizations.none")));
-
- TableColumnModel columnModel = getColumnModel();
- columnModel.add(new TableColumn(
- 0,
- SciOrganizationPublicationGlobalizationUtil.globalize(
- "sciorganizationpublication.ui.organization").localize(),
- TABLE_COL_EDIT));
- columnModel.add(new TableColumn(
- 1,
- SciOrganizationPublicationGlobalizationUtil.globalize(
- "sciorganizationpublication.ui.organization.remove").
- localize(), TABLE_COL_DEL));
-
- setModelBuilder(new PublicationSciOrganizationTableModelBuilder(
- itemModel));
-
- columnModel.get(0).setCellRenderer(new EditCellRenderer());
- columnModel.get(1).setCellRenderer(new DeleteCellRenderer());
-
- addTableActionListener(this);
- }
-
- private class PublicationSciOrganizationTableModelBuilder
- extends LockableImpl
- implements TableModelBuilder {
-
- private ItemSelectionModel itemModel;
-
- public PublicationSciOrganizationTableModelBuilder(
- ItemSelectionModel itemModel) {
- this.itemModel = itemModel;
- }
-
- public TableModel makeModel(Table table, PageState state) {
- table.getRowSelectionModel().clearSelection(state);
- Publication publication = (Publication) itemModel.getSelectedObject(
- state);
- return new PublicationSciOrganizationTableModel(table,
- state,
- publication);
- }
- }
-
- private class PublicationSciOrganizationTableModel
- implements TableModel {
-
- private Table table;
- private PublicationSciOrganizationCollection organizations;
- private GenericOrganizationalUnit orga;
-
- public PublicationSciOrganizationTableModel(Table table,
- PageState state,
- Publication pub) {
- PublicationWithOrganization publication;
- this.table = table;
- publication = new PublicationWithOrganization(pub.getOID());
- organizations = publication.getOrganizations();
- }
-
- public int getColumnCount() {
- return table.getColumnModel().size();
- }
-
- public boolean nextRow() {
- boolean ret;
-
- if ((organizations != null) && organizations.next()) {
- orga = organizations.getOrganization();
- ret = true;
- } else {
- ret = false;
- }
-
- return ret;
- }
-
- public Object getElementAt(int columnIndex) {
- switch (columnIndex) {
- case 0:
- return orga.getTitle();
- case 1:
- return SciOrganizationPublicationGlobalizationUtil.globalize(
- "sciorganizationpublication.ui.organization.remove").
- localize();
- default:
- return null;
- }
- }
-
- public Object getKeyAt(int columnIndex) {
- return orga.getID();
- }
- }
-
- private class EditCellRenderer
- extends LockableImpl
- implements TableCellRenderer {
-
- public Component getComponent(Table table,
- PageState state,
- Object value,
- boolean isSelected,
- Object key,
- int row,
- int column) {
- com.arsdigita.cms.SecurityManager securityManager = Utilities.
- getSecurityManager(state);
- Publication publication = (Publication) itemModel.getSelectedObject(
- state);
-
- boolean canEdit = securityManager.canAccess(
- state.getRequest(),
- com.arsdigita.cms.SecurityManager.EDIT_ITEM,
- publication);
-
- if (canEdit) {
- GenericOrganizationalUnit orga;
- try {
- orga = new GenericOrganizationalUnit((BigDecimal) key);
- } catch (ObjectNotFoundException ex) {
- return new Label(value.toString());
- }
-
- ContentSection section = CMS.getContext().getContentSection();
- ItemResolver resolver = section.getItemResolver();
- Link link =
- new Link(value.toString(),
- resolver.generateItemURL(state,
- orga,
- section,
- orga.getVersion()));
- return link;
- } else {
- Label label = new Label(value.toString());
- return label;
- }
- }
- }
-
- private class DeleteCellRenderer
- extends LockableImpl
- implements TableCellRenderer {
-
- public Component getComponent(Table table,
- PageState state,
- Object value,
- boolean isSelected,
- Object key,
- int row,
- int column) {
- com.arsdigita.cms.SecurityManager securityManager = Utilities.
- getSecurityManager(state);
- Publication publication = (Publication) itemModel.getSelectedObject(
- state);
-
- boolean canEdit = securityManager.canAccess(
- state.getRequest(),
- com.arsdigita.cms.SecurityManager.DELETE_ITEM,
- publication);
-
- if (canEdit) {
- ControlLink link = new ControlLink(value.toString());
- link.setConfirmation((String) SciOrganizationPublicationGlobalizationUtil.
- globalize(
- "sciorganizationpublication.ui.organization.confirm.remove").
- localize());
- return link;
- } else {
- Label label = new Label(value.toString());
- return label;
- }
- }
- }
-
- public void cellSelected(TableActionEvent event) {
- PageState state = event.getPageState();
-
- GenericOrganizationalUnit orga = new GenericOrganizationalUnit(new BigDecimal(event.getRowKey().toString()));
-
- Publication pub = (Publication) itemModel.getSelectedObject(
- state);
- PublicationWithOrganization publication = new PublicationWithOrganization(
- pub.getOID());
-
- PublicationSciOrganizationCollection organizations = publication.getOrganizations();
-
- TableColumn column = getColumnModel().get(event.getColumn().intValue());
-
- if (column.getHeaderKey().toString().equals(TABLE_COL_EDIT)) {
-
- } else if(column.getHeaderKey().toString().equals(TABLE_COL_DEL)) {
- Assert.exists(orga, GenericOrganizationalUnit.class);
-
- publication.removeOrganization(orga);
- }
- }
-
- public void headSelected(TableActionEvent event) {
- //Nothing to do.
- }
-}
diff --git a/ccm-sci-assets-organizationpublicationlink/src/com/arsdigita/cms/contentassets/ui/SciOrganizationPublicationAddForm.java b/ccm-sci-assets-organizationpublicationlink/src/com/arsdigita/cms/contentassets/ui/SciOrganizationPublicationAddForm.java
deleted file mode 100644
index 5e82b8938..000000000
--- a/ccm-sci-assets-organizationpublicationlink/src/com/arsdigita/cms/contentassets/ui/SciOrganizationPublicationAddForm.java
+++ /dev/null
@@ -1,86 +0,0 @@
-/*
- * Copyright (c) 2011 Jens Pelzetter,
- * for the Center of Social Politics of the University of Bremen
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public License
- * as published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- */
-package com.arsdigita.cms.contentassets.ui;
-
-import com.arsdigita.bebop.FormData;
-import com.arsdigita.bebop.FormProcessException;
-import com.arsdigita.bebop.Label;
-import com.arsdigita.bebop.PageState;
-import com.arsdigita.bebop.event.FormInitListener;
-import com.arsdigita.bebop.event.FormProcessListener;
-import com.arsdigita.bebop.event.FormSectionEvent;
-import com.arsdigita.cms.ContentType;
-import com.arsdigita.cms.ItemSelectionModel;
-import com.arsdigita.cms.contenttypes.GenericOrganizationalUnit;
-import com.arsdigita.cms.contenttypes.GenericOrganizationalUnitWithPublications;
-import com.arsdigita.cms.contenttypes.Publication;
-import com.arsdigita.cms.ui.ItemSearchWidget;
-import com.arsdigita.cms.ui.authoring.BasicItemForm;
-
-/**
- *
- * @author Jens Pelzetter
- */
-public class SciOrganizationPublicationAddForm
- extends BasicItemForm
- implements FormProcessListener,
- FormInitListener {
-
- private ItemSearchWidget itemSearch;
- private final String ITEM_SEARCH = "publications";
-
- public SciOrganizationPublicationAddForm(ItemSelectionModel itemModel) {
- super("PublicationsAddForm", itemModel);
- }
-
- @Override
- public void addWidgets() {
- add(new Label((String) SciOrganizationPublicationGlobalizationUtil.
- globalize("sciorganization.ui.selectPublication").localize()));
- itemSearch = new ItemSearchWidget(ITEM_SEARCH, ContentType.
- findByAssociatedObjectType(Publication.class.getName()));
- add(itemSearch);
- }
-
- @Override
- public void init(FormSectionEvent fse) throws FormProcessException {
- PageState state = fse.getPageState();
-
- setVisible(state, true);
- }
-
- @Override
- public void process(FormSectionEvent fse) throws FormProcessException {
- FormData data = fse.getFormData();
- PageState state = fse.getPageState();
- GenericOrganizationalUnit orga =
- (GenericOrganizationalUnit) getItemSelectionModel().
- getSelectedObject(state);
- GenericOrganizationalUnitWithPublications organization;
- organization = new GenericOrganizationalUnitWithPublications(
- orga.getOID());
-
- if (this.getSaveCancelSection().getSaveButton().isSelected(state)) {
- organization.addPublication((Publication) data.get(ITEM_SEARCH));
- }
-
- init(fse);
- }
-}
diff --git a/ccm-sci-assets-organizationpublicationlink/src/com/arsdigita/cms/contentassets/ui/SciOrganizationPublicationResources.properties b/ccm-sci-assets-organizationpublicationlink/src/com/arsdigita/cms/contentassets/ui/SciOrganizationPublicationResources.properties
deleted file mode 100644
index 6dfeb11a6..000000000
--- a/ccm-sci-assets-organizationpublicationlink/src/com/arsdigita/cms/contentassets/ui/SciOrganizationPublicationResources.properties
+++ /dev/null
@@ -1,5 +0,0 @@
-
-sciorganizationpublication.ui.publicationsOfOrganization=Publications of the organization
-sciorganizationpublication.ui.publicationsOfDepartment=Publications of the department
-sciorganizationpublication.ui.publicationsOfProject=Publications of the project
-sciorganizationpublication.ui.organizationsOfPublication=Organizations
diff --git a/ccm-sci-assets-organizationpublicationlink/src/com/arsdigita/cms/contentassets/ui/SciOrganizationPublicationResources_de.properties b/ccm-sci-assets-organizationpublicationlink/src/com/arsdigita/cms/contentassets/ui/SciOrganizationPublicationResources_de.properties
deleted file mode 100644
index b61e66e52..000000000
--- a/ccm-sci-assets-organizationpublicationlink/src/com/arsdigita/cms/contentassets/ui/SciOrganizationPublicationResources_de.properties
+++ /dev/null
@@ -1,5 +0,0 @@
-
-sciorganizationpublication.ui.publicationsOfOrganization=Publikationen der Organisation
-sciorganizationpublication.ui.publicationsOfDepartment=Publikationen der Abteilung
-sciorganizationpublication.ui.publicationsOfProject=Publikationen des Projektes
-sciorganizationpublication.ui.organizationsOfPublication=Beteiligte Organizationen
diff --git a/ccm-sci-assets-organizationpublicationlink/src/com/arsdigita/cms/contentassets/ui/SciOrganizationPublicationStep.java b/ccm-sci-assets-organizationpublicationlink/src/com/arsdigita/cms/contentassets/ui/SciOrganizationPublicationStep.java
deleted file mode 100644
index a33288ad7..000000000
--- a/ccm-sci-assets-organizationpublicationlink/src/com/arsdigita/cms/contentassets/ui/SciOrganizationPublicationStep.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Copyright (c) 2011 Jens Pelzetter,
- * for the Center of Social Politics of the University of Bremen
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public License
- * as published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- */
-package com.arsdigita.cms.contentassets.ui;
-
-import com.arsdigita.cms.ItemSelectionModel;
-import com.arsdigita.cms.ui.authoring.AuthoringKitWizard;
-import com.arsdigita.cms.ui.authoring.BasicItemForm;
-import com.arsdigita.cms.ui.authoring.SimpleEditStep;
-import com.arsdigita.cms.ui.workflow.WorkflowLockedComponentAccess;
-
-/**
- *
- * @author Jens Pelzetter
- */
-public class SciOrganizationPublicationStep extends SimpleEditStep {
-
- private String ADD_PUBLICATION_SHEET_NAME = "addPublication";
-
- public SciOrganizationPublicationStep(ItemSelectionModel itemModel,
- AuthoringKitWizard parent) {
- this(itemModel, parent, null);
- }
-
- public SciOrganizationPublicationStep(ItemSelectionModel itemModel,
- AuthoringKitWizard parent,
- String prefix) {
- super(itemModel, parent, prefix);
-
- BasicItemForm addPublicationSheet =
- new SciOrganizationPublicationAddForm(itemModel);
- add(ADD_PUBLICATION_SHEET_NAME,
- (String) SciOrganizationPublicationGlobalizationUtil.globalize(
- "sciorganizationpublication.ui.addPublication").localize(),
- new WorkflowLockedComponentAccess(addPublicationSheet, itemModel),
- addPublicationSheet.getSaveCancelSection().getCancelButton());
-
- SciOrganizationPublicationTable publicationTable =
- new SciOrganizationPublicationTable(
- itemModel);
- setDisplayComponent(publicationTable);
-
- }
-}
diff --git a/ccm-sci-assets-organizationpublicationlink/src/com/arsdigita/cms/contentassets/ui/SciOrganizationPublicationTable.java b/ccm-sci-assets-organizationpublicationlink/src/com/arsdigita/cms/contentassets/ui/SciOrganizationPublicationTable.java
deleted file mode 100644
index bf451a0c9..000000000
--- a/ccm-sci-assets-organizationpublicationlink/src/com/arsdigita/cms/contentassets/ui/SciOrganizationPublicationTable.java
+++ /dev/null
@@ -1,278 +0,0 @@
-/*
- * Copyright (c) 2011 Jens Pelzetter,
- * for the Center of Social Politics of the University of Bremen
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public License
- * as published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- */
-package com.arsdigita.cms.contentassets.ui;
-
-import com.arsdigita.bebop.Component;
-import com.arsdigita.bebop.ControlLink;
-import com.arsdigita.bebop.Label;
-import com.arsdigita.bebop.Link;
-import com.arsdigita.bebop.PageState;
-import com.arsdigita.bebop.Table;
-import com.arsdigita.bebop.event.TableActionEvent;
-import com.arsdigita.bebop.event.TableActionListener;
-import com.arsdigita.bebop.table.TableCellRenderer;
-import com.arsdigita.bebop.table.TableColumn;
-import com.arsdigita.bebop.table.TableColumnModel;
-import com.arsdigita.bebop.table.TableModel;
-import com.arsdigita.bebop.table.TableModelBuilder;
-import com.arsdigita.cms.CMS;
-import com.arsdigita.cms.ContentSection;
-import com.arsdigita.cms.ItemSelectionModel;
-import com.arsdigita.cms.contentassets.SciOrganizationPublicationCollection;
-import com.arsdigita.cms.contenttypes.GenericOrganizationalUnit;
-import com.arsdigita.cms.contenttypes.GenericOrganizationalUnitWithPublications;
-import com.arsdigita.cms.contenttypes.Publication;
-import com.arsdigita.cms.dispatcher.ItemResolver;
-import com.arsdigita.cms.dispatcher.Utilities;
-import com.arsdigita.dispatcher.ObjectNotFoundException;
-import com.arsdigita.persistence.DataCollection;
-import com.arsdigita.util.Assert;
-import com.arsdigita.util.LockableImpl;
-import java.math.BigDecimal;
-
-/**
- *
- * @author Jens Pelzetter
- */
-public class SciOrganizationPublicationTable
- extends Table
- implements TableActionListener {
-
- private final String TABLE_COL_EDIT = "table_col_edit";
- private final String TABLE_COL_DEL = "table_col_del";
- private ItemSelectionModel itemModel;
-
- public SciOrganizationPublicationTable(ItemSelectionModel itemModel) {
- super();
- this.itemModel = itemModel;
-
- setEmptyView(new Label(SciOrganizationPublicationGlobalizationUtil.
- globalize("sciorganizationpublication.ui.publications.none")));
-
- TableColumnModel columnModel = getColumnModel();
- columnModel.add(new TableColumn(
- 0,
- SciOrganizationPublicationGlobalizationUtil.globalize(
- "sciorganizationpublication.ui.publication").localize(),
- TABLE_COL_EDIT));
- columnModel.add(new TableColumn(
- 1,
- SciOrganizationPublicationGlobalizationUtil.globalize(
- "sciorganizationpublication.ui.publication.remove").localize(),
- TABLE_COL_DEL));
-
- setModelBuilder(
- new SciOrganizationPublicationTableModelBuilder(itemModel));
-
- columnModel.get(0).setCellRenderer(new EditCellRenderer());
- columnModel.get(1).setCellRenderer(new DeleteCellRenderer());
-
- addTableActionListener(this);
- }
-
- private class SciOrganizationPublicationTableModelBuilder
- extends LockableImpl
- implements TableModelBuilder {
-
- private ItemSelectionModel itemModel;
-
- public SciOrganizationPublicationTableModelBuilder(
- ItemSelectionModel itemModel) {
- this.itemModel = itemModel;
- }
-
- @Override
- public TableModel makeModel(Table table, PageState state) {
- table.getRowSelectionModel().clearSelection(state);
- GenericOrganizationalUnit orga =
- (GenericOrganizationalUnit) itemModel.
- getSelectedObject(state);
- return new SciOrganizationPublicationTableModel(table, state, orga);
- }
- }
-
- private class SciOrganizationPublicationTableModel
- implements TableModel {
-
- private Table table;
- private SciOrganizationPublicationCollection publications;
- private Publication publication;
-
- public SciOrganizationPublicationTableModel(Table table,
- PageState state,
- GenericOrganizationalUnit orga) {
- GenericOrganizationalUnitWithPublications organization;
- this.table = table;
- organization = new GenericOrganizationalUnitWithPublications(orga.
- getOID());
- publications = organization.getPublications();
-
- }
-
- public int getColumnCount() {
- return table.getColumnModel().size();
- }
-
- public boolean nextRow() {
- boolean ret;
-
- if ((publications != null) && publications.next()) {
- publication = publications.getPublication();
- ret = true;
- } else {
- ret = false;
- }
-
- return ret;
- }
-
- public Object getElementAt(int columnIndex) {
- switch (columnIndex) {
- case 0:
- return publication.getTitle();
- case 1:
- return SciOrganizationPublicationGlobalizationUtil.globalize(
- "sciorganizationpublication.ui.publication.remove").
- localize();
- default:
- return null;
- }
- }
-
- public Object getKeyAt(int columnIndex) {
- return publication.getID();
- }
- }
-
- private class EditCellRenderer
- extends LockableImpl
- implements TableCellRenderer {
-
- public Component getComponent(Table table,
- PageState state,
- Object value,
- boolean isSelected,
- Object key,
- int row,
- int column) {
- com.arsdigita.cms.SecurityManager securityManager = Utilities.
- getSecurityManager(state);
- GenericOrganizationalUnit orga =
- (GenericOrganizationalUnit) itemModel.
- getSelectedObject(state);
-
- boolean canEdit = securityManager.canAccess(
- state.getRequest(),
- com.arsdigita.cms.SecurityManager.EDIT_ITEM,
- orga);
-
- if (canEdit) {
- Publication publication;
- try {
- publication = new Publication((BigDecimal) key);
- } catch (ObjectNotFoundException ex) {
- return new Label(value.toString());
- }
-
- ContentSection section = CMS.getContext().getContentSection();
- ItemResolver resolver = section.getItemResolver();
- Link link = new Link(value.toString(),
- resolver.generateItemURL(state,
- publication,
- section,
- publication.
- getVersion()));
-
- return link;
- } else {
- Label label = new Label(value.toString());
- return label;
- }
- }
- }
-
- private class DeleteCellRenderer
- extends LockableImpl
- implements TableCellRenderer {
-
- public Component getComponent(Table table,
- PageState state,
- Object value,
- boolean isSelected,
- Object key,
- int row,
- int column) {
- com.arsdigita.cms.SecurityManager securityManager = Utilities.
- getSecurityManager(state);
- GenericOrganizationalUnit orga =
- (GenericOrganizationalUnit) itemModel.
- getSelectedObject(state);
-
- boolean canEdit = securityManager.canAccess(
- state.getRequest(),
- com.arsdigita.cms.SecurityManager.DELETE_ITEM,
- orga);
-
- if (canEdit) {
- ControlLink link = new ControlLink(value.toString());
- link.setConfirmation((String) SciOrganizationPublicationGlobalizationUtil.
- globalize(
- "sciorganizationpublication.ui.publication.confirm.remove").
- localize());
- return link;
- } else {
- Label label = new Label(value.toString());
- return label;
- }
- }
- }
-
- @Override
- public void cellSelected(TableActionEvent event) {
- PageState state = event.getPageState();
-
- Publication publication =
- new Publication(new BigDecimal(event.getRowKey().toString()));
-
- GenericOrganizationalUnit orga = (GenericOrganizationalUnit) itemModel.
- getSelectedObject(state);
- GenericOrganizationalUnitWithPublications organization;
- organization =
- new GenericOrganizationalUnitWithPublications(orga.getOID());
-
- SciOrganizationPublicationCollection publications =
- organization.getPublications();
-
- TableColumn column = getColumnModel().get(event.getColumn().intValue());
-
- if (column.getHeaderKey().toString().equals(TABLE_COL_EDIT)) {
- //Nothing to do here
- } else if (column.getHeaderKey().toString().equals(TABLE_COL_DEL)) {
- Assert.exists(publication, Publication.class);
-
- organization.removePublication(publication);
- }
- }
-
- @Override
- public void headSelected(TableActionEvent event) {
- //Nothing to do.
- }
-}
diff --git a/ccm-sci-assets-organizationpublicationlink/src/com/arsdigita/cms/contenttypes/GenericOrganizationalUnitWithPublications.java b/ccm-sci-assets-organizationpublicationlink/src/com/arsdigita/cms/contenttypes/GenericOrganizationalUnitWithPublications.java
deleted file mode 100644
index aa5f9e585..000000000
--- a/ccm-sci-assets-organizationpublicationlink/src/com/arsdigita/cms/contenttypes/GenericOrganizationalUnitWithPublications.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- * Copyright (c) 2011 Jens Pelzetter,
- * for the Center of Social Politics of the University of Bremen
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public License
- * as published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- */
-package com.arsdigita.cms.contenttypes;
-
-import com.arsdigita.cms.contentassets.SciOrganizationPublicationCollection;
-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
- */
-public class GenericOrganizationalUnitWithPublications extends GenericOrganizationalUnit {
-
- public static final String PUBLICATIONS = "publications";
- //public static final String BASE_DATA_OBJECT_TYPE =
- // "com.arsdigita.cms.contenttypes.GenericOrganizationalUnit";
-
- private GenericOrganizationalUnitWithPublications() {
- this(BASE_DATA_OBJECT_TYPE);
- }
-
- public GenericOrganizationalUnitWithPublications(final BigDecimal id)
- throws DataObjectNotFoundException {
- this(new OID(BASE_DATA_OBJECT_TYPE, id));
- }
-
- public GenericOrganizationalUnitWithPublications(final OID oid)
- throws DataObjectNotFoundException {
- super(oid);
- }
-
- public GenericOrganizationalUnitWithPublications(final DataObject dobj) {
- super(dobj);
- }
-
- private GenericOrganizationalUnitWithPublications(final String type) {
- super(type);
- }
-
- public SciOrganizationPublicationCollection getPublications() {
- return new SciOrganizationPublicationCollection((DataCollection) get(
- PUBLICATIONS));
- }
-
- public void addPublication(Publication publication) {
- Assert.exists(publication, Publication.class);
-
- add(PUBLICATIONS, publication);
- }
-
- public void removePublication(Publication publication) {
- Assert.exists(publication, Publication.class);
-
- remove(PUBLICATIONS, publication);
- }
-}
diff --git a/ccm-sci-assets-organizationpublicationlink/src/com/arsdigita/cms/contenttypes/PublicationWithOrganization.java b/ccm-sci-assets-organizationpublicationlink/src/com/arsdigita/cms/contenttypes/PublicationWithOrganization.java
deleted file mode 100644
index d4984ad4d..000000000
--- a/ccm-sci-assets-organizationpublicationlink/src/com/arsdigita/cms/contenttypes/PublicationWithOrganization.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * Copyright (c) 2011 Jens Pelzetter,
- * for the Center of Social Politics of the University of Bremen
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public License
- * as published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- */
-package com.arsdigita.cms.contenttypes;
-
-import com.arsdigita.cms.contentassets.PublicationSciOrganizationCollection;
-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
- */
-public class PublicationWithOrganization extends Publication {
-
- public static final String ORGANIZATIONS = "organizations";
-
- private PublicationWithOrganization() {
- this(BASE_DATA_OBJECT_TYPE);
- }
-
- public PublicationWithOrganization(BigDecimal id)
- throws DataObjectNotFoundException {
- this(new OID(BASE_DATA_OBJECT_TYPE, id));
- }
-
- public PublicationWithOrganization(OID oid)
- throws DataObjectNotFoundException {
- super(oid);
- }
-
- public PublicationWithOrganization(DataObject dobj) {
- super(dobj);
- }
-
- private PublicationWithOrganization(String type) {
- super(type);
- }
-
- public PublicationSciOrganizationCollection getOrganizations() {
- return new PublicationSciOrganizationCollection((DataCollection) get(ORGANIZATIONS));
- }
-
- public void addOrganization(GenericOrganizationalUnit orga) {
- Assert.exists(orga, GenericOrganizationalUnit.class);
-
- add(ORGANIZATIONS, orga);
- }
-
- public void removeOrganization(GenericOrganizationalUnit orga) {
- Assert.exists(orga, GenericOrganizationalUnit.class);
-
- remove(ORGANIZATIONS, orga);
- }
-}
diff --git a/ccm-sci-assets-organizationpublicationlink/src/com/arsdigita/cms/contenttypes/SciPublicationComparator.java b/ccm-sci-assets-organizationpublicationlink/src/com/arsdigita/cms/contenttypes/SciPublicationComparator.java
deleted file mode 100644
index 6f9c64209..000000000
--- a/ccm-sci-assets-organizationpublicationlink/src/com/arsdigita/cms/contenttypes/SciPublicationComparator.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package com.arsdigita.cms.contenttypes;
-
-import java.util.Comparator;
-
-/**
- *
- * @author Jens Pelzetter
- */
-public class SciPublicationComparator implements Comparator {
-
- public int compare(Publication publication1, Publication publication2) {
- return publication1.getTitle().compareTo(publication2.getTitle());
- }
-
-
-
-}
diff --git a/ccm-sci-types-organization/src/WEB-INF/traversal-adapters/com/arsdigita/cms/contenttypes/SciProject.xml b/ccm-sci-types-organization/src/WEB-INF/traversal-adapters/com/arsdigita/cms/contenttypes/SciProject.xml
index 95716f355..4d7a99ee3 100644
--- a/ccm-sci-types-organization/src/WEB-INF/traversal-adapters/com/arsdigita/cms/contenttypes/SciProject.xml
+++ b/ccm-sci-types-organization/src/WEB-INF/traversal-adapters/com/arsdigita/cms/contenttypes/SciProject.xml
@@ -20,7 +20,7 @@
-
+ -->
diff --git a/ccm-sci-types-organization/src/com/arsdigita/cms/contenttypes/SciDepartmentLoader.java b/ccm-sci-types-organization/src/com/arsdigita/cms/contenttypes/SciDepartmentLoader.java
index e379e206a..e72273cbf 100644
--- a/ccm-sci-types-organization/src/com/arsdigita/cms/contenttypes/SciDepartmentLoader.java
+++ b/ccm-sci-types-organization/src/com/arsdigita/cms/contenttypes/SciDepartmentLoader.java
@@ -55,7 +55,7 @@ public class SciDepartmentLoader extends AbstractContentTypeLoader {
return TYPES;
}
- @Override
+ @Override
protected void prepareSection(final ContentSection section,
final ContentType type,
final LifecycleDefinition lifecycle,
diff --git a/ccm-sci-types-organization/src/com/arsdigita/cms/contenttypes/ui/SciDepartmentPublicationLinkPropertyForm.java b/ccm-sci-types-organization/src/com/arsdigita/cms/contenttypes/ui/SciDepartmentPublicationLinkPropertyForm.java
deleted file mode 100644
index b52ffc8e0..000000000
--- a/ccm-sci-types-organization/src/com/arsdigita/cms/contenttypes/ui/SciDepartmentPublicationLinkPropertyForm.java
+++ /dev/null
@@ -1,43 +0,0 @@
-package com.arsdigita.cms.contenttypes.ui;
-
-
-import com.arsdigita.bebop.PageState;
-import com.arsdigita.cms.ContentItem;
-import com.arsdigita.cms.ContentType;
-import com.arsdigita.cms.ItemSelectionModel;
-import com.arsdigita.cms.contentassets.SciDepartmentPublicationLink;
-import com.arsdigita.cms.contentassets.ui.RelatedLinkPropertyForm;
-import com.arsdigita.cms.contenttypes.Link;
-import com.arsdigita.util.Assert;
-
-/**
- *
- * @author Jens Pelzetter
- */
-public class SciDepartmentPublicationLinkPropertyForm extends RelatedLinkPropertyForm {
-
- public SciDepartmentPublicationLinkPropertyForm(ItemSelectionModel itemModel,
- LinkSelectionModel linkModel,
- String linkListName) {
- this(itemModel, linkModel, linkListName, null);
- }
-
- public SciDepartmentPublicationLinkPropertyForm(ItemSelectionModel itemModel,
- LinkSelectionModel linkModel,
- String linkListName,
- ContentType contentType) {
- super(itemModel, linkModel, linkListName, contentType);
- }
-
- @Override
- protected Link createLink(PageState state) {
- ContentItem item = getContentItem(state);
- Assert.exists(item, ContentItem.class);
- SciDepartmentPublicationLink link = new SciDepartmentPublicationLink();
-
- link.setLinkOwner(item);
-
- return link;
- }
-
-}
diff --git a/ccm-sci-types-organization/src/com/arsdigita/cms/contenttypes/ui/SciDepartmentPublicationsStep.java b/ccm-sci-types-organization/src/com/arsdigita/cms/contenttypes/ui/SciDepartmentPublicationsStep.java
deleted file mode 100644
index 745264527..000000000
--- a/ccm-sci-types-organization/src/com/arsdigita/cms/contenttypes/ui/SciDepartmentPublicationsStep.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Copyright (c) 2010 Jens Pelzetter,
- * for the Center of Social Politics of the University of Bremen
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public License
- * as published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- */
-package com.arsdigita.cms.contenttypes.ui;
-
-import com.arsdigita.bebop.FormSection;
-import com.arsdigita.cms.ContentType;
-import com.arsdigita.cms.ItemSelectionModel;
-import com.arsdigita.cms.contentassets.ui.RelatedLinkPropertiesStep;
-import com.arsdigita.cms.ui.authoring.AuthoringKitWizard;
-
-/**
- *
- * @author Jens Pelzetter
- */
-public class SciDepartmentPublicationsStep extends RelatedLinkPropertiesStep {
-
- public SciDepartmentPublicationsStep(ItemSelectionModel itemModel,
- AuthoringKitWizard parent) {
- super(itemModel, parent);
- }
-
- @Override
- protected void setLinkSelectionModel() {
- super.setLinkSelectionModel();
- linkListName = "SciDepartmentPublications";
- contentType = ContentType.findByAssociatedObjectType(
- "com.arsdigita.cms.contenttypes.Publication");
- }
-
- protected FormSection getEditSheet() {
- return new SciDepartmentPublicationLinkPropertyForm(
- getItemSelectionModel(),
- getLinkSelectionModel(),
- linkListName,
- contentType);
- }
-}
diff --git a/ccm-sci-types-organization/src/com/arsdigita/cms/contenttypes/ui/SciProjectPublicationLinkPropertyForm.java b/ccm-sci-types-organization/src/com/arsdigita/cms/contenttypes/ui/SciProjectPublicationLinkPropertyForm.java
deleted file mode 100644
index 08b5bc0ce..000000000
--- a/ccm-sci-types-organization/src/com/arsdigita/cms/contenttypes/ui/SciProjectPublicationLinkPropertyForm.java
+++ /dev/null
@@ -1,41 +0,0 @@
-package com.arsdigita.cms.contenttypes.ui;
-
-import com.arsdigita.bebop.PageState;
-import com.arsdigita.cms.ContentItem;
-import com.arsdigita.cms.ContentType;
-import com.arsdigita.cms.ItemSelectionModel;
-import com.arsdigita.cms.contentassets.SciProjectPublicationLink;
-import com.arsdigita.cms.contentassets.ui.RelatedLinkPropertyForm;
-import com.arsdigita.cms.contenttypes.Link;
-import com.arsdigita.util.Assert;
-
-/**
- *
- * @author Jens Pelzetter
- */
-public class SciProjectPublicationLinkPropertyForm extends RelatedLinkPropertyForm {
-
- public SciProjectPublicationLinkPropertyForm(ItemSelectionModel itemModel,
- LinkSelectionModel linkModel,
- String linkListName) {
- this(itemModel, linkModel, linkListName, null);
- }
-
- public SciProjectPublicationLinkPropertyForm(ItemSelectionModel itemModel,
- LinkSelectionModel linkModel,
- String linkListName,
- ContentType contentType) {
- super(itemModel, linkModel, linkListName, contentType);
- }
-
- @Override
- protected Link createLink(PageState state) {
- ContentItem item = getContentItem(state);
- Assert.exists(item, ContentItem.class);
- SciProjectPublicationLink link = new SciProjectPublicationLink();
-
- link.setLinkOwner(item);
-
- return link;
- }
-}
diff --git a/ccm-sci-types-organization/src/com/arsdigita/cms/contenttypes/ui/SciProjectPublicationsStep.java b/ccm-sci-types-organization/src/com/arsdigita/cms/contenttypes/ui/SciProjectPublicationsStep.java
deleted file mode 100644
index 1f66526bf..000000000
--- a/ccm-sci-types-organization/src/com/arsdigita/cms/contenttypes/ui/SciProjectPublicationsStep.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * Copyright (c) 2010 Jens Pelzetter,
- * for the Center of Social Politics of the University of Bremen
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public License
- * as published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- */
-package com.arsdigita.cms.contenttypes.ui;
-
-import com.arsdigita.bebop.FormSection;
-import com.arsdigita.cms.ContentType;
-import com.arsdigita.cms.ItemSelectionModel;
-import com.arsdigita.cms.contentassets.ui.RelatedLinkPropertiesStep;
-import com.arsdigita.cms.ui.authoring.AuthoringKitWizard;
-
-/**
- *
- * @author jensp
- */
-public class SciProjectPublicationsStep extends RelatedLinkPropertiesStep {
-
- public SciProjectPublicationsStep(ItemSelectionModel itemModel,
- AuthoringKitWizard parent) {
- super(itemModel, parent);
- }
-
- @Override
- protected void setLinkSelectionModel() {
- super.setLinkSelectionModel();
- linkListName = "SciProjectPublications";
- contentType = ContentType.findByAssociatedObjectType(
- "com.arsdigita.cms.contenttypes.Publication");
- }
-
- @Override
- protected FormSection getEditSheet() {
- return new SciProjectPublicationLinkPropertyForm(
- getItemSelectionModel(),
- getLinkSelectionModel(),
- linkListName,
- contentType);
- }
-}
diff --git a/ccm-sci-assets-organizationpublicationlink/application.xml b/ccm-sci-types-organizationwithpublications/application.xml
similarity index 79%
rename from ccm-sci-assets-organizationpublicationlink/application.xml
rename to ccm-sci-types-organizationwithpublications/application.xml
index 813df422d..5b6a0be1f 100644
--- a/ccm-sci-assets-organizationpublicationlink/application.xml
+++ b/ccm-sci-types-organizationwithpublications/application.xml
@@ -1,7 +1,7 @@
@@ -21,6 +21,7 @@
- Links a publication to a SciOrganization, SciDepartment or SciProject.
+ Extended versions of the types SciOrganization, SciDepartment and SciProject,
+ with an association to publications.
\ No newline at end of file
diff --git a/ccm-sci-assets-organizationpublicationlink/sql/ccm-sci-assets-organizationpublicationlink/postgres-create.sql b/ccm-sci-types-organizationwithpublications/sql/ccm-sci-types-organizationwithpublications/postgres-create.sql
similarity index 100%
rename from ccm-sci-assets-organizationpublicationlink/sql/ccm-sci-assets-organizationpublicationlink/postgres-create.sql
rename to ccm-sci-types-organizationwithpublications/sql/ccm-sci-types-organizationwithpublications/postgres-create.sql
diff --git a/ccm-sci-assets-organizationpublicationlink/src/ccm-sci-assets-organizationpublicationlink.config b/ccm-sci-types-organizationwithpublications/src/ccm-sci-types-organizationwithpublications.config
similarity index 100%
rename from ccm-sci-assets-organizationpublicationlink/src/ccm-sci-assets-organizationpublicationlink.config
rename to ccm-sci-types-organizationwithpublications/src/ccm-sci-types-organizationwithpublications.config
diff --git a/ccm-sci-types-organizationwithpublications/src/ccm-sci-types-organizationwithpublications.load b/ccm-sci-types-organizationwithpublications/src/ccm-sci-types-organizationwithpublications.load
new file mode 100644
index 000000000..467655745
--- /dev/null
+++ b/ccm-sci-types-organizationwithpublications/src/ccm-sci-types-organizationwithpublications.load
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ccm-sci-assets-organizationpublicationlink/src/com/arsdigita/cms/contenttypes/SciDepartmentWithPublications.java b/ccm-sci-types-organizationwithpublications/src/com/arsdigita/cms/contenttypes/SciDepartmentWithPublications.java
similarity index 74%
rename from ccm-sci-assets-organizationpublicationlink/src/com/arsdigita/cms/contenttypes/SciDepartmentWithPublications.java
rename to ccm-sci-types-organizationwithpublications/src/com/arsdigita/cms/contenttypes/SciDepartmentWithPublications.java
index 9f35ccc7f..bca77d447 100644
--- a/ccm-sci-assets-organizationpublicationlink/src/com/arsdigita/cms/contenttypes/SciDepartmentWithPublications.java
+++ b/ccm-sci-types-organizationwithpublications/src/com/arsdigita/cms/contenttypes/SciDepartmentWithPublications.java
@@ -19,11 +19,12 @@
*/
package com.arsdigita.cms.contenttypes;
-import com.arsdigita.cms.contentassets.SciOrganizationPublicationCollection;
+import com.arsdigita.persistence.DataCollection;
import com.arsdigita.persistence.DataObject;
import com.arsdigita.persistence.DataQuery;
import com.arsdigita.persistence.OID;
import com.arsdigita.persistence.SessionManager;
+import com.arsdigita.util.Assert;
import java.math.BigDecimal;
/**
@@ -31,36 +32,38 @@ import java.math.BigDecimal;
* @author Jens Pelzetter
*/
public class SciDepartmentWithPublications extends SciDepartment {
-
- private GenericOrganizationalUnitWithPublications departmentWithPublications;
-
- private SciDepartmentWithPublications() {
+
+ public static final String BASE_DATA_OBJECT_TYPE =
+ "com.arsdigita.cms.contenttypes.SciDepartmentWithPublications";
+ public static final String PUBLICATIONS = "publications";
+
+ public SciDepartmentWithPublications() {
+ this(BASE_DATA_OBJECT_TYPE);
}
-
- private SciDepartmentWithPublications(final BigDecimal id) {
+
+ public SciDepartmentWithPublications(final BigDecimal id) {
+ this(new OID(BASE_DATA_OBJECT_TYPE, id));
}
-
- private SciDepartmentWithPublications(final OID oid) {
+
+ public SciDepartmentWithPublications(final OID oid) {
+ super(oid);
}
-
- private SciDepartmentWithPublications(final DataObject dobj) {
+
+ public SciDepartmentWithPublications(final DataObject dobj) {
+ super(dobj);
}
-
- private SciDepartmentWithPublications(final String type) {
+
+ public SciDepartmentWithPublications(final String type) {
+ super(type);
+
}
-
- public SciDepartmentWithPublications(final SciDepartment department) {
- super(department.getID());
- departmentWithPublications =
- new GenericOrganizationalUnitWithPublications(department.getID());
- }
-
+
public boolean hasPublications(final boolean merge) {
DataQuery query =
SessionManager.getSession().retrieveQuery(
- "com.arsdigita.cms.contentassets.getIdsOfPublicationsOfSciOrganization");
- query.setParameter("organization", getID());
-
+ "com.arsdigita.cms.contentassets.getIdsOfPublicationsOfSciDepartment");
+ query.setParameter("department", getID());
+
if (query.size() > 0) {
query.close();
return true;
@@ -71,7 +74,7 @@ public class SciDepartmentWithPublications extends SciDepartment {
SessionManager.getSession().retrieveQuery(
"com.arsdigita.cms.contenttypes.getIdsOfSubDepartmentsOfSciDepartment");
departmentsQuery.setParameter("department", getID());
-
+
if (departmentsQuery.size() > 0) {
BigDecimal departmentId;
boolean result = false;
@@ -79,12 +82,12 @@ public class SciDepartmentWithPublications extends SciDepartment {
departmentId = (BigDecimal) departmentsQuery.get(
"departmentId");
result = hasPublications(departmentId, merge);
-
+
if (result) {
break;
}
}
-
+
departmentsQuery.close();
return result;
} else {
@@ -97,14 +100,14 @@ public class SciDepartmentWithPublications extends SciDepartment {
}
}
}
-
+
private boolean hasPublications(final BigDecimal departmentId,
final boolean merge) {
DataQuery query =
SessionManager.getSession().retrieveQuery(
"com.arsdigita.cms.contentassets.getIdsOfPublicationsOfSciDepartment");
query.setParameter("departmentId", departmentId);
-
+
if (query.size() > 0) {
query.close();
return true;
@@ -115,7 +118,7 @@ public class SciDepartmentWithPublications extends SciDepartment {
SessionManager.getSession().retrieveQuery(
"com.arsdigita.cms.contenttypes.getIdsOfSubDepartmentsOfSciDepartment");
subDepartmentsQuery.setParameter("department", departmentId);
-
+
if (query.size() > 0) {
BigDecimal subDepartmentId;
boolean result = false;
@@ -123,14 +126,14 @@ public class SciDepartmentWithPublications extends SciDepartment {
subDepartmentId = (BigDecimal) subDepartmentsQuery.get(
"departmentId");
result = hasPublications(subDepartmentId, merge);
-
+
if (result) {
break;
}
}
-
+
subDepartmentsQuery.close();
- return result;
+ return result;
} else {
subDepartmentsQuery.close();
return false;
@@ -141,8 +144,23 @@ public class SciDepartmentWithPublications extends SciDepartment {
}
}
}
+
+ public SciDepartmentPublicationsCollection getPublications() {
+ return new SciDepartmentPublicationsCollection((DataCollection) get(
+ PUBLICATIONS));
+ }
- public SciOrganizationPublicationCollection getPublications() {
- return departmentWithPublications.getPublications();
+ public void addPublication(final Publication publication) {
+ Assert.exists(publication, Publication.class);
+
+ DataObject link = add(PUBLICATIONS, publication);
+ link.set("publicationOrder", Integer.valueOf((int) getPublications().size()));
+ link.save();
+ }
+
+ public void removePublication(final Publication publication) {
+ Assert.exists(publication, Publication.class);
+
+ remove(PUBLICATIONS, publication);
}
}
diff --git a/ccm-sci-assets-organizationpublicationlink/src/com/arsdigita/cms/contenttypes/SciOrganizationWithPublications.java b/ccm-sci-types-organizationwithpublications/src/com/arsdigita/cms/contenttypes/SciOrganizationWithPublications.java
similarity index 69%
rename from ccm-sci-assets-organizationpublicationlink/src/com/arsdigita/cms/contenttypes/SciOrganizationWithPublications.java
rename to ccm-sci-types-organizationwithpublications/src/com/arsdigita/cms/contenttypes/SciOrganizationWithPublications.java
index 38a35ba0e..b0004fe5e 100644
--- a/ccm-sci-assets-organizationpublicationlink/src/com/arsdigita/cms/contenttypes/SciOrganizationWithPublications.java
+++ b/ccm-sci-types-organizationwithpublications/src/com/arsdigita/cms/contenttypes/SciOrganizationWithPublications.java
@@ -19,11 +19,12 @@
*/
package com.arsdigita.cms.contenttypes;
-import com.arsdigita.cms.contentassets.SciOrganizationPublicationCollection;
+import com.arsdigita.persistence.DataCollection;
import com.arsdigita.persistence.DataObject;
import com.arsdigita.persistence.DataQuery;
import com.arsdigita.persistence.OID;
import com.arsdigita.persistence.SessionManager;
+import com.arsdigita.util.Assert;
import java.math.BigDecimal;
/**
@@ -32,34 +33,37 @@ import java.math.BigDecimal;
*/
public class SciOrganizationWithPublications extends SciOrganization {
- private GenericOrganizationalUnitWithPublications orgaWithPublications;
- private static final SciOrganizationWithPublicationsConfig config = new SciOrganizationWithPublicationsConfig();
-
+ public static final String BASE_DATA_OBJECT_TYPE =
+ "com.arsdigita.cms.contenttypes.SciOrganizationWithPublications";
+ public static final String PUBLICATIONS = "publications";
+ public static final String PUBLICATION_ORDER = "publicationOrder";
+ private static final SciOrganizationWithPublicationsConfig config =
+ new SciOrganizationWithPublicationsConfig();
+
static {
- config.load();
+ config.load();
}
- private SciOrganizationWithPublications() {
+ public SciOrganizationWithPublications() {
+ this(BASE_DATA_OBJECT_TYPE);
}
- private SciOrganizationWithPublications(final BigDecimal id) {
+ public SciOrganizationWithPublications(final BigDecimal id) {
+ this(new OID(BASE_DATA_OBJECT_TYPE, id));
}
- private SciOrganizationWithPublications(final OID oid) {
+ public SciOrganizationWithPublications(final OID oid) {
+ super(oid);
}
- private SciOrganizationWithPublications(final DataObject dobj) {
+ public SciOrganizationWithPublications(final DataObject dobj) {
+ super(dobj);
}
- private SciOrganizationWithPublications(final String type) {
+ public SciOrganizationWithPublications(final String type) {
+ super(type);
}
- public SciOrganizationWithPublications(final SciOrganization organization) {
- super(organization.getID());
- orgaWithPublications = new GenericOrganizationalUnitWithPublications(
- organization.getID());
- }
-
public static SciOrganizationWithPublicationsConfig getConfig() {
return config;
}
@@ -67,7 +71,7 @@ public class SciOrganizationWithPublications extends SciOrganization {
public boolean hasPublications(final boolean merge) {
DataQuery query =
SessionManager.getSession().retrieveQuery(
- "com.arsdigita.cms.contentassets.getIdsOfPublicationsOfSciOrganization");
+ "com.arsdigita.cms.contenttypes.getIdsOfPublicationsOfSciOrganization");
query.setParameter("organization", getID());
if (query.size() > 0) {
@@ -79,8 +83,8 @@ public class SciOrganizationWithPublications extends SciOrganization {
DataQuery departmentsQuery =
SessionManager.getSession().retrieveQuery(
"com.arsdigita.cms.contenttypes.getIdsOfDepartmentsOfSciOrganization");
- departmentsQuery.setParameter("organization",
- getID());
+ departmentsQuery.setParameter("organization",
+ getID());
if (departmentsQuery.size() > 0) {
BigDecimal departmentId;
@@ -125,22 +129,22 @@ public class SciOrganizationWithPublications extends SciOrganization {
SessionManager.getSession().retrieveQuery(
"com.arsdigita.cms.contenttypes.getIdsOfSubDepartmentsOfSciDepartment");
subDepartmentsQuery.setParameter("department", departmentId);
-
+
if (subDepartmentsQuery.size() > 0) {
BigDecimal subDepartmentId;
boolean result = false;
- while(subDepartmentsQuery.next()) {
+ while (subDepartmentsQuery.next()) {
subDepartmentId = (BigDecimal) subDepartmentsQuery.get(
"departmentId");
result = hasPublications(subDepartmentId, merge);
-
+
if (result) {
break;
}
}
-
+
subDepartmentsQuery.close();
- return result;
+ return result;
} else {
subDepartmentsQuery.close();
return false;
@@ -151,8 +155,24 @@ public class SciOrganizationWithPublications extends SciOrganization {
}
}
}
-
- public SciOrganizationPublicationCollection getPublications() {
- return orgaWithPublications.getPublications();
+
+ public SciOrganizationPublicationsCollection getPublications() {
+ return new SciOrganizationPublicationsCollection((DataCollection) get(
+ PUBLICATIONS));
+ }
+
+ public void addPublication(final Publication publication) {
+ Assert.exists(publication, Publication.class);
+
+ DataObject link = add(PUBLICATIONS, publication);
+ link.set(PUBLICATION_ORDER, Integer.valueOf(
+ (int) getPublications().size()));
+ link.save();
+ }
+
+ public void removePublication(final Publication publication) {
+ Assert.exists(publication, Publication.class);
+
+ remove(PUBLICATIONS, publication);
}
}
diff --git a/ccm-sci-assets-organizationpublicationlink/src/com/arsdigita/cms/contenttypes/SciOrganizationWithPublicationsConfig.java b/ccm-sci-types-organizationwithpublications/src/com/arsdigita/cms/contenttypes/SciOrganizationWithPublicationsConfig.java
similarity index 100%
rename from ccm-sci-assets-organizationpublicationlink/src/com/arsdigita/cms/contenttypes/SciOrganizationWithPublicationsConfig.java
rename to ccm-sci-types-organizationwithpublications/src/com/arsdigita/cms/contenttypes/SciOrganizationWithPublicationsConfig.java
diff --git a/ccm-sci-assets-organizationpublicationlink/src/com/arsdigita/cms/contenttypes/SciOrganizationWithPublicationsConfig_parameter.properties b/ccm-sci-types-organizationwithpublications/src/com/arsdigita/cms/contenttypes/SciOrganizationWithPublicationsConfig_parameter.properties
similarity index 100%
rename from ccm-sci-assets-organizationpublicationlink/src/com/arsdigita/cms/contenttypes/SciOrganizationWithPublicationsConfig_parameter.properties
rename to ccm-sci-types-organizationwithpublications/src/com/arsdigita/cms/contenttypes/SciOrganizationWithPublicationsConfig_parameter.properties
diff --git a/ccm-sci-assets-organizationpublicationlink/src/com/arsdigita/cms/contenttypes/SciProjectWithPublications.java b/ccm-sci-types-organizationwithpublications/src/com/arsdigita/cms/contenttypes/SciProjectWithPublications.java
similarity index 75%
rename from ccm-sci-assets-organizationpublicationlink/src/com/arsdigita/cms/contenttypes/SciProjectWithPublications.java
rename to ccm-sci-types-organizationwithpublications/src/com/arsdigita/cms/contenttypes/SciProjectWithPublications.java
index b8b2cded4..f3c7a83f7 100644
--- a/ccm-sci-assets-organizationpublicationlink/src/com/arsdigita/cms/contenttypes/SciProjectWithPublications.java
+++ b/ccm-sci-types-organizationwithpublications/src/com/arsdigita/cms/contenttypes/SciProjectWithPublications.java
@@ -19,11 +19,12 @@
*/
package com.arsdigita.cms.contenttypes;
-import com.arsdigita.cms.contentassets.SciOrganizationPublicationCollection;
+import com.arsdigita.persistence.DataCollection;
import com.arsdigita.persistence.DataObject;
import com.arsdigita.persistence.DataQuery;
import com.arsdigita.persistence.OID;
import com.arsdigita.persistence.SessionManager;
+import com.arsdigita.util.Assert;
import java.math.BigDecimal;
/**
@@ -32,33 +33,34 @@ import java.math.BigDecimal;
*/
public class SciProjectWithPublications extends SciProject {
- private GenericOrganizationalUnitWithPublications projectWithPublications;
+ public static final String BASE_DATA_OBJECT_TYPE =
+ "com.arsdigita.cms.contenttypes.SciProjectWithPublications";
+ public static final String PUBLICATIONS = "publications";
- private SciProjectWithPublications() {
+ public SciProjectWithPublications() {
+ this(BASE_DATA_OBJECT_TYPE);
}
- private SciProjectWithPublications(final BigDecimal id) {
+ public SciProjectWithPublications(final BigDecimal id) {
+ this(new OID(BASE_DATA_OBJECT_TYPE, id));
}
- private SciProjectWithPublications(final OID oid) {
+ public SciProjectWithPublications(final OID oid) {
+ super(oid);
}
- private SciProjectWithPublications(final DataObject dobj) {
+ public SciProjectWithPublications(final DataObject dobj) {
+ super(dobj);
}
- private SciProjectWithPublications(final String type) {
- }
-
- public SciProjectWithPublications(final SciProject project) {
- super(project.getID());
- projectWithPublications =
- new GenericOrganizationalUnitWithPublications(project.getID());
+ public SciProjectWithPublications(final String type) {
+ super(type);
}
public boolean hasPublications(final boolean merge) {
DataQuery query =
SessionManager.getSession().retrieveQuery(
- "com.arsdigita.cms.contentassets.getIdsOfPublicationsOfSciOrganization");
+ "com.arsdigita.cms.contentassets.getIdsOfPublicationsOfSciProject");
query.setParameter("organization", getID());
if (query.size() > 0) {
@@ -141,8 +143,24 @@ public class SciProjectWithPublications extends SciProject {
}
}
}
-
- public SciOrganizationPublicationCollection getPublications() {
- return projectWithPublications.getPublications();
+
+ public SciProjectPublicationsCollection getPublications() {
+ return new SciProjectPublicationsCollection((DataCollection) get(
+ PUBLICATIONS));
+ }
+
+ public void addPublication(final Publication publication) {
+ Assert.exists(publication, Publication.class);
+
+ DataObject link = add(PUBLICATIONS, publication);
+ link.set("publicationOrder", Integer.valueOf((int) getPublications().
+ size()));
+ link.save();
+ }
+
+ public void removePublication(final Publication publication) {
+ Assert.exists(publication, Publication.class);
+
+ remove(PUBLICATIONS, publication);
}
}
diff --git a/ccm-sci-types-organizationwithpublications/src/com/arsdigita/cms/contenttypes/SciPublicationTitleComparator.java b/ccm-sci-types-organizationwithpublications/src/com/arsdigita/cms/contenttypes/SciPublicationTitleComparator.java
new file mode 100644
index 000000000..80a0ff30a
--- /dev/null
+++ b/ccm-sci-types-organizationwithpublications/src/com/arsdigita/cms/contenttypes/SciPublicationTitleComparator.java
@@ -0,0 +1,43 @@
+package com.arsdigita.cms.contenttypes;
+
+import java.util.Comparator;
+
+/**
+ *
+ * @author Jens Pelzetter
+ */
+public class SciPublicationTitleComparator implements Comparator {
+
+ public int compare(Publication publication1, Publication publication2) {
+ String title1;
+ String title2;
+ if (publication1.getTitle().startsWith("\"")) {
+ title1 = publication1.getTitle().substring(1,
+ publication1.getTitle().
+ length() - 1);
+ } else if (publication1.getTitle().startsWith("'")) {
+ title1 = publication1.getTitle().substring(1,
+ publication1.getTitle().
+ length() - 1);
+ } else {
+ title1 = publication1.getTitle();
+ }
+
+ if (publication2.getTitle().startsWith("\"")) {
+ title2 = publication2.getTitle().substring(2,
+ publication2.getTitle().
+ length() - 1);
+ } else if (publication2.getTitle().startsWith("'")) {
+ title2 = publication2.getTitle().substring(2,
+ publication2.getTitle().
+ length() - 1);
+ } else {
+ title2 = publication2.getTitle();
+ }
+
+
+
+ return title1.compareTo(title2);
+ //return publication1.getTitle().compareTo(publication2.getTitle());
+ }
+}
diff --git a/ccm-sci-assets-organizationpublicationlink/src/com/arsdigita/cms/contenttypes/ui/PublicationXmlHelper.java b/ccm-sci-types-organizationwithpublications/src/com/arsdigita/cms/contenttypes/ui/PublicationXmlHelper.java
similarity index 100%
rename from ccm-sci-assets-organizationpublicationlink/src/com/arsdigita/cms/contenttypes/ui/PublicationXmlHelper.java
rename to ccm-sci-types-organizationwithpublications/src/com/arsdigita/cms/contenttypes/ui/PublicationXmlHelper.java
diff --git a/ccm-sci-assets-organizationpublicationlink/src/com/arsdigita/cms/contenttypes/ui/SciDepartmentsWithPublicationsPanel.java b/ccm-sci-types-organizationwithpublications/src/com/arsdigita/cms/contenttypes/ui/SciDepartmentWithPublicationsPanel.java
similarity index 80%
rename from ccm-sci-assets-organizationpublicationlink/src/com/arsdigita/cms/contenttypes/ui/SciDepartmentsWithPublicationsPanel.java
rename to ccm-sci-types-organizationwithpublications/src/com/arsdigita/cms/contenttypes/ui/SciDepartmentWithPublicationsPanel.java
index d2e520750..f9086a97c 100644
--- a/ccm-sci-assets-organizationpublicationlink/src/com/arsdigita/cms/contenttypes/ui/SciDepartmentsWithPublicationsPanel.java
+++ b/ccm-sci-types-organizationwithpublications/src/com/arsdigita/cms/contenttypes/ui/SciDepartmentWithPublicationsPanel.java
@@ -21,14 +21,14 @@ package com.arsdigita.cms.contenttypes.ui;
import com.arsdigita.bebop.PageState;
import com.arsdigita.cms.ContentItemXMLRenderer;
-import com.arsdigita.cms.contentassets.SciOrganizationPublicationCollection;
import com.arsdigita.cms.contenttypes.Publication;
import com.arsdigita.cms.contenttypes.SciDepartment;
+import com.arsdigita.cms.contenttypes.SciDepartmentPublicationsCollection;
import com.arsdigita.cms.contenttypes.SciDepartmentSubDepartmentsCollection;
import com.arsdigita.cms.contenttypes.SciDepartmentWithPublications;
import com.arsdigita.cms.contenttypes.SciOrganizationWithPublications;
import com.arsdigita.cms.contenttypes.SciOrganizationWithPublicationsConfig;
-import com.arsdigita.cms.contenttypes.SciPublicationComparator;
+import com.arsdigita.cms.contenttypes.SciPublicationTitleComparator;
import com.arsdigita.cms.dispatcher.SimpleXMLGenerator;
import com.arsdigita.xml.Element;
import java.util.Collections;
@@ -41,7 +41,7 @@ import java.util.Set;
*
* @author Jens Pelzetter
*/
-public class SciDepartmentsWithPublicationsPanel extends SciDepartmentPanel {
+public class SciDepartmentWithPublicationsPanel extends SciDepartmentPanel {
public static final String SHOW_PUBLICATIONS = "publications";
private boolean displayPublications = true;
@@ -64,10 +64,11 @@ public class SciDepartmentsWithPublicationsPanel extends SciDepartmentPanel {
SciOrganizationWithPublications.
getConfig();
- SciDepartmentWithPublications dep = new SciDepartmentWithPublications(
- department);
+ SciDepartmentWithPublications dep =
+ (SciDepartmentWithPublications) department;
- if ((dep.hasPublications(config.getOrganizationPublicationsMerge()))
+ if ((dep.hasPublications(
+ config.getOrganizationPublicationsMerge()))
&& displayPublications) {
element.newChildElement("publications");
}
@@ -79,14 +80,21 @@ public class SciDepartmentsWithPublicationsPanel extends SciDepartmentPanel {
while (subDepartments.next()) {
SciDepartment dep;
SciDepartmentWithPublications department;
- SciOrganizationPublicationCollection departmentPublications;
+ SciDepartmentPublicationsCollection departmentPublications;
dep = subDepartments.getSubDepartment();
- department = new SciDepartmentWithPublications(dep);
+ department = (SciDepartmentWithPublications) dep;
departmentPublications = department.getPublications();
+ Publication publication;
while (departmentPublications.next()) {
- publications.add(departmentPublications.getPublication());
+ publication = (Publication) departmentPublications.
+ getPublication().getLiveVersion();
+ if (publication == null) {
+ continue;
+ } else {
+ publications.add(publication);
+ }
}
SciDepartmentSubDepartmentsCollection subSubDepartments = dep.
@@ -102,18 +110,24 @@ public class SciDepartmentsWithPublicationsPanel extends SciDepartmentPanel {
final Element parent,
final PageState state) {
final SciDepartmentWithPublications dep =
- new SciDepartmentWithPublications(
- department);
+ (SciDepartmentWithPublications) department;
if (SciOrganizationWithPublications.getConfig().
getOrganizationPublicationsMerge()) {
List publications;
publications = new LinkedList();
- SciOrganizationPublicationCollection departmentPublications;
+ SciDepartmentPublicationsCollection departmentPublications;
departmentPublications = dep.getPublications();
+ Publication publication;
while (departmentPublications.next()) {
- publications.add(departmentPublications.getPublication());
+ publication = (Publication) departmentPublications.
+ getPublication().getLiveVersion();
+ if (publication == null) {
+ continue;
+ } else {
+ publications.add(publication);
+ }
}
mergePublications(department.getSubDepartments(), publications);
@@ -125,7 +139,7 @@ public class SciDepartmentsWithPublicationsPanel extends SciDepartmentPanel {
publicationsSet);
Collections.sort(publicationsWithoutDoubles,
- new SciPublicationComparator());
+ new SciPublicationTitleComparator());
long pageNumber = getPageNumber(state);
long pageCount = getPageCount(publicationsWithoutDoubles.size());
@@ -145,11 +159,11 @@ public class SciDepartmentsWithPublicationsPanel extends SciDepartmentPanel {
final ContentItemXMLRenderer renderer = new ContentItemXMLRenderer(
publicationsElem);
renderer.setWrapAttributes(true);
- for (Publication publication : publicationsToShow) {
- renderer.walk(publication, SimpleXMLGenerator.class.getName());
+ for (Publication pub : publicationsToShow) {
+ renderer.walk(pub, SimpleXMLGenerator.class.getName());
}
} else {
- SciOrganizationPublicationCollection departmentPublications;
+ SciDepartmentPublicationsCollection departmentPublications;
departmentPublications = dep.getPublications();
List publications = new LinkedList();
@@ -158,7 +172,7 @@ public class SciDepartmentsWithPublicationsPanel extends SciDepartmentPanel {
publications.add(departmentPublications.getPublication());
}
- Collections.sort(publications, new SciPublicationComparator());
+ Collections.sort(publications, new SciPublicationTitleComparator());
long pageNumber = getPageNumber(state);
long pageCount = getPageCount(publications.size());
diff --git a/ccm-sci-assets-organizationpublicationlink/src/com/arsdigita/cms/contentassets/ui/SciOrganizationPublicationGlobalizationUtil.java b/ccm-sci-types-organizationwithpublications/src/com/arsdigita/cms/contenttypes/ui/SciOrganizationWithPublicationsGlobalizationUtil.java
similarity index 82%
rename from ccm-sci-assets-organizationpublicationlink/src/com/arsdigita/cms/contentassets/ui/SciOrganizationPublicationGlobalizationUtil.java
rename to ccm-sci-types-organizationwithpublications/src/com/arsdigita/cms/contenttypes/ui/SciOrganizationWithPublicationsGlobalizationUtil.java
index 57df450f3..7894140f1 100644
--- a/ccm-sci-assets-organizationpublicationlink/src/com/arsdigita/cms/contentassets/ui/SciOrganizationPublicationGlobalizationUtil.java
+++ b/ccm-sci-types-organizationwithpublications/src/com/arsdigita/cms/contenttypes/ui/SciOrganizationWithPublicationsGlobalizationUtil.java
@@ -17,18 +17,19 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*/
-package com.arsdigita.cms.contentassets.ui;
+package com.arsdigita.cms.contenttypes.ui;
+import com.arsdigita.cms.contentassets.ui.*;
import com.arsdigita.globalization.GlobalizedMessage;
/**
*
* @author Jens Pelzetter
*/
-public class SciOrganizationPublicationGlobalizationUtil {
+public class SciOrganizationWithPublicationsGlobalizationUtil {
public static final String BUNDLE_NAME =
- "com.arsdigita.cms.contentassets.ui.SciOrganizationPublicationResources";
+ "com.arsdigita.cms.contenttypes.ui.SciOrganizationWithPublicationsResources";
public static GlobalizedMessage globalize(String key) {
return new GlobalizedMessage(key, BUNDLE_NAME);
diff --git a/ccm-sci-assets-organizationpublicationlink/src/com/arsdigita/cms/contenttypes/ui/SciOrganizationWithPublicationsPanel.java b/ccm-sci-types-organizationwithpublications/src/com/arsdigita/cms/contenttypes/ui/SciOrganizationWithPublicationsPanel.java
similarity index 59%
rename from ccm-sci-assets-organizationpublicationlink/src/com/arsdigita/cms/contenttypes/ui/SciOrganizationWithPublicationsPanel.java
rename to ccm-sci-types-organizationwithpublications/src/com/arsdigita/cms/contenttypes/ui/SciOrganizationWithPublicationsPanel.java
index 4939d6876..6746549c9 100644
--- a/ccm-sci-assets-organizationpublicationlink/src/com/arsdigita/cms/contenttypes/ui/SciOrganizationWithPublicationsPanel.java
+++ b/ccm-sci-types-organizationwithpublications/src/com/arsdigita/cms/contenttypes/ui/SciOrganizationWithPublicationsPanel.java
@@ -21,24 +21,21 @@ package com.arsdigita.cms.contenttypes.ui;
import com.arsdigita.bebop.PageState;
import com.arsdigita.cms.ContentItemXMLRenderer;
-import com.arsdigita.cms.contentassets.SciOrganizationPublicationCollection;
-import com.arsdigita.cms.contenttypes.ArticleInCollectedVolume;
-import com.arsdigita.cms.contenttypes.ArticleInJournal;
-import com.arsdigita.cms.contenttypes.AuthorshipCollection;
-import com.arsdigita.cms.contenttypes.GenericPerson;
import com.arsdigita.cms.contenttypes.Publication;
-import com.arsdigita.cms.contenttypes.PublicationWithPublisher;
-import com.arsdigita.cms.contenttypes.Publisher;
import com.arsdigita.cms.contenttypes.SciDepartment;
+import com.arsdigita.cms.contenttypes.SciDepartmentPublicationsCollection;
import com.arsdigita.cms.contenttypes.SciDepartmentSubDepartmentsCollection;
import com.arsdigita.cms.contenttypes.SciDepartmentWithPublications;
import com.arsdigita.cms.contenttypes.SciOrganization;
import com.arsdigita.cms.contenttypes.SciOrganizationDepartmentsCollection;
+import com.arsdigita.cms.contenttypes.SciOrganizationPublicationsCollection;
import com.arsdigita.cms.contenttypes.SciOrganizationWithPublications;
import com.arsdigita.cms.contenttypes.SciOrganizationWithPublicationsConfig;
-import com.arsdigita.cms.contenttypes.SciPublicationComparator;
+import com.arsdigita.cms.contenttypes.SciPublicationTitleComparator;
import com.arsdigita.cms.dispatcher.SimpleXMLGenerator;
import com.arsdigita.xml.Element;
+import java.util.ArrayList;
+import java.util.Collection;
import java.util.Collections;
import java.util.HashSet;
import java.util.LinkedList;
@@ -72,8 +69,7 @@ public class SciOrganizationWithPublicationsPanel extends SciOrganizationPanel {
config = SciOrganizationWithPublications.getConfig();
SciOrganizationWithPublications orga =
- new SciOrganizationWithPublications(
- organization);
+ (SciOrganizationWithPublications) organization;
long start = System.currentTimeMillis();
if ((orga.hasPublications(config.getOrganizationPublicationsMerge()))
@@ -87,18 +83,30 @@ public class SciOrganizationWithPublicationsPanel extends SciOrganizationPanel {
protected void mergePublications(
final SciOrganizationDepartmentsCollection departments,
- final List publications) {
+ final Collection publications) {
while (departments.next()) {
SciDepartment dep;
SciDepartmentWithPublications department;
- SciOrganizationPublicationCollection departmentPublications;
+ SciDepartmentPublicationsCollection departmentPublications;
dep = departments.getDepartment();
- department = new SciDepartmentWithPublications(dep);
+ department = (SciDepartmentWithPublications) dep;
departmentPublications = department.getPublications();
+ if (publications instanceof ArrayList) {
+ ((ArrayList) publications).ensureCapacity(
+ publications.size()
+ + (int) departmentPublications.size());
+ }
+
+ Publication publication;
while (departmentPublications.next()) {
- publications.add(departmentPublications.getPublication());
+ publication = (Publication) departmentPublications.getPublication().getLiveVersion();
+ if (publication == null) {
+ continue;
+ } else {
+ publications.add(publication);
+ }
}
SciDepartmentSubDepartmentsCollection subDepartments;
@@ -114,33 +122,51 @@ public class SciOrganizationWithPublicationsPanel extends SciOrganizationPanel {
final Element parent,
final PageState state) {
final SciOrganizationWithPublications orga =
- new SciOrganizationWithPublications(
- organization);
+ (SciOrganizationWithPublications) organization;
if (SciOrganizationWithPublications.getConfig().
getOrganizationPublicationsMerge()) {
long start = System.currentTimeMillis();
List publications;
- publications = new LinkedList();
- SciOrganizationPublicationCollection orgaPublications;
+ SciOrganizationPublicationsCollection orgaPublications;
orgaPublications = orga.getPublications();
+ publications = new ArrayList((int) orgaPublications.
+ size());
+ Publication publication;
while (orgaPublications.next()) {
- publications.add(orgaPublications.getPublication());
+ publication = (Publication) orgaPublications.getPublication().getLiveVersion();
+ if (publication == null) {
+ continue;
+ } else {
+ publications.add(publication);
+ }
}
- mergePublications(organization.getDepartments(),
- publications);
+ SciOrganizationDepartmentsCollection departments = organization.
+ getDepartments();
+ long mergeStart = System.currentTimeMillis();
+ mergePublications(departments, publications);
+ System.err.printf("Merged publications in %d ms\n", System.
+ currentTimeMillis() - mergeStart);
+ long sortStart = System.currentTimeMillis();
Set publicationsSet;
List publicationWithoutDoubles;
publicationsSet = new HashSet(publications);
- publicationWithoutDoubles = new LinkedList(
+ //publicationWithoutDoubles = new LinkedList(
+ // publicationsSet);
+ publicationWithoutDoubles = new ArrayList(
publicationsSet);
- Collections.sort(publicationWithoutDoubles,
- new SciPublicationComparator());
+ Collections.sort(publicationWithoutDoubles,
+ new SciPublicationTitleComparator());
+ System.out.printf("Sorted publications in %d ms\n", System.
+ currentTimeMillis() - sortStart);
+
+
+ long paginatorStart = System.currentTimeMillis();
long pageNumber = getPageNumber(state);
long pageCount = getPageCount(publicationWithoutDoubles.size());
long begin = getPaginatorBegin(pageNumber);
@@ -151,99 +177,28 @@ public class SciOrganizationWithPublicationsPanel extends SciOrganizationPanel {
createPaginatorElement(parent, pageNumber, pageCount, begin, end,
count, publicationWithoutDoubles.size());
+ System.out.printf("Created paginator in %d ms", System.
+ currentTimeMillis() - paginatorStart);
List publicationsToShow = publicationWithoutDoubles.
subList((int) begin, (int) end);
System.out.printf(
- "\n\nCreating list of publications to show in %d ms.\n\n",
+ "\n\nCreated list of publications to show in %d ms.\n\n",
System.currentTimeMillis() - start);
start = System.currentTimeMillis();
-
- //final Element publicationsElem = parent.newChildElement(
- // "publications");
-
- for (Publication publication : publicationsToShow) {
- //Element publicationElem = parent.newChildElement(
- // "publications");
- /*ContentItemXMLRenderer renderer =
- new ContentItemXMLRenderer(publicationElem);
- renderer.setWrapAttributes(true);
- long walkStart = System.currentTimeMillis();
- renderer.walk(publication, SimpleXMLGenerator.class.getName());
- System.out.printf("\n\nRenderer walked %d ms\n\n", System.currentTimeMillis() - walkStart);*/
-
- /*Element objectTypeElem = publicationElem.newChildElement("objectType");
- objectTypeElem.setText(publication.getObjectType().getQualifiedName());
- Element yearElem = publicationElem.newChildElement(
- "yearOfPublication");
- yearElem.setText(publication.getYearOfPublication().toString());
- Element miscElem = publicationElem.newChildElement("misc");
- miscElem.setText(publication.getMisc());
- AuthorshipCollection authors = publication.getAuthors();
- while (authors.next()) {
- Element authorsElem = publicationElem.newChildElement(
- "authors");
- Element linkElem = authorsElem.newChildElement("link");
- Element editorElem = linkElem.newChildElement("editor");
- if (authors.isEditor()) {
- editorElem.setText("true");
- } else {
- editorElem.setText("false");
- }
- Element authorOrderElem = linkElem.newChildElement(
- "authorOrder");
- authorOrderElem.setText(authors.getAuthorshipOrder().
- toString());
-
- GenericPerson author = authors.getAuthor();
- Element surnameElem = authorsElem.newChildElement("surname");
- surnameElem.setText(author.getSurname());
- Element givennameElem = authorsElem.newChildElement(
- "givenname");
- givennameElem.setText(author.getGivenName());
- }
-
- Element abstractElem = publicationElem.newChildElement(
- "abstract");
- abstractElem.setText(publication.getAbstract());
-
- if (publication instanceof PublicationWithPublisher) {
- PublicationWithPublisher pwp =
- (PublicationWithPublisher) publication;
- Publisher publisher = pwp.getPublisher();
-
- Element publisherElem = publicationElem.newChildElement(
- "publisher");
- Element publisherNameElem = publisherElem.newChildElement(
- "publisherName");
- publisherNameElem.setText(publisher.getPublisherName());
- Element publisherPlaceElem = publisherElem.newChildElement(
- "place");
- publisherPlaceElem.setText(publisher.getPlace());
- }
-
- Element titleElem = publicationElem.newChildElement("title");
- titleElem.setText(publication.getTitle());
-
- if (publication instanceof ArticleInJournal) {
-
- }
-
- if (publication instanceof ArticleInCollectedVolume) {
-
- }*/
-
+
+ for (Publication pub : publicationsToShow) {
PublicationXmlHelper xmlHelper =
new PublicationXmlHelper(parent,
- publication);
+ pub);
xmlHelper.generateXml();
}
System.out.printf("\n\nGenerated publications XML in %d ms\n\n",
System.currentTimeMillis() - start);
} else {
- SciOrganizationPublicationCollection orgaPublications;
+ SciOrganizationPublicationsCollection orgaPublications;
orgaPublications = orga.getPublications();
List publications = new LinkedList();
@@ -252,7 +207,7 @@ public class SciOrganizationWithPublicationsPanel extends SciOrganizationPanel {
publications.add(orgaPublications.getPublication());
}
- Collections.sort(publications, new SciPublicationComparator());
+ Collections.sort(publications, new SciPublicationTitleComparator());
long pageNumber = getPageNumber(state);
long pageCount = getPageCount(publications.size());
diff --git a/ccm-sci-types-organizationwithpublications/src/com/arsdigita/cms/contenttypes/ui/SciOrganizationWithPublicationsResources.properties b/ccm-sci-types-organizationwithpublications/src/com/arsdigita/cms/contenttypes/ui/SciOrganizationWithPublicationsResources.properties
new file mode 100644
index 000000000..4ec4dd842
--- /dev/null
+++ b/ccm-sci-types-organizationwithpublications/src/com/arsdigita/cms/contenttypes/ui/SciOrganizationWithPublicationsResources.properties
@@ -0,0 +1,35 @@
+
+sciorganizationpublication.ui.publicationsOfOrganization=Publications of the organization
+sciorganizationpublication.ui.publicationsOfDepartment=Publications of the department
+sciorganizationpublication.ui.publicationsOfProject=Publications of the project
+sciorganizationpublication.ui.organizationsOfPublication=Organizations
+sciorganizationpublication.ui.organization=Organization
+sciorganizationpublication.ui.organization.remove=Remove orgnization
+sciorganizationpublication.ui.addOrganization=Add organization
+sciorganizationpublication.ui.publication=Publication
+sciorganizationpublication.ui.publication.remove=Remove publication
+sciorganizationpublication.ui.addPublication=Add publication
+sciorganizationpublication.ui.publications.none=No publications found
+sciorganizationpublication.ui.organization.publications.title=Publications
+sciorganizationpublication.ui.organization.publications.description=Publications
+sciorganizationpublication.ui.department.publications.title=Publications
+sciorganizationpublication.ui.department.publications.description=Publications
+sciorganizationpublication.ui.project.publications.title=Publications
+sciorganizationpublication.ui.project.publications.description=Publications
+sciorganizationpublication.ui.publication.projects.title=Lists of publications (Projects)
+sciorganizationpublication.ui.publication.projects.description=Lists of publications (Projects)
+sciorganizationpublication.ui.publication.organization.title=Lists of publications (Organizations)
+sciorganizationpublication.ui.publication.organization.description=Lists of publications (Organizations)
+sciorganizationpublication.ui.publication.departments.title=Lists of publications (Departments)
+sciorganizationpublication.ui.publication.departments.description=Lists of publications (Departments)
+sciorganization.ui.selectPublication=Select publication
+sciorganizationpublication.ui.publiction.remove=Remove publication
+sciorganizationpublication.ui.organizations.none=This publication is not part of any publication list of a organization
+sciorganization.ui.selectOrganization=Select organization
+sciorganization.ui.addPublication=Add publication
+sciorganizationpublication.ui.departments.none=This publication is not part of any publication list of a department
+sciorganizationpublication.ui.addDepartment=Add publication to publication list of a department
+sciorganization.ui.selectDepartment=Select department
+sciorganizationpublication.ui.projects.none=This publication is not part of any publication list of a project
+sciorganizationpublication.ui.project.addPublication=Add publication to publication list of a project
+sciorganization.ui.selectProject=Select project
diff --git a/ccm-sci-types-organizationwithpublications/src/com/arsdigita/cms/contenttypes/ui/SciOrganizationWithPublicationsResources_de.properties b/ccm-sci-types-organizationwithpublications/src/com/arsdigita/cms/contenttypes/ui/SciOrganizationWithPublicationsResources_de.properties
new file mode 100644
index 000000000..3b047dff7
--- /dev/null
+++ b/ccm-sci-types-organizationwithpublications/src/com/arsdigita/cms/contenttypes/ui/SciOrganizationWithPublicationsResources_de.properties
@@ -0,0 +1,35 @@
+
+sciorganizationpublication.ui.publicationsOfOrganization=Publikationen der Organisation
+sciorganizationpublication.ui.publicationsOfDepartment=Publikationen der Abteilung
+sciorganizationpublication.ui.publicationsOfProject=Publikationen des Projektes
+sciorganizationpublication.ui.organizationsOfPublication=Beteiligte Organizationen
+sciorganizationpublication.ui.organization=Organisation
+sciorganizationpublication.ui.organization.remove=Organisation entfernen
+sciorganizationpublication.ui.addOrganization=Organisation hinzuf\u00fcgen
+sciorganizationpublication.ui.publication=Publikation
+sciorganizationpublication.ui.publication.remove=Publikation entfernen
+sciorganizationpublication.ui.addPublication=Publikation hinzuf\u00fcgen
+sciorganizationpublication.ui.publications.none=Keine Publikationen gefunden
+sciorganizationpublication.ui.organization.publications.title=Publikationen
+sciorganizationpublication.ui.organization.publications.description=Publikationen
+sciorganizationpublication.ui.department.publications.title=Publikationen
+sciorganizationpublication.ui.department.publications.description=Publikationen
+sciorganizationpublication.ui.project.publications.title=Publikationen
+sciorganizationpublication.ui.project.publications.description=Publikationen
+sciorganizationpublication.ui.publication.projects.title=Publikationslisten (Projekte)
+sciorganizationpublication.ui.publication.projects.description=Publikationslisten (Projekte)
+sciorganizationpublication.ui.publication.organization.title=Publikationslisten (Organisationen)
+sciorganizationpublication.ui.publication.organization.description=Publikationslisten (Organisationen)
+sciorganizationpublication.ui.publication.departments.title=Publikationslisten (Abteilungen)
+sciorganizationpublication.ui.publication.departments.description=Publikationslisten (Abteilungen)
+sciorganization.ui.selectPublication=Publikation w\u00e4hlen
+sciorganizationpublication.ui.publiction.remove=Publikation entfernen
+sciorganizationpublication.ui.organizations.none=Diese Publikation ist nicht Teil einer Publikationsliste einer Organisation
+sciorganization.ui.selectOrganization=Organisation w\u00e4hlen
+sciorganization.ui.addPublication=Publikation hinzuf\u00fcgen
+sciorganizationpublication.ui.departments.none=Diese Publikation ist nicht Teil einer Publikationsliste einer Abteilung
+sciorganizationpublication.ui.addDepartment=Publikation der Publikationsliste einer Abteilung hinzuf\u00fcgen
+sciorganization.ui.selectDepartment=Abteilung w\u00e4hlen
+sciorganizationpublication.ui.projects.none=Diese Publikation ist nicht Teil einer Publikationsliste eines Projektes
+sciorganizationpublication.ui.project.addPublication=Publikation der Publikationsliste eines Projektes hinzuf\u00fcgen
+sciorganization.ui.selectProject=Projekt w\u00e4hlen
diff --git a/ccm-sci-assets-organizationpublicationlink/src/com/arsdigita/cms/contenttypes/ui/SciProjectWithPublicationsPanel.java b/ccm-sci-types-organizationwithpublications/src/com/arsdigita/cms/contenttypes/ui/SciProjectWithPublicationsPanel.java
similarity index 82%
rename from ccm-sci-assets-organizationpublicationlink/src/com/arsdigita/cms/contenttypes/ui/SciProjectWithPublicationsPanel.java
rename to ccm-sci-types-organizationwithpublications/src/com/arsdigita/cms/contenttypes/ui/SciProjectWithPublicationsPanel.java
index e2de9b88f..199ca8e43 100644
--- a/ccm-sci-assets-organizationpublicationlink/src/com/arsdigita/cms/contenttypes/ui/SciProjectWithPublicationsPanel.java
+++ b/ccm-sci-types-organizationwithpublications/src/com/arsdigita/cms/contenttypes/ui/SciProjectWithPublicationsPanel.java
@@ -21,14 +21,14 @@ package com.arsdigita.cms.contenttypes.ui;
import com.arsdigita.bebop.PageState;
import com.arsdigita.cms.ContentItemXMLRenderer;
-import com.arsdigita.cms.contentassets.SciOrganizationPublicationCollection;
import com.arsdigita.cms.contenttypes.Publication;
import com.arsdigita.cms.contenttypes.SciOrganizationWithPublications;
import com.arsdigita.cms.contenttypes.SciOrganizationWithPublicationsConfig;
import com.arsdigita.cms.contenttypes.SciProject;
+import com.arsdigita.cms.contenttypes.SciProjectPublicationsCollection;
import com.arsdigita.cms.contenttypes.SciProjectSubProjectsCollection;
import com.arsdigita.cms.contenttypes.SciProjectWithPublications;
-import com.arsdigita.cms.contenttypes.SciPublicationComparator;
+import com.arsdigita.cms.contenttypes.SciPublicationTitleComparator;
import com.arsdigita.cms.dispatcher.SimpleXMLGenerator;
import com.arsdigita.xml.Element;
import java.util.Collections;
@@ -65,7 +65,7 @@ public class SciProjectWithPublicationsPanel extends SciProjectPanel {
getConfig();
SciProjectWithPublications proj =
- new SciProjectWithPublications(project);
+ (SciProjectWithPublications) project;
if ((proj.hasPublications(config.getOrganizationPublicationsMerge()))
&& displayPublications) {
@@ -79,14 +79,21 @@ public class SciProjectWithPublicationsPanel extends SciProjectPanel {
while (subProjects.next()) {
SciProject proj;
SciProjectWithPublications project;
- SciOrganizationPublicationCollection projectPublications;
+ SciProjectPublicationsCollection projectPublications;
proj = subProjects.getSubProject();
- project = new SciProjectWithPublications(proj);
+ project = (SciProjectWithPublications) proj;
projectPublications = project.getPublications();
+ Publication publication;
while (projectPublications.next()) {
- publications.add(projectPublications.getPublication());
+ publication = (Publication) projectPublications.getPublication().
+ getLiveVersion();
+ if (publication == null) {
+ continue;
+ } else {
+ publications.add(publication);
+ }
}
SciProjectSubProjectsCollection subSubProjects =
@@ -101,17 +108,24 @@ public class SciProjectWithPublicationsPanel extends SciProjectPanel {
protected void generatePublicationsXml(final SciProject project,
final Element parent,
final PageState state) {
- final SciProjectWithPublications proj = new SciProjectWithPublications(
- project);
+ final SciProjectWithPublications proj =
+ (SciProjectWithPublications) project;
if (SciOrganizationWithPublications.getConfig().
getOrganizationPublicationsMerge()) {
List publications = new LinkedList();
- SciOrganizationPublicationCollection projectPublications = proj.
+ SciProjectPublicationsCollection projectPublications = proj.
getPublications();
+ Publication publication;
while (projectPublications.next()) {
- publications.add(projectPublications.getPublication());
+ publication = (Publication) projectPublications.getPublication().
+ getLiveVersion();
+ if (publication == null) {
+ continue;
+ } else {
+ publications.add(publication);
+ }
}
mergePublications(project.getSubProjects(), publications);
@@ -122,7 +136,7 @@ public class SciProjectWithPublicationsPanel extends SciProjectPanel {
publicationsWithoutDoubles = new LinkedList(
publicationsSet);
Collections.sort(publicationsWithoutDoubles,
- new SciPublicationComparator());
+ new SciPublicationTitleComparator());
long pageNumber = getPageNumber(state);
long pageCount = getPageCount(publicationsWithoutDoubles.size());
@@ -142,11 +156,11 @@ public class SciProjectWithPublicationsPanel extends SciProjectPanel {
final ContentItemXMLRenderer renderer = new ContentItemXMLRenderer(
publicationsElem);
renderer.setWrapAttributes(true);
- for (Publication publication : publicationsToShow) {
- renderer.walk(publication, SimpleXMLGenerator.class.getName());
+ for (Publication pub : publicationsToShow) {
+ renderer.walk(pub, SimpleXMLGenerator.class.getName());
}
} else {
- SciOrganizationPublicationCollection projectPublications = proj.
+ SciProjectPublicationsCollection projectPublications = proj.
getPublications();
List publications = new LinkedList();
@@ -155,7 +169,7 @@ public class SciProjectWithPublicationsPanel extends SciProjectPanel {
publications.add(projectPublications.getPublication());
}
- Collections.sort(publications, new SciPublicationComparator());
+ Collections.sort(publications, new SciPublicationTitleComparator());
long pageNumber = getPageNumber(state);
long pageCount = getPageCount(publications.size());
@@ -185,7 +199,7 @@ public class SciProjectWithPublicationsPanel extends SciProjectPanel {
final Element element,
final PageState state) {
String show = getShowParam(state);
-
+
if (SHOW_PUBLICATIONS.equals(show)) {
generatePublicationsXml(project, element, state);
} else {