Update of 
/var/cvs/contributions/CMSContainer/cmsc/portlets/src/java/com/finalist/cmsc/portlets
In directory 
james.mmbase.org:/tmp/cvs-serv22603/cmsc/portlets/src/java/com/finalist/cmsc/portlets

Modified Files:
      Tag: b1_5
        CmscPortlet.java XsltPortlet.java 
Log Message:
CMSC-1276 Improve extensibility of xsltportlet


See also: 
http://cvs.mmbase.org/viewcvs/contributions/CMSContainer/cmsc/portlets/src/java/com/finalist/cmsc/portlets
See also: http://www.mmbase.org/jira/browse/CMSC-1276


Index: CmscPortlet.java
===================================================================
RCS file: 
/var/cvs/contributions/CMSContainer/cmsc/portlets/src/java/com/finalist/cmsc/portlets/CmscPortlet.java,v
retrieving revision 1.24.2.1
retrieving revision 1.24.2.2
diff -u -b -r1.24.2.1 -r1.24.2.2
--- CmscPortlet.java    6 Nov 2008 08:51:21 -0000       1.24.2.1
+++ CmscPortlet.java    11 Feb 2009 23:15:25 -0000      1.24.2.2
@@ -170,16 +170,19 @@
       }
    }
 
+   @SuppressWarnings("unused")
    public void processPrint(ActionRequest req, ActionResponse res) throws 
PortletException,
          IOException {
       // convenience method
    }
 
+   @SuppressWarnings("unused")
    public void processPreview(ActionRequest req, ActionResponse res) throws 
PortletException,
          IOException {
       // convenience method
    }
 
+   @SuppressWarnings("unused") 
    public void processHelp(ActionRequest req, ActionResponse res) throws 
PortletException,
          IOException {
       // convenience method
@@ -214,25 +217,30 @@
       response.setPortletMode(PortletMode.VIEW);
    }
 
+   @SuppressWarnings("unused")
    protected void saveParameters(ActionRequest request, String portletId) {
       // convenience method
    }
 
+   @SuppressWarnings("unused")
    public void processEdit(ActionRequest req, ActionResponse res) throws 
PortletException,
          IOException {
       // convenience method
    }
 
+   @SuppressWarnings("unused") 
    public void processConfig(ActionRequest req, ActionResponse res) throws 
PortletException,
          IOException {
       // convenience method
    }
 
+   @SuppressWarnings("unused") 
    public void processAbout(ActionRequest req, ActionResponse res) throws 
PortletException,
          IOException {
       // convenience method
    }
 
+   @SuppressWarnings("unused") 
    public void processView(ActionRequest req, ActionResponse res) throws 
PortletException,
          IOException {
       // convenience method
@@ -359,20 +367,44 @@
     * @param template
     */
    protected void setResourceBundle(RenderRequest req, String template) {
+      String baseName = getResourceBaseName(template);
+
+      List<Locale> locales = getLocales(req);
+      int count = 0;
+      for (Locale locale : locales) {
+         ResourceBundle bundle = getResourceBundle(locale, baseName);
+
+         // this is JSTL specific, but the problem is that a RenderRequest is
+         // not a ServletRequest
+         if (bundle != null) {
+            if (count == 0 || locales.size() == 1) {
+               LocalizationContext ctx = new LocalizationContext(bundle, 
locale);
+               req.setAttribute(Config.FMT_LOCALIZATION_CONTEXT + ".request", 
ctx);
+            }
+            else {
+               LocalizationContext ctx = new LocalizationContext(bundle, 
locale);
+               req.setAttribute(Config.FMT_LOCALIZATION_CONTEXT + 
".request.editors", ctx);
+            }
+            count++;
+         }
+      }
+   }
+
+   protected String getResourceBaseName(String template) {
       String baseName = null;
       if (StringUtils.isNotEmpty(template)) {
-         int extnsionIndex = template.lastIndexOf(".");
-         if (extnsionIndex > -1) {
-            baseName = template.substring(0, extnsionIndex);
+         int extensionIndex = template.lastIndexOf(".");
+         if (extensionIndex > -1) {
+            baseName = template.substring(0, extensionIndex);
          }
          else {
             baseName = template;
          }
       }
+      return baseName;
+   }
 
-      List<Locale> locales = getLocales(req);
-      int count = 0;
-      for (Locale locale : locales) {
+   protected ResourceBundle getResourceBundle(Locale locale, String baseName) {
          ResourceBundle bundle = null;
          CombinedResourceBundle cbundle = null;
 
@@ -410,21 +442,7 @@
                bundle = cbundle;
             }
          }
-
-         // this is JSTL specific, but the problem is that a RenderRequest is
-         // not a ServletRequest
-         if (bundle != null) {
-            if (count == 0 || locales.size() == 1) {
-               LocalizationContext ctx = new LocalizationContext(bundle, 
locale);
-               req.setAttribute(Config.FMT_LOCALIZATION_CONTEXT + ".request", 
ctx);
-            }
-            else {
-               LocalizationContext ctx = new LocalizationContext(bundle, 
locale);
-               req.setAttribute(Config.FMT_LOCALIZATION_CONTEXT + 
".request.editors", ctx);
-            }
-            count++;
-         }
-      }
+      return bundle;
    }
 
    @Override


Index: XsltPortlet.java
===================================================================
RCS file: 
/var/cvs/contributions/CMSContainer/cmsc/portlets/src/java/com/finalist/cmsc/portlets/XsltPortlet.java,v
retrieving revision 1.6.2.2
retrieving revision 1.6.2.3
diff -u -b -r1.6.2.2 -r1.6.2.3
--- XsltPortlet.java    4 Feb 2009 16:18:02 -0000       1.6.2.2
+++ XsltPortlet.java    11 Feb 2009 23:15:25 -0000      1.6.2.3
@@ -59,8 +59,8 @@
       }
       else if (action.equals("edit")) {
          if (portletId != null) {
+            saveParameters(request, portletId);
             // get the values submitted with the form
-            setPortletParameter(portletId, SOURCE_ATTR_PARAM, 
request.getParameter(SOURCE_ATTR_PARAM));
             setPortletView(portletId, request.getParameter(VIEW));
             setPortletNodeParameter(portletId, PAGE, 
request.getParameter(PAGE));
             setPortletParameter(portletId, WINDOW, 
request.getParameter(WINDOW));
@@ -76,6 +76,10 @@
       }
    }
 
+   @Override
+   protected void saveParameters(ActionRequest request, String portletId) {
+      setPortletParameter(portletId, SOURCE_ATTR_PARAM, 
request.getParameter(SOURCE_ATTR_PARAM));
+   }
 
    @Override
    protected void doEditDefaults(RenderRequest req, RenderResponse res) throws 
IOException, PortletException {
@@ -147,6 +151,11 @@
          try {
             HashMap<String, Object> xslParams = getXsltParams(preferences);
             
+            String contextPath = request.getContextPath();
+            if (!contextPath.endsWith("/")) {
+               contextPath += "/";
+            }
+            xslParams.put("URLCONTEXT", contextPath);
             addRenderUrl(request, response, xslParams);
             addActionUrl(response, xslParams);
             xslParams.put("NAMESPACE", response.getNamespace());
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs

Reply via email to