Update of
/var/cvs/contributions/CMSContainer/cmsc/portlets/src/java/com/finalist/cmsc/portlets
In directory
james.mmbase.org:/tmp/cvs-serv22575/cmsc/portlets/src/java/com/finalist/cmsc/portlets
Modified Files:
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.25
retrieving revision 1.26
diff -u -b -r1.25 -r1.26
--- CmscPortlet.java 6 Nov 2008 08:51:15 -0000 1.25
+++ CmscPortlet.java 11 Feb 2009 23:15:14 -0000 1.26
@@ -37,7 +37,6 @@
import org.mmbase.bridge.Cloud;
import org.mmbase.bridge.Node;
-import com.finalist.cmsc.beans.om.Portlet;
import com.finalist.cmsc.beans.om.PortletParameter;
import com.finalist.cmsc.beans.om.View;
import com.finalist.cmsc.portalImpl.PortalConstants;
@@ -169,16 +168,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
@@ -213,25 +215,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
@@ -358,20 +365,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;
@@ -409,21 +440,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.8
retrieving revision 1.9
diff -u -b -r1.8 -r1.9
--- XsltPortlet.java 4 Feb 2009 16:18:09 -0000 1.8
+++ XsltPortlet.java 11 Feb 2009 23:15:14 -0000 1.9
@@ -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