|
From: <die...@us...> - 2010-06-18 13:14:49
|
Revision: 2677
http://openutils.svn.sourceforge.net/openutils/?rev=2677&view=rev
Author: diego_schivo
Date: 2010-06-18 13:14:42 +0000 (Fri, 18 Jun 2010)
Log Message:
-----------
CONTROLS-31 moved logic away from DialogGrid and its save-handler
Modified Paths:
--------------
trunk/openutils-mgnlcontrols/src/main/java/net/sourceforge/openutils/mgnlcontrols/configuration/FckEditorGridColumnType.java
trunk/openutils-mgnlcontrols/src/main/java/net/sourceforge/openutils/mgnlcontrols/configuration/GridColumnType.java
trunk/openutils-mgnlcontrols/src/main/java/net/sourceforge/openutils/mgnlcontrols/configuration/LinkGridColumnType.java
trunk/openutils-mgnlcontrols/src/main/java/net/sourceforge/openutils/mgnlcontrols/configuration/UUIDLinkGridColumnType.java
trunk/openutils-mgnlcontrols/src/main/java/net/sourceforge/openutils/mgnlcontrols/dialog/DialogGrid.java
trunk/openutils-mgnlcontrols/src/main/java/net/sourceforge/openutils/mgnlcontrols/dialog/DialogGridSaveHandler.java
trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/grid/MediaGridColumnType.java
Modified: trunk/openutils-mgnlcontrols/src/main/java/net/sourceforge/openutils/mgnlcontrols/configuration/FckEditorGridColumnType.java
===================================================================
--- trunk/openutils-mgnlcontrols/src/main/java/net/sourceforge/openutils/mgnlcontrols/configuration/FckEditorGridColumnType.java 2010-06-18 12:56:14 UTC (rev 2676)
+++ trunk/openutils-mgnlcontrols/src/main/java/net/sourceforge/openutils/mgnlcontrols/configuration/FckEditorGridColumnType.java 2010-06-18 13:14:42 UTC (rev 2677)
@@ -19,6 +19,7 @@
package net.sourceforge.openutils.mgnlcontrols.configuration;
+import info.magnolia.cms.core.Content;
import info.magnolia.context.MgnlContext;
import java.util.Map;
@@ -53,4 +54,19 @@
+ "}))\n";
}
+ /**
+ * {@inheritDoc}
+ */
+ public String processValueOnLoad(String value, Content colConfig)
+ {
+ return value;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public String processValueOnSave(String value, Content colConfig)
+ {
+ return value;
+ }
}
Modified: trunk/openutils-mgnlcontrols/src/main/java/net/sourceforge/openutils/mgnlcontrols/configuration/GridColumnType.java
===================================================================
--- trunk/openutils-mgnlcontrols/src/main/java/net/sourceforge/openutils/mgnlcontrols/configuration/GridColumnType.java 2010-06-18 12:56:14 UTC (rev 2676)
+++ trunk/openutils-mgnlcontrols/src/main/java/net/sourceforge/openutils/mgnlcontrols/configuration/GridColumnType.java 2010-06-18 13:14:42 UTC (rev 2677)
@@ -19,8 +19,11 @@
package net.sourceforge.openutils.mgnlcontrols.configuration;
+import info.magnolia.cms.core.Content;
+
import java.util.Map;
+
/**
* @author dschivo
* @version $Id$
@@ -40,4 +43,7 @@
*/
public String getColumnModelSnippet(Map colmap);
+ public String processValueOnLoad(String value, Content colConfig);
+
+ public String processValueOnSave(String value, Content colConfig);
}
Modified: trunk/openutils-mgnlcontrols/src/main/java/net/sourceforge/openutils/mgnlcontrols/configuration/LinkGridColumnType.java
===================================================================
--- trunk/openutils-mgnlcontrols/src/main/java/net/sourceforge/openutils/mgnlcontrols/configuration/LinkGridColumnType.java 2010-06-18 12:56:14 UTC (rev 2676)
+++ trunk/openutils-mgnlcontrols/src/main/java/net/sourceforge/openutils/mgnlcontrols/configuration/LinkGridColumnType.java 2010-06-18 13:14:42 UTC (rev 2677)
@@ -1,5 +1,6 @@
package net.sourceforge.openutils.mgnlcontrols.configuration;
+import info.magnolia.cms.core.Content;
import info.magnolia.context.MgnlContext;
import java.util.ArrayList;
@@ -43,4 +44,19 @@
return "editor: new Ed(new LinkField({\n" + StringUtils.join(options, ",\n") + "}))";
}
+ /**
+ * {@inheritDoc}
+ */
+ public String processValueOnLoad(String value, Content colConfig)
+ {
+ return value;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public String processValueOnSave(String value, Content colConfig)
+ {
+ return value;
+ }
}
Modified: trunk/openutils-mgnlcontrols/src/main/java/net/sourceforge/openutils/mgnlcontrols/configuration/UUIDLinkGridColumnType.java
===================================================================
--- trunk/openutils-mgnlcontrols/src/main/java/net/sourceforge/openutils/mgnlcontrols/configuration/UUIDLinkGridColumnType.java 2010-06-18 12:56:14 UTC (rev 2676)
+++ trunk/openutils-mgnlcontrols/src/main/java/net/sourceforge/openutils/mgnlcontrols/configuration/UUIDLinkGridColumnType.java 2010-06-18 13:14:42 UTC (rev 2677)
@@ -1,5 +1,9 @@
package net.sourceforge.openutils.mgnlcontrols.configuration;
+import info.magnolia.cms.beans.config.ContentRepository;
+import info.magnolia.cms.core.Content;
+import info.magnolia.cms.util.ContentUtil;
+import info.magnolia.cms.util.NodeDataUtil;
import info.magnolia.context.MgnlContext;
import java.util.ArrayList;
@@ -43,4 +47,35 @@
return "editor: new Ed(new UUIDLinkField({\n" + StringUtils.join(options, ",\n") + "}))";
}
+ /**
+ * {@inheritDoc}
+ */
+ public String processValueOnLoad(String value, Content colConfig)
+ {
+ String repository = StringUtils.defaultIfEmpty(
+ NodeDataUtil.getString(colConfig, "repository"),
+ ContentRepository.WEBSITE);
+ Content node = ContentUtil.getContentByUUID(repository, value);
+ if (node != null)
+ {
+ value = node.getHandle();
+ }
+ return value;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public String processValueOnSave(String value, Content colConfig)
+ {
+ String repository = StringUtils.defaultIfEmpty(
+ NodeDataUtil.getString(colConfig, "repository"),
+ ContentRepository.WEBSITE);
+ Content node = ContentUtil.getContent(repository, value);
+ if (node != null)
+ {
+ value = node.getUUID();
+ }
+ return value;
+ }
}
Modified: trunk/openutils-mgnlcontrols/src/main/java/net/sourceforge/openutils/mgnlcontrols/dialog/DialogGrid.java
===================================================================
--- trunk/openutils-mgnlcontrols/src/main/java/net/sourceforge/openutils/mgnlcontrols/dialog/DialogGrid.java 2010-06-18 12:56:14 UTC (rev 2676)
+++ trunk/openutils-mgnlcontrols/src/main/java/net/sourceforge/openutils/mgnlcontrols/dialog/DialogGrid.java 2010-06-18 13:14:42 UTC (rev 2677)
@@ -19,10 +19,8 @@
package net.sourceforge.openutils.mgnlcontrols.dialog;
-import info.magnolia.cms.beans.config.ContentRepository;
import info.magnolia.cms.core.Content;
import info.magnolia.cms.core.ItemType;
-import info.magnolia.cms.util.ContentUtil;
import info.magnolia.cms.util.NodeDataUtil;
import java.util.ArrayList;
@@ -33,6 +31,7 @@
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
+import net.sourceforge.openutils.mgnlcontrols.configuration.GridColumnType;
import net.sourceforge.openutils.mgnlcontrols.configuration.GridColumnTypeManager;
import org.apache.commons.lang.StringUtils;
@@ -82,7 +81,8 @@
{
super.addToParameters(parameters);
- parameters.put("gridColumnTypes", GridColumnTypeManager.getInstance().getColumnTypes());
+ Map<String, GridColumnType> colTypeMap = GridColumnTypeManager.getInstance().getColumnTypes();
+ parameters.put("gridColumnTypes", colTypeMap);
String value = getValue();
if (value != null)
@@ -98,31 +98,12 @@
if (colIndex < colConfigs.size())
{
Content colConfig = colConfigs.get(colIndex);
- String colType = NodeDataUtil.getString(colConfig, "type");
- if ("uuidLink".equals(colType))
+ String colTypeName = NodeDataUtil.getString(colConfig, "type");
+ GridColumnType colType = colTypeMap.get(colTypeName);
+ if (colType != null)
{
- String repository = StringUtils.defaultIfEmpty(NodeDataUtil.getString(
- colConfig,
- "repository"), ContentRepository.WEBSITE);
- Content node = ContentUtil.getContentByUUID(repository, token);
- if (node != null)
- {
- token = node.getHandle();
- }
+ token = colType.processValueOnLoad(token, colConfig);
}
- else if ("media".equals(colType))
- {
- String valueType = StringUtils.defaultIfEmpty(NodeDataUtil
- .getString(colConfig, "valueType"), "uuid");
- if ("uuid".equals(valueType))
- {
- if (StringUtils.startsWith(token, "/"))
- {
- Content node = ContentUtil.getContentByUUID("media", token);
- token = node != null ? node.getUUID() : token;
- }
- }
- }
}
if (colIndex > 0)
{
Modified: trunk/openutils-mgnlcontrols/src/main/java/net/sourceforge/openutils/mgnlcontrols/dialog/DialogGridSaveHandler.java
===================================================================
--- trunk/openutils-mgnlcontrols/src/main/java/net/sourceforge/openutils/mgnlcontrols/dialog/DialogGridSaveHandler.java 2010-06-18 12:56:14 UTC (rev 2676)
+++ trunk/openutils-mgnlcontrols/src/main/java/net/sourceforge/openutils/mgnlcontrols/dialog/DialogGridSaveHandler.java 2010-06-18 13:14:42 UTC (rev 2677)
@@ -19,7 +19,6 @@
package net.sourceforge.openutils.mgnlcontrols.dialog;
-import info.magnolia.cms.beans.config.ContentRepository;
import info.magnolia.cms.beans.runtime.Document;
import info.magnolia.cms.beans.runtime.MultipartForm;
import info.magnolia.cms.core.Content;
@@ -39,9 +38,13 @@
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
+import java.util.Map;
import javax.jcr.RepositoryException;
+import net.sourceforge.openutils.mgnlcontrols.configuration.GridColumnType;
+import net.sourceforge.openutils.mgnlcontrols.configuration.GridColumnTypeManager;
+
import org.apache.commons.io.FileUtils;
import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger;
@@ -70,6 +73,8 @@
colConfigs.addAll(configNode.getContent("columns").getChildren(ItemType.CONTENTNODE));
}
+ Map<String, GridColumnType> colTypeMap = GridColumnTypeManager.getInstance().getColumnTypes();
+
HierarchyManager hm = parentNode.getHierarchyManager();
Content filesNode = ContentUtil.getOrCreateContent(parentNode, name + "_files", ItemType.CONTENTNODE);
String value = form.getParameter(name);
@@ -87,34 +92,14 @@
if (colIndex < colConfigs.size())
{
Content colConfig = colConfigs.get(colIndex);
- String colType = NodeDataUtil.getString(colConfig, "type");
- if ("uuidLink".equals(colType))
+ String colTypeName = NodeDataUtil.getString(colConfig, "type");
+ GridColumnType colType = colTypeMap.get(colTypeName);
+ if (colType != null)
{
- String repository = StringUtils.defaultIfEmpty(
- NodeDataUtil.getString(colConfig, "repository"),
- ContentRepository.WEBSITE);
- Content node = ContentUtil.getContent(repository, token);
- if (node != null)
- {
- token = node.getUUID();
- }
+ token = colType.processValueOnSave(token, colConfig);
}
- else if ("media".equals(colType))
+ else if ("file".equals(colTypeName))
{
- String mediaValueType = StringUtils.defaultIfEmpty(NodeDataUtil.getString(
- colConfig,
- "valueType"), "uuid");
- if ("uuid".equals(mediaValueType))
- {
- if (StringUtils.startsWith(token, "/"))
- {
- Content node = ContentUtil.getContentByUUID("media", token);
- token = node != null ? node.getUUID() : token;
- }
- }
- }
- else if ("file".equals(colType))
- {
if (token.startsWith(ctx))
{
String link = StringUtils.substringAfter(token, ctx);
Modified: trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/grid/MediaGridColumnType.java
===================================================================
--- trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/grid/MediaGridColumnType.java 2010-06-18 12:56:14 UTC (rev 2676)
+++ trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/grid/MediaGridColumnType.java 2010-06-18 13:14:42 UTC (rev 2677)
@@ -19,13 +19,19 @@
package net.sourceforge.openutils.mgnlmedia.grid;
+import info.magnolia.cms.core.Content;
+import info.magnolia.cms.util.ContentUtil;
+import info.magnolia.cms.util.NodeDataUtil;
import info.magnolia.context.MgnlContext;
import java.util.Map;
import net.sourceforge.openutils.mgnlcontrols.configuration.GridColumnType;
+import net.sourceforge.openutils.mgnlmedia.media.lifecycle.MediaModule;
+import org.apache.commons.lang.StringUtils;
+
/**
* @author dschivo
* @version $Id$
@@ -64,4 +70,37 @@
+ "}";
}
+ /**
+ * {@inheritDoc}
+ */
+ public String processValueOnLoad(String value, Content colConfig)
+ {
+ String valueType = StringUtils.defaultIfEmpty(NodeDataUtil.getString(colConfig, "valueType"), "uuid");
+ if ("uuid".equals(valueType))
+ {
+ if (StringUtils.startsWith(value, "/"))
+ {
+ Content node = ContentUtil.getContentByUUID(MediaModule.REPO, value);
+ value = node != null ? node.getUUID() : value;
+ }
+ }
+ return value;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public String processValueOnSave(String value, Content colConfig)
+ {
+ String mediaValueType = StringUtils.defaultIfEmpty(NodeDataUtil.getString(colConfig, "valueType"), "uuid");
+ if ("uuid".equals(mediaValueType))
+ {
+ if (StringUtils.startsWith(value, "/"))
+ {
+ Content node = ContentUtil.getContentByUUID(MediaModule.REPO, value);
+ value = node != null ? node.getUUID() : value;
+ }
+ }
+ return value;
+ }
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|