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. |