Author: kevinshen
Date: 2009-05-14 09:59:25 +0200 (Thu, 14 May 2009)
New Revision: 35158
Added:
CMSContainer/trunk/CMSContainer/cmsc/contentrepository/config/modules/
CMSContainer/trunk/CMSContainer/cmsc/contentrepository/config/modules/contentelement.xml
CMSContainer/trunk/CMSContainer/cmsc/contentrepository/src/java/com/finalist/cmsc/repository/ContentElementEventListener.java
CMSContainer/trunk/CMSContainer/cmsc/contentrepository/src/java/com/finalist/cmsc/repository/ContentElementModule.java
Modified:
CMSContainer/trunk/CMSContainer/cmsc/basicmodel/src/webapp/editors/config/article/load_article.xml
Log:
CMSC-1020 Sorting inter article relations should be independent of source and
destination
Modified:
CMSContainer/trunk/CMSContainer/cmsc/basicmodel/src/webapp/editors/config/article/load_article.xml
===================================================================
---
CMSContainer/trunk/CMSContainer/cmsc/basicmodel/src/webapp/editors/config/article/load_article.xml
2009-05-14 07:20:58 UTC (rev 35157)
+++
CMSContainer/trunk/CMSContainer/cmsc/basicmodel/src/webapp/editors/config/article/load_article.xml
2009-05-14 07:59:25 UTC (rev 35158)
@@ -20,7 +20,7 @@
<field name="body" />
<field name="archivedate" />
- <relation destination="article" role="posrel" />
+ <relation destination="article" role="posrel" searchdir="destination"/>
<relation destination="attachments" role="posrel" />
<relation destination="images" role="imagerel" />
<relation destination="urls" role="posrel" />
Added:
CMSContainer/trunk/CMSContainer/cmsc/contentrepository/config/modules/contentelement.xml
===================================================================
---
CMSContainer/trunk/CMSContainer/cmsc/contentrepository/config/modules/contentelement.xml
(rev 0)
+++
CMSContainer/trunk/CMSContainer/cmsc/contentrepository/config/modules/contentelement.xml
2009-05-14 07:59:25 UTC (rev 35158)
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE module PUBLIC "-//MMBase//DTD module config 1.0//EN"
"http://www.mmbase.org/dtd/module_1_0.dtd">
+<module maintainer="finalist.com" version="1">
+ <status>active</status>
+ <classfile>com.finalist.cmsc.repository.ContentElementModule</classfile>
+ <properties>
+ </properties>
+</module>
Added:
CMSContainer/trunk/CMSContainer/cmsc/contentrepository/src/java/com/finalist/cmsc/repository/ContentElementEventListener.java
===================================================================
---
CMSContainer/trunk/CMSContainer/cmsc/contentrepository/src/java/com/finalist/cmsc/repository/ContentElementEventListener.java
(rev 0)
+++
CMSContainer/trunk/CMSContainer/cmsc/contentrepository/src/java/com/finalist/cmsc/repository/ContentElementEventListener.java
2009-05-14 07:59:25 UTC (rev 35158)
@@ -0,0 +1,46 @@
+package com.finalist.cmsc.repository;
+
+import net.sf.mmapps.modules.cloudprovider.CloudProviderFactory;
+
+import org.mmbase.bridge.Cloud;
+import org.mmbase.bridge.Relation;
+import org.mmbase.core.event.Event;
+import org.mmbase.core.event.RelationEvent;
+import org.mmbase.core.event.RelationEventListener;
+import org.mmbase.module.core.MMBase;
+import org.mmbase.util.logging.Logger;
+import org.mmbase.util.logging.Logging;
+
+import com.finalist.cmsc.mmbase.RelationUtil;
+
+public class ContentElementEventListener implements RelationEventListener{
+
+ protected final static String TYPE_CONTENT_ELEMENT = "contentelement";
+
+ private static final Logger log =
Logging.getLoggerInstance(ContentElementEventListener.class.getName());
+
+
+ public ContentElementEventListener() {
+ MMBase.getMMBase().addNodeRelatedEventsListener(TYPE_CONTENT_ELEMENT,
this);
+ log.info("registered listener for: " + TYPE_CONTENT_ELEMENT);
+ }
+ public void notify(RelationEvent event) {
+ if("article".equalsIgnoreCase(event.getRelationSourceType()) &&
+ "article".equalsIgnoreCase(event.getRelationDestinationType()) &&
+ "posrel".equalsIgnoreCase(event.getNodeEvent().getBuilderName())) {
+
+ int sourceNumber = event.getRelationSourceNumber();
+ int detinationNumber = event.getRelationDestinationNumber();
+ Cloud cloud = CloudProviderFactory.getCloudProvider().getCloud();
+ Relation relation =
RelationUtil.getRelation(cloud.getNodeManager("posrel"), detinationNumber,
sourceNumber);
+
+ if(event.getType() == Event.TYPE_NEW && relation == null) {
+ RelationUtil.createRelation(cloud.getNode(detinationNumber),
cloud.getNode(sourceNumber), "posrel");
+ }
+ else if (relation != null && event.getType() == Event.TYPE_DELETE) {
+ relation.delete();
+ }
+ }
+ }
+
+}
Added:
CMSContainer/trunk/CMSContainer/cmsc/contentrepository/src/java/com/finalist/cmsc/repository/ContentElementModule.java
===================================================================
---
CMSContainer/trunk/CMSContainer/cmsc/contentrepository/src/java/com/finalist/cmsc/repository/ContentElementModule.java
(rev 0)
+++
CMSContainer/trunk/CMSContainer/cmsc/contentrepository/src/java/com/finalist/cmsc/repository/ContentElementModule.java
2009-05-14 07:59:25 UTC (rev 35158)
@@ -0,0 +1,15 @@
+package com.finalist.cmsc.repository;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.mmbase.module.Module;
+
+
+public class ContentElementModule extends Module {
+
+ static Log log = LogFactory.getLog(ContentElementModule.class);
+ @Override
+ public void init() {
+ new ContentElementEventListener();
+ }
+}
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs