You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jetspeed-dev@portals.apache.org by wo...@apache.org on 2011/04/08 09:37:13 UTC

svn commit: r1090149 - /portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/clone/PortletCloneManagerPortlet.java

Author: woonsan
Date: Fri Apr  8 07:37:13 2011
New Revision: 1090149

URL: http://svn.apache.org/viewvc?rev=1090149&view=rev
Log:
JS2-1247: saving default preferences as well during cloning.
TODO: Use this cloning popup in the toolbox portlet.

Modified:
    portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/clone/PortletCloneManagerPortlet.java

Modified: portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/clone/PortletCloneManagerPortlet.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/clone/PortletCloneManagerPortlet.java?rev=1090149&r1=1090148&r2=1090149&view=diff
==============================================================================
--- portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/clone/PortletCloneManagerPortlet.java (original)
+++ portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/clone/PortletCloneManagerPortlet.java Fri Apr  8 07:37:13 2011
@@ -35,9 +35,12 @@ import javax.portlet.RenderResponse;
 
 import org.apache.commons.lang.StringUtils;
 import org.apache.jetspeed.CommonPortletServices;
+import org.apache.jetspeed.components.portletpreferences.PortletPreferencesProvider;
 import org.apache.jetspeed.components.portletregistry.PortletRegistry;
+import org.apache.jetspeed.om.portlet.DisplayName;
 import org.apache.jetspeed.om.portlet.PortletDefinition;
 import org.apache.jetspeed.om.portlet.Preference;
+import org.apache.jetspeed.om.portlet.Preferences;
 import org.apache.jetspeed.request.RequestContext;
 import org.apache.portals.bridges.common.GenericServletPortlet;
 import org.slf4j.Logger;
@@ -53,12 +56,15 @@ public class PortletCloneManagerPortlet 
     private static Logger log = LoggerFactory.getLogger(PortletCloneManagerPortlet.class);
     
     private PortletRegistry registry;
+    private PortletPreferencesProvider prefProvider;
     
     @Override
     public void init(PortletConfig config) throws PortletException
     {
         super.init(config);
         registry = (PortletRegistry) config.getPortletContext().getAttribute(CommonPortletServices.CPS_REGISTRY_COMPONENT);
+        prefProvider = (PortletPreferencesProvider) config.getPortletContext().getAttribute(CommonPortletServices.CPS_PORTLET_PREFERENCES_PROVIDER);
+
     }
     
     @Override
@@ -132,7 +138,45 @@ public class PortletCloneManagerPortlet 
             clone.getPortletInfo().setTitle(StringUtils.defaultString(clonePortletInfo.getPortletTitle()));
             clone.getPortletInfo().setShortTitle(StringUtils.defaultString(clonePortletInfo.getPortletShortTitle()));
             clone.getPortletInfo().setKeywords(StringUtils.defaultString(clonePortletInfo.getPortletKeywords()));
-            // TODO displayName, preferences..
+            
+            Locale defaultLocale = Locale.getDefault();
+            DisplayName defaultDisplayName = null;
+            
+            for (DisplayName displayName : clone.getDisplayNames())
+            {
+                if (displayName.getLocale().equals(defaultLocale))
+                {
+                    defaultDisplayName = displayName;
+                    break;
+                }
+            }
+            
+            if (defaultDisplayName == null)
+            {
+                defaultDisplayName = clone.addDisplayName(defaultLocale.toString());
+            }
+            
+            defaultDisplayName.setDisplayName(StringUtils.defaultString(clonePortletInfo.getPortletDisplayName()));
+            
+            for (Map.Entry<String, List<String>> entry : clonePortletInfo.getPortletPreferences().entrySet())
+            {
+                String prefName = entry.getKey();
+                List<String> prefValues = entry.getValue();
+                Preferences prefs = clone.getPortletPreferences();
+                Preference pref = prefs.getPortletPreference(prefName);
+                
+                if (pref == null)
+                {
+                    pref = prefs.addPreference(prefName);
+                }
+                
+                List<String> values = pref.getValues();
+                values.clear();
+                values.addAll(prefValues);
+                
+                prefProvider.storeDefaults(clone, pref);
+            }
+            
             registry.savePortletDefinition(clone);
             status = "success";
         }



---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-dev-unsubscribe@portals.apache.org
For additional commands, e-mail: jetspeed-dev-help@portals.apache.org