You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ofbiz.apache.org by ja...@apache.org on 2007/02/22 23:07:36 UTC
svn commit: r510682 - in
/ofbiz/trunk/framework/widget/src/org/ofbiz/widget/screen:
ModelScreenWidget.java ScreenRenderer.java
Author: jaz
Date: Thu Feb 22 14:07:35 2007
New Revision: 510682
URL: http://svn.apache.org/viewvc?view=rev&rev=510682
Log:
added some ways to plug into the screen widget from outside
Modified:
ofbiz/trunk/framework/widget/src/org/ofbiz/widget/screen/ModelScreenWidget.java
ofbiz/trunk/framework/widget/src/org/ofbiz/widget/screen/ScreenRenderer.java
Modified: ofbiz/trunk/framework/widget/src/org/ofbiz/widget/screen/ModelScreenWidget.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/widget/src/org/ofbiz/widget/screen/ModelScreenWidget.java?view=diff&rev=510682&r1=510681&r2=510682
==============================================================================
--- ofbiz/trunk/framework/widget/src/org/ofbiz/widget/screen/ModelScreenWidget.java (original)
+++ ofbiz/trunk/framework/widget/src/org/ofbiz/widget/screen/ModelScreenWidget.java Thu Feb 22 14:07:35 2007
@@ -536,12 +536,23 @@
}
public void renderWidgetString(Writer writer, Map context, ScreenStringRenderer screenStringRenderer) throws GeneralException {
- SectionsRenderer sections = (SectionsRenderer) context.get("sections");
- // for now if sections is null, just log a warning; may be permissible to make the screen for flexible
- if (sections == null) {
- Debug.logWarning("In decorator-section-include could not find sections object in the context, not rendering section with name [" + this.name + "]", module);
+ Map preRenderedContent = (Map) context.get("preRenderedContent");
+ if (preRenderedContent != null && preRenderedContent.containsKey(this.name)) {
+ try {
+ writer.write((String) preRenderedContent.get(this.name));
+ } catch (IOException e) {
+ String errMsg = "Error rendering pre-rendered content in screen named [" + this.modelScreen.getName() + "]: " + e.toString();
+ Debug.logError(e, errMsg, module);
+ throw new RuntimeException(errMsg);
+ }
} else {
- sections.render(this.name);
+ SectionsRenderer sections = (SectionsRenderer) context.get("sections");
+ // for now if sections is null, just log a warning; may be permissible to make the screen for flexible
+ if (sections == null) {
+ Debug.logWarning("In decorator-section-include could not find sections object in the context, not rendering section with name [" + this.name + "]", module);
+ } else {
+ sections.render(this.name);
+ }
}
}
Modified: ofbiz/trunk/framework/widget/src/org/ofbiz/widget/screen/ScreenRenderer.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/widget/src/org/ofbiz/widget/screen/ScreenRenderer.java?view=diff&rev=510682&r1=510681&r2=510682
==============================================================================
--- ofbiz/trunk/framework/widget/src/org/ofbiz/widget/screen/ScreenRenderer.java (original)
+++ ofbiz/trunk/framework/widget/src/org/ofbiz/widget/screen/ScreenRenderer.java Thu Feb 22 14:07:35 2007
@@ -111,9 +111,13 @@
}
public void populateBasicContext(Map parameters, GenericDelegator delegator, LocalDispatcher dispatcher, Security security, Locale locale, GenericValue userLogin) {
+ populateBasicContext(context, this, parameters, delegator, dispatcher, security, locale, userLogin);
+ }
+
+ public static void populateBasicContext(MapStack context, ScreenRenderer screens, Map parameters, GenericDelegator delegator, LocalDispatcher dispatcher, Security security, Locale locale, GenericValue userLogin) {
// ========== setup values that should always be in a screen context
// include an object to more easily render screens
- context.put("screens", this);
+ context.put("screens", screens);
// make a reference for high level variables, a global context
context.put("globalContext", context.standAloneStack());
@@ -141,6 +145,10 @@
* @param servletContext
*/
public void populateContextForRequest(HttpServletRequest request, HttpServletResponse response, ServletContext servletContext) {
+ populateContextForRequest(context, this, request, response, servletContext);
+ }
+
+ public static void populateContextForRequest(MapStack context, ScreenRenderer screens, HttpServletRequest request, HttpServletResponse response, ServletContext servletContext) {
HttpSession session = request.getSession();
// attribute names to skip for session and application attributes; these are all handled as special cases, duplicating results and causing undesired messages
@@ -215,7 +223,7 @@
GenericValue userLogin = (GenericValue) session.getAttribute("userLogin");
- this.populateBasicContext(parameterMap, (GenericDelegator) request.getAttribute("delegator"),
+ populateBasicContext(context, screens, parameterMap, (GenericDelegator) request.getAttribute("delegator"),
(LocalDispatcher) request.getAttribute("dispatcher"), (Security) request.getAttribute("security"),
UtilHttp.getLocale(request), userLogin);
@@ -324,9 +332,9 @@
public Map getContext() {
return context;
}
-
+
public void populateContextForService(DispatchContext dctx, Map serviceContext) {
- this.populateBasicContext(serviceContext, dctx.getDelegator(), dctx.getDispatcher(), dctx.getSecurity(),
+ this.populateBasicContext(serviceContext, dctx.getDelegator(), dctx.getDispatcher(), dctx.getSecurity(),
(Locale) serviceContext.get("locale"), (GenericValue) serviceContext.get("userLogin"));
}
}