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 mo...@apache.org on 2003/06/11 20:45:10 UTC
cvs commit: jakarta-jetspeed/webapp/WEB-INF/templates/vm/portlets/html customize-update_save_row.vm
morciuch 2003/06/11 11:45:10
Modified: src/java/org/apache/jetspeed/modules/actions/portlets
CustomizeAction.java
webapp/WEB-INF/templates/vm/portlets/html
customize-update_save_row.vm
Log:
Portlet customizer now allows to set parameter values to empty string (see Bugzilla bug# 18806)
Revision Changes Path
1.19 +75 -23 jakarta-jetspeed/src/java/org/apache/jetspeed/modules/actions/portlets/CustomizeAction.java
Index: CustomizeAction.java
===================================================================
RCS file: /home/cvs/jakarta-jetspeed/src/java/org/apache/jetspeed/modules/actions/portlets/CustomizeAction.java,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -r1.18 -r1.19
--- CustomizeAction.java 4 Mar 2003 00:04:53 -0000 1.18
+++ CustomizeAction.java 11 Jun 2003 18:45:10 -0000 1.19
@@ -102,6 +102,8 @@
public class CustomizeAction extends VelocityPortletAction
{
+ public static final String PARAM_NAMESPACE = "_param_";
+
/**
* Subclasses must override this method to provide default behavior
* for the portlet action
@@ -197,6 +199,57 @@
}
}
+ /**
+ * Resets the portlet settings to default
+ *
+ * @param rundata
+ * @param context
+ */
+ public void doDefault(RunData rundata, Context context)
+ {
+ // we should first retrieve the portlet to customize and its parameters
+ // definition
+ Portlet p = ((JetspeedRunData) rundata).getCustomized();
+
+ // Update paramaters
+ try
+ {
+ PortletInstance instance = PersistenceManager.getInstance(p, rundata);
+
+ instance.removeAllAttributes();
+
+ try
+ {
+ ((JetspeedRunData) rundata).getCustomizedProfile().store();
+ }
+ catch (Exception e)
+ {
+ Log.error("Unable to save profile ",e);
+ }
+
+ //FIXME: this hack is due to the corrupted lifecycle of the portlet in the
+ //current API when caching is activated
+ try
+ {
+ org.apache.jetspeed.util.PortletSessionState.setPortletConfigChanged(p, rundata);
+ p.init();
+ }
+ catch (PortletException e)
+ {
+ Log.error("Customizer failed to reinitialize the portlet "+p.getName(), e);
+ }
+
+ // we're done, make sure clean up the
+ // session
+ doCancel(rundata, context);
+ }
+ catch (Exception e)
+ {
+ Log.error(e);
+ }
+ }
+
+
/** Updates the customized portlet entry */
public void doUpdate(RunData rundata, Context context)
{
@@ -363,34 +416,33 @@
Parameter param = (Parameter)i.next();
String name = param.getName();
String newValue = rundata.getParameters().getString(name);
+ String regValue = param.getValue();
+ String psmlValue = instance.getAttribute(name);
- // we treat null and empty string in the same way, we should
- // probably find a better system as they may have different semantic
- if ((newValue==null)||(newValue.equals("")))
- {
- // this will fail if the parameter is currently set in the registry
- // but not in the PSML entry. This is a good thing !
- instance.removeAttribute(name);
- }
- else
+ //System.out.println(name + "= [" + psmlValue + "] in psml");
+ //System.out.println(name + "= [" + regValue + "] in registry");
+
+ // New value for this parameter exists
+ if (newValue != null)
{
- // only update if the value changed
- if (!newValue.equals(p.getPortletConfig().getInitParameter(name)))
+ System.out.println(name + "= [" + newValue + "] in request");
+ // New value differs from registry - record it in psml
+ if (!regValue.equals(newValue))
{
- instance.setAttribute(name,newValue);
- // Note: setting the portlet's config *IS NOT* a good idea -
- // it might be used as the Portlet for other PSMLDocument Entries that
- // used to have the same parameters as this one (Portlets *ARE* cached on
- // their parameters), so changing the parameters like this changes them for
- // all and make the Portlet *NOT MATCH* the cache handle.
- // It's ok not to do this here, since when this PSML is next rendered,
- // it will look for a portlet with the new set of parameters, and will
- // find / create a new one if needed - ggolden
-
- //pc.setInitParameter(name,newValue);
- madePsChange = true;
+ instance.setAttribute(name, newValue);
+ psmlValue = newValue;
+ //System.out.println("setting attribute for [" + name + "]");
}
+ madePsChange = true;
}
+ // Remove duplicate parameters from psml
+ if (psmlValue != null && psmlValue.equals(regValue))
+ {
+ //System.out.println("removing attribute for [" + name + "]");
+ instance.removeAttribute(name);
+ madePsChange = true;
+ }
+
}
// save all the changes
1.2 +3 -1 jakarta-jetspeed/webapp/WEB-INF/templates/vm/portlets/html/customize-update_save_row.vm
Index: customize-update_save_row.vm
===================================================================
RCS file: /home/cvs/jakarta-jetspeed/webapp/WEB-INF/templates/vm/portlets/html/customize-update_save_row.vm,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- customize-update_save_row.vm 2 Jul 2002 07:22:38 -0000 1.1
+++ customize-update_save_row.vm 11 Jun 2003 18:45:10 -0000 1.2
@@ -3,6 +3,8 @@
<td align="center" colspan="2">
<input type="submit" name="eventSubmit_doUpdate" value="$l10n.CUSTOMIZER_UPDATE">
+ <input type="submit" name="eventSubmit_doDefault" value="Default" TITLE="Reset to default">
+
<input type="submit" name="eventSubmit_doCancel" value="$l10n.CUSTOMIZER_CANCEL">
</td>
</tr>
---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jetspeed-dev-help@jakarta.apache.org