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