diff --git a/ccm-ldn-navigation/src/com/arsdigita/london/navigation/DataCollectionRenderer.java b/ccm-ldn-navigation/src/com/arsdigita/london/navigation/DataCollectionRenderer.java
index 3368c57b7..018e9df37 100755
--- a/ccm-ldn-navigation/src/com/arsdigita/london/navigation/DataCollectionRenderer.java
+++ b/ccm-ldn-navigation/src/com/arsdigita/london/navigation/DataCollectionRenderer.java
@@ -17,6 +17,7 @@
*/
package com.arsdigita.london.navigation;
+import com.arsdigita.cms.dispatcher.SimpleXMLGenerator;
import com.arsdigita.domain.DomainObjectFactory;
import com.arsdigita.kernel.ACSObject;
import com.arsdigita.persistence.DataAssociation;
@@ -54,6 +55,13 @@ public class DataCollectionRenderer extends LockableImpl {
private ArrayList m_properties = new ArrayList();
private int m_pageSize = 20;
private boolean m_specializeObjects = false;
+ /**
+ * The traversal adapter context used if {@link #m_specializeObjects} is
+ * true. Defaults to
+ * {@link SimpleXMLGenerator.ADAPTER_CONTEXT}.
+ */
+ private String m_specializeObjectsContext =
+ SimpleXMLGenerator.ADAPTER_CONTEXT;
private boolean m_wrapAttributes = false;
private boolean m_navItems = true;
@@ -91,6 +99,20 @@ public class DataCollectionRenderer extends LockableImpl {
m_specializeObjects = specializeObjects;
}
+ protected String getSpecializeObjectsContext() {
+ return m_specializeObjectsContext;
+ }
+
+ /**
+ * Sets the context of the traversal adapter used the render the objects
+ * if {@link #m_specializeObjects} is set to true
+ *
+ * @param context The adapter context.
+ */
+ public void setSpecializeObjectsContext(String context) {
+ m_specializeObjectsContext = context;
+ }
+
public void setWrapAttributes(boolean wrapAttributes) {
Assert.isUnlocked(this);
m_wrapAttributes = wrapAttributes;
diff --git a/ccm-ldn-navigation/src/com/arsdigita/london/navigation/cms/CMSDataCollectionRenderer.java b/ccm-ldn-navigation/src/com/arsdigita/london/navigation/cms/CMSDataCollectionRenderer.java
index 308107788..46fdf09cb 100755
--- a/ccm-ldn-navigation/src/com/arsdigita/london/navigation/cms/CMSDataCollectionRenderer.java
+++ b/ccm-ldn-navigation/src/com/arsdigita/london/navigation/cms/CMSDataCollectionRenderer.java
@@ -57,7 +57,14 @@ public class CMSDataCollectionRenderer extends DataCollectionRenderer {
renderer.setWrapAttributes(true);
renderer.setWrapRoot(false);
renderer.setWrapObjects(false);
- renderer.walk(obj, SimpleXMLGenerator.ADAPTER_CONTEXT);
+ //renderer.walk(obj, SimpleXMLGenerator.ADAPTER_CONTEXT);
+ /* jensp 2011-01-03:
+ * I needed the option to use different traversal adapters for
+ * the object in the detail view and the list view. It is now
+ * possible to set the adapter context used from a JSP template,
+ * using DataCollectionRenderer#setSpecializeObjectsContext(String).
+ */
+ renderer.walk(obj, getSpecializeObjectsContext());
}
}
}
diff --git a/ccm-ldn-navigation/src/com/arsdigita/london/navigation/ui/object/SimpleObjectList.java b/ccm-ldn-navigation/src/com/arsdigita/london/navigation/ui/object/SimpleObjectList.java
index 0fa5d8a8e..b15e3b006 100755
--- a/ccm-ldn-navigation/src/com/arsdigita/london/navigation/ui/object/SimpleObjectList.java
+++ b/ccm-ldn-navigation/src/com/arsdigita/london/navigation/ui/object/SimpleObjectList.java
@@ -15,47 +15,39 @@
* 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.london.navigation.ui.object;
import com.arsdigita.london.navigation.Navigation;
import com.arsdigita.london.navigation.ui.AbstractObjectList;
-
-
-
import com.arsdigita.xml.Element;
-
-
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
-
/**
* A object list
*/
public class SimpleObjectList extends AbstractObjectList {
-
+
public static final String CUSTOM_NAME = "customName";
protected String m_customName = null;
public void setCustomName(String name) {
- m_customName = name;
+ m_customName = name;
}
public String getCustomName() {
- return m_customName;
+ return m_customName;
}
-
+
public Element generateXML(HttpServletRequest request,
HttpServletResponse response) {
Element content = Navigation.newElement("simpleObjectList");
- if (m_customName != null) {
- content.addAttribute(CUSTOM_NAME, m_customName);
- }
+ if (m_customName != null) {
+ content.addAttribute(CUSTOM_NAME, m_customName);
+ }
content.addContent(generateObjectListXML(request,
response));
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 cba8177a7..95716f355 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
@@ -9,14 +9,25 @@
-->
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ccm-zes-aplaws/web/packages/navigation/templates/SciProjectList.jsp b/ccm-zes-aplaws/web/packages/navigation/templates/SciProjectList.jsp
index 8a673b77e..c7ce42fce 100644
--- a/ccm-zes-aplaws/web/packages/navigation/templates/SciProjectList.jsp
+++ b/ccm-zes-aplaws/web/packages/navigation/templates/SciProjectList.jsp
@@ -40,6 +40,7 @@
((com.arsdigita.london.navigation.ui.object.SimpleObjectList) itemList).getRenderer().setPageSize(20);
((com.arsdigita.london.navigation.ui.object.SimpleObjectList) itemList).getRenderer().setSpecializeObjects(true);
+ ((com.arsdigita.london.navigation.ui.object.SimpleObjectList) itemList).getRenderer().setSpecializeObjectsContext("sciProjectList");