You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ofbiz.apache.org by nm...@apache.org on 2017/08/25 08:18:35 UTC
svn commit: r1806134 - in /ofbiz/ofbiz-framework/trunk/framework:
base/src/main/java/org/apache/ofbiz/base/util/
common/src/main/java/org/apache/ofbiz/common/
common/src/main/java/org/apache/ofbiz/common/scripting/
service/src/main/java/org/apache/ofbi...
Author: nmalin
Date: Fri Aug 25 08:18:35 2017
New Revision: 1806134
URL: http://svn.apache.org/viewvc?rev=1806134&view=rev
Log:
Implemented: Continue the common-theme upload (OFBIZ-9138 Create a common theme)
Four step load the visualTheme in user session, freemarker, screen, groovy and service context
Add util to resolve easily a visualTheme
Modified:
ofbiz/ofbiz-framework/trunk/framework/base/src/main/java/org/apache/ofbiz/base/util/UtilHttp.java
ofbiz/ofbiz-framework/trunk/framework/common/src/main/java/org/apache/ofbiz/common/CommonEvents.java
ofbiz/ofbiz-framework/trunk/framework/common/src/main/java/org/apache/ofbiz/common/scripting/ContextHelper.java
ofbiz/ofbiz-framework/trunk/framework/service/src/main/java/org/apache/ofbiz/service/engine/GroovyEngine.java
ofbiz/ofbiz-framework/trunk/framework/webapp/src/main/java/org/apache/ofbiz/webapp/control/ControlServlet.java
ofbiz/ofbiz-framework/trunk/framework/webapp/src/main/java/org/apache/ofbiz/webapp/control/LoginWorker.java
ofbiz/ofbiz-framework/trunk/framework/webapp/src/main/java/org/apache/ofbiz/webapp/control/RequestHandler.java
ofbiz/ofbiz-framework/trunk/framework/webapp/src/main/java/org/apache/ofbiz/webapp/event/ServiceEventHandler.java
ofbiz/ofbiz-framework/trunk/framework/widget/src/main/java/org/apache/ofbiz/widget/model/ThemeFactory.java
ofbiz/ofbiz-framework/trunk/framework/widget/src/main/java/org/apache/ofbiz/widget/renderer/ScreenRenderer.java
ofbiz/ofbiz-framework/trunk/framework/widget/src/main/java/org/apache/ofbiz/widget/renderer/fo/ScreenFopViewHandler.java
ofbiz/ofbiz-framework/trunk/framework/widget/src/main/java/org/apache/ofbiz/widget/renderer/macro/MacroFormRenderer.java
ofbiz/ofbiz-framework/trunk/framework/widget/src/main/java/org/apache/ofbiz/widget/renderer/macro/MacroMenuRenderer.java
ofbiz/ofbiz-framework/trunk/framework/widget/src/main/java/org/apache/ofbiz/widget/renderer/macro/MacroScreenRenderer.java
ofbiz/ofbiz-framework/trunk/framework/widget/src/main/java/org/apache/ofbiz/widget/renderer/macro/MacroScreenViewHandler.java
Modified: ofbiz/ofbiz-framework/trunk/framework/base/src/main/java/org/apache/ofbiz/base/util/UtilHttp.java
URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/framework/base/src/main/java/org/apache/ofbiz/base/util/UtilHttp.java?rev=1806134&r1=1806133&r2=1806134&view=diff
==============================================================================
--- ofbiz/ofbiz-framework/trunk/framework/base/src/main/java/org/apache/ofbiz/base/util/UtilHttp.java (original)
+++ ofbiz/ofbiz-framework/trunk/framework/base/src/main/java/org/apache/ofbiz/base/util/UtilHttp.java Fri Aug 25 08:18:35 2017
@@ -56,6 +56,7 @@ import org.apache.http.conn.ssl.TrustSel
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.ssl.SSLContexts;
+import org.apache.ofbiz.widget.renderer.VisualTheme;
import org.apache.oro.text.regex.MalformedPatternException;
import org.apache.oro.text.regex.Pattern;
import org.apache.oro.text.regex.PatternMatcher;
@@ -78,6 +79,7 @@ public final class UtilHttp {
private static final int COMPOSITE_DELIMITER_LENGTH = COMPOSITE_DELIMITER.length();
private static final String SESSION_KEY_TIMEZONE = "timeZone";
+ private static final String SESSION_KEY_THEME = "visualTheme";
private UtilHttp () {}
@@ -726,6 +728,21 @@ public final class UtilHttp {
}
/**
+ * Return the VisualTheme object from the user session
+ * @param request
+ * @return
+ */
+ public static VisualTheme getVisualTheme(HttpServletRequest request) {
+ return (VisualTheme) request.getSession().getAttribute(SESSION_KEY_THEME);
+ }
+ public static void setVisualTheme(HttpServletRequest request, VisualTheme visualTheme) {
+ setVisualTheme(request.getSession(), visualTheme);
+ }
+ public static void setVisualTheme(HttpSession session, VisualTheme visualTheme) {
+ session.setAttribute(SESSION_KEY_THEME, visualTheme);
+ }
+
+ /**
* Get the currency string from the session.
* @param session HttpSession object to use for lookup
* @return String The ISO currency code
Modified: ofbiz/ofbiz-framework/trunk/framework/common/src/main/java/org/apache/ofbiz/common/CommonEvents.java
URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/framework/common/src/main/java/org/apache/ofbiz/common/CommonEvents.java?rev=1806134&r1=1806133&r2=1806134&view=diff
==============================================================================
--- ofbiz/ofbiz-framework/trunk/framework/common/src/main/java/org/apache/ofbiz/common/CommonEvents.java (original)
+++ ofbiz/ofbiz-framework/trunk/framework/common/src/main/java/org/apache/ofbiz/common/CommonEvents.java Fri Aug 25 08:18:35 2017
@@ -58,6 +58,8 @@ import org.apache.ofbiz.entity.GenericVa
import org.apache.ofbiz.entity.util.EntityQuery;
import org.apache.ofbiz.entity.util.EntityUtilProperties;
import org.apache.ofbiz.security.Security;
+import org.apache.ofbiz.widget.model.ThemeFactory;
+import org.apache.ofbiz.widget.renderer.VisualTheme;
/**
* Common Services
@@ -247,6 +249,18 @@ public class CommonEvents {
}
}
return "success";
+ }
+
+ /** Simple event to set the user's per-session theme setting. */
+ public static String setSessionTheme(HttpServletRequest request, HttpServletResponse response) {
+ String visualThemeId = request.getParameter("userPrefValue");
+ if (UtilValidate.isNotEmpty(visualThemeId)) {
+ VisualTheme visualTheme = ThemeFactory.getVisualThemeFromId(visualThemeId);
+ if (visualTheme != null) {
+ UtilHttp.setVisualTheme(request, visualTheme);
+ }
+ }
+ return "success";
}
/** Simple event to set the users per-session currency uom value */
Modified: ofbiz/ofbiz-framework/trunk/framework/common/src/main/java/org/apache/ofbiz/common/scripting/ContextHelper.java
URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/framework/common/src/main/java/org/apache/ofbiz/common/scripting/ContextHelper.java?rev=1806134&r1=1806133&r2=1806134&view=diff
==============================================================================
--- ofbiz/ofbiz-framework/trunk/framework/common/src/main/java/org/apache/ofbiz/common/scripting/ContextHelper.java (original)
+++ ofbiz/ofbiz-framework/trunk/framework/common/src/main/java/org/apache/ofbiz/common/scripting/ContextHelper.java Fri Aug 25 08:18:35 2017
@@ -41,6 +41,7 @@ import org.apache.ofbiz.entity.GenericVa
import org.apache.ofbiz.security.Security;
import org.apache.ofbiz.service.LocalDispatcher;
import org.apache.ofbiz.service.ModelService;
+import org.apache.ofbiz.widget.renderer.VisualTheme;
/**
* A set of <code>ScriptContext</code> convenience methods for scripting engines.
@@ -135,6 +136,10 @@ public final class ContextHelper {
return (Locale) this.context.getAttribute("locale");
}
+ public VisualTheme getVisualTheme() {
+ return (VisualTheme) this.context.getAttribute("visualTheme");
+ }
+
public Object getParameter(String key) {
return getParameters().get(key);
}
Modified: ofbiz/ofbiz-framework/trunk/framework/service/src/main/java/org/apache/ofbiz/service/engine/GroovyEngine.java
URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/framework/service/src/main/java/org/apache/ofbiz/service/engine/GroovyEngine.java?rev=1806134&r1=1806133&r2=1806134&view=diff
==============================================================================
--- ofbiz/ofbiz-framework/trunk/framework/service/src/main/java/org/apache/ofbiz/service/engine/GroovyEngine.java (original)
+++ ofbiz/ofbiz-framework/trunk/framework/service/src/main/java/org/apache/ofbiz/service/engine/GroovyEngine.java Fri Aug 25 08:18:35 2017
@@ -59,6 +59,7 @@ public final class GroovyEngine extends
newSet.add("dctx");
newSet.add("dispatcher");
newSet.add("delegator");
+ newSet.add("visualTheme");
return Collections.unmodifiableSet(newSet);
}
Modified: ofbiz/ofbiz-framework/trunk/framework/webapp/src/main/java/org/apache/ofbiz/webapp/control/ControlServlet.java
URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/framework/webapp/src/main/java/org/apache/ofbiz/webapp/control/ControlServlet.java?rev=1806134&r1=1806133&r2=1806134&view=diff
==============================================================================
--- ofbiz/ofbiz-framework/trunk/framework/webapp/src/main/java/org/apache/ofbiz/webapp/control/ControlServlet.java (original)
+++ ofbiz/ofbiz-framework/trunk/framework/webapp/src/main/java/org/apache/ofbiz/webapp/control/ControlServlet.java Fri Aug 25 08:18:35 2017
@@ -47,6 +47,7 @@ import org.apache.ofbiz.security.Securit
import org.apache.ofbiz.service.LocalDispatcher;
import org.apache.ofbiz.webapp.stats.ServerHitBin;
import org.apache.ofbiz.webapp.stats.VisitHandler;
+import org.apache.ofbiz.widget.renderer.VisualTheme;
import freemarker.ext.servlet.ServletContextHashModel;
@@ -178,6 +179,10 @@ public class ControlServlet extends Http
}
request.setAttribute("security", security);
+ VisualTheme visualTheme = UtilHttp.getVisualTheme(request);
+ if (visualTheme != null) {
+ UtilHttp.setVisualTheme(request, visualTheme);
+ }
request.setAttribute("_REQUEST_HANDLER_", requestHandler);
ServletContextHashModel ftlServletContext = new ServletContextHashModel(this, FreeMarkerWorker.getDefaultOfbizWrapper());
Modified: ofbiz/ofbiz-framework/trunk/framework/webapp/src/main/java/org/apache/ofbiz/webapp/control/LoginWorker.java
URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/framework/webapp/src/main/java/org/apache/ofbiz/webapp/control/LoginWorker.java?rev=1806134&r1=1806133&r2=1806134&view=diff
==============================================================================
--- ofbiz/ofbiz-framework/trunk/framework/webapp/src/main/java/org/apache/ofbiz/webapp/control/LoginWorker.java (original)
+++ ofbiz/ofbiz-framework/trunk/framework/webapp/src/main/java/org/apache/ofbiz/webapp/control/LoginWorker.java Fri Aug 25 08:18:35 2017
@@ -79,6 +79,7 @@ import org.apache.ofbiz.service.ModelSer
import org.apache.ofbiz.service.ServiceUtil;
import org.apache.ofbiz.webapp.WebAppUtil;
import org.apache.ofbiz.webapp.stats.VisitHandler;
+import org.apache.ofbiz.widget.model.ThemeFactory;
/**
* Common Workers
@@ -577,6 +578,10 @@ public class LoginWorker {
}
session.setAttribute("javaScriptEnabled", Boolean.valueOf("Y".equals(javaScriptEnabled)));
+ //init theme from user preference, clean the current visualTheme value in session and restart the resolution
+ UtilHttp.setVisualTheme(session, null);
+ UtilHttp.setVisualTheme(session, ThemeFactory.resolveVisualTheme(request));
+
ModelEntity modelUserLogin = userLogin.getModelEntity();
if (modelUserLogin.isField("partyId")) {
// if partyId is a field, then we should have these relations defined
Modified: ofbiz/ofbiz-framework/trunk/framework/webapp/src/main/java/org/apache/ofbiz/webapp/control/RequestHandler.java
URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/framework/webapp/src/main/java/org/apache/ofbiz/webapp/control/RequestHandler.java?rev=1806134&r1=1806133&r2=1806134&view=diff
==============================================================================
--- ofbiz/ofbiz-framework/trunk/framework/webapp/src/main/java/org/apache/ofbiz/webapp/control/RequestHandler.java (original)
+++ ofbiz/ofbiz-framework/trunk/framework/webapp/src/main/java/org/apache/ofbiz/webapp/control/RequestHandler.java Fri Aug 25 08:18:35 2017
@@ -60,6 +60,7 @@ import org.apache.ofbiz.webapp.view.View
import org.apache.ofbiz.webapp.view.ViewHandlerException;
import org.apache.ofbiz.webapp.website.WebSiteProperties;
import org.apache.ofbiz.webapp.website.WebSiteWorker;
+import org.apache.ofbiz.widget.model.ThemeFactory;
/**
* RequestHandler - Request Processor Object
@@ -849,7 +850,10 @@ public class RequestHandler {
if (UtilValidate.isNotEmpty(servletName) && servletName.length() > 1 || servletName.startsWith("/")) {
servletName = servletName.substring(1);
}
-
+
+ if (UtilHttp.getVisualTheme(req) == null) {
+ UtilHttp.setVisualTheme(req.getSession(), ThemeFactory.resolveVisualTheme(req));
+ }
if (Debug.infoOn()) Debug.logInfo("Rendering View [" + view + "]. " + showSessionId(req), module);
if (view.startsWith(servletName + "/")) {
view = view.substring(servletName.length() + 1);
Modified: ofbiz/ofbiz-framework/trunk/framework/webapp/src/main/java/org/apache/ofbiz/webapp/event/ServiceEventHandler.java
URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/framework/webapp/src/main/java/org/apache/ofbiz/webapp/event/ServiceEventHandler.java?rev=1806134&r1=1806133&r2=1806134&view=diff
==============================================================================
--- ofbiz/ofbiz-framework/trunk/framework/webapp/src/main/java/org/apache/ofbiz/webapp/event/ServiceEventHandler.java (original)
+++ ofbiz/ofbiz-framework/trunk/framework/webapp/src/main/java/org/apache/ofbiz/webapp/event/ServiceEventHandler.java Fri Aug 25 08:18:35 2017
@@ -57,6 +57,7 @@ import org.apache.ofbiz.webapp.control.C
import org.apache.ofbiz.webapp.control.ConfigXMLReader.Event;
import org.apache.ofbiz.webapp.control.ConfigXMLReader.RequestMap;
import org.apache.ofbiz.webapp.control.ControlActivationEventListener;
+import org.apache.ofbiz.widget.renderer.VisualTheme;
/**
* ServiceEventHandler - Service Event Handler
@@ -108,6 +109,7 @@ public class ServiceEventHandler impleme
// some needed info for when running the service
Locale locale = UtilHttp.getLocale(request);
TimeZone timeZone = UtilHttp.getTimeZone(request);
+ VisualTheme visualTheme = UtilHttp.getVisualTheme(request);
HttpSession session = request.getSession();
GenericValue userLogin = (GenericValue) session.getAttribute("userLogin");
@@ -245,6 +247,8 @@ public class ServiceEventHandler impleme
if ("locale".equals(name)) continue;
// don't include timeZone, that is also taken care of below
if ("timeZone".equals(name)) continue;
+ // don't include theme, that is also taken care of below
+ if ("visualTheme".equals(name)) continue;
Object value = null;
if (UtilValidate.isNotEmpty(modelParam.stringMapPrefix)) {
@@ -332,6 +336,11 @@ public class ServiceEventHandler impleme
serviceContext.put("timeZone", timeZone);
}
+ // include the Theme object
+ if (visualTheme != null) {
+ serviceContext.put("visualTheme", visualTheme);
+ }
+
// invoke the service
Map<String, Object> result = null;
try {
Modified: ofbiz/ofbiz-framework/trunk/framework/widget/src/main/java/org/apache/ofbiz/widget/model/ThemeFactory.java
URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/framework/widget/src/main/java/org/apache/ofbiz/widget/model/ThemeFactory.java?rev=1806134&r1=1806133&r2=1806134&view=diff
==============================================================================
--- ofbiz/ofbiz-framework/trunk/framework/widget/src/main/java/org/apache/ofbiz/widget/model/ThemeFactory.java (original)
+++ ofbiz/ofbiz-framework/trunk/framework/widget/src/main/java/org/apache/ofbiz/widget/model/ThemeFactory.java Fri Aug 25 08:18:35 2017
@@ -74,12 +74,34 @@ public class ThemeFactory {
}
/**
+ * Scann all Theme.xml definition to reload all VisualTheme oin cache
+ */
+ private static void pullModelThemesFromXmlToCache() {
+ String ofbizHome = System.getProperty("ofbiz.home");
+ try {
+ List<File> xmlThemes = FileUtil.findXmlFiles(ofbizHome, "themes", "theme", "widget-theme.xsd");
+ List<File> xmlPluginThemes = FileUtil.findXmlFiles(ofbizHome, "plugins", "theme", "widget-theme.xsd");
+ if (UtilValidate.isNotEmpty(xmlPluginThemes)) xmlThemes.addAll(xmlPluginThemes);
+ for (File xmlTheme : xmlThemes) {
+ ModelTheme modelTheme = getModelThemeFromLocation(xmlTheme.toURI().toURL().toString());
+ if (modelTheme != null) {
+ for (String containsVisualThemeId : modelTheme.getVisualThemeIds()) {
+ themeVisualThemeIdCache.put(containsVisualThemeId, modelTheme.getVisualTheme(containsVisualThemeId));
+ }
+ }
+ }
+ } catch (IOException e) {
+ Debug.logError("Impossible to initialize models themes in cache throw: " + e, module);
+ }
+ }
+
+ /**
* From a visualThemeId return the VisualTheme object corresponding in cache
* If it's empty, reload the cache from all Theme definition
* @param visualThemeId
* @return
*/
- private static VisualTheme getVisualThemeFromId(String visualThemeId) {
+ public static VisualTheme getVisualThemeFromId(String visualThemeId) {
if (visualThemeId == null) return null;
VisualTheme visualTheme = themeVisualThemeIdCache.get(visualThemeId);
if (visualTheme == null) {
@@ -100,28 +122,6 @@ public class ThemeFactory {
}
/**
- * Scann all Theme.xml definition to reload all VisualTheme oin cache
- */
- private static void pullModelThemesFromXmlToCache() {
- String ofbizHome = System.getProperty("ofbiz.home");
- try {
- List<File> xmlThemes = FileUtil.findXmlFiles(ofbizHome, "themes", "theme", "widget-theme.xsd");
- List<File> xmlPluginThemes = FileUtil.findXmlFiles(ofbizHome, "plugins", "theme", "widget-theme.xsd");
- if (UtilValidate.isNotEmpty(xmlPluginThemes)) xmlThemes.addAll(xmlPluginThemes);
- for (File xmlTheme : xmlThemes) {
- ModelTheme modelTheme = getModelThemeFromLocation(xmlTheme.toURI().toURL().toString());
- if (modelTheme != null) {
- for (String containsVisualThemeId : modelTheme.getVisualThemeIds()) {
- themeVisualThemeIdCache.put(containsVisualThemeId, modelTheme.getVisualTheme(containsVisualThemeId));
- }
- }
- }
- } catch (IOException e) {
- Debug.logError("Impossible to initialize models themes in cache throw: " + e, module);
- }
- }
-
- /**
* From a theme file location, resolve the modelTheme related from the cache.
* If empty, load the modeTheme definition and put it in cache
* @param resourceName
Modified: ofbiz/ofbiz-framework/trunk/framework/widget/src/main/java/org/apache/ofbiz/widget/renderer/ScreenRenderer.java
URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/framework/widget/src/main/java/org/apache/ofbiz/widget/renderer/ScreenRenderer.java?rev=1806134&r1=1806133&r2=1806134&view=diff
==============================================================================
--- ofbiz/ofbiz-framework/trunk/framework/widget/src/main/java/org/apache/ofbiz/widget/renderer/ScreenRenderer.java (original)
+++ ofbiz/ofbiz-framework/trunk/framework/widget/src/main/java/org/apache/ofbiz/widget/renderer/ScreenRenderer.java Fri Aug 25 08:18:35 2017
@@ -215,6 +215,9 @@ public class ScreenRenderer {
// ========== setup values that are specific to OFBiz webapps
+ VisualTheme visualTheme = UtilHttp.getVisualTheme(request);
+ context.put("visualTheme", visualTheme);
+ context.put("modelTheme", visualTheme.getModelTheme());
context.put("request", request);
context.put("response", response);
context.put("session", session);
Modified: ofbiz/ofbiz-framework/trunk/framework/widget/src/main/java/org/apache/ofbiz/widget/renderer/fo/ScreenFopViewHandler.java
URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/framework/widget/src/main/java/org/apache/ofbiz/widget/renderer/fo/ScreenFopViewHandler.java?rev=1806134&r1=1806133&r2=1806134&view=diff
==============================================================================
--- ofbiz/ofbiz-framework/trunk/framework/widget/src/main/java/org/apache/ofbiz/widget/renderer/fo/ScreenFopViewHandler.java (original)
+++ ofbiz/ofbiz-framework/trunk/framework/widget/src/main/java/org/apache/ofbiz/widget/renderer/fo/ScreenFopViewHandler.java Fri Aug 25 08:18:35 2017
@@ -37,6 +37,7 @@ import org.apache.fop.pdf.PDFEncryptionP
import org.apache.fop.render.pdf.PDFEncryptionOption;
import org.apache.ofbiz.base.util.Debug;
import org.apache.ofbiz.base.util.UtilCodec;
+import org.apache.ofbiz.base.util.UtilHttp;
import org.apache.ofbiz.base.util.UtilProperties;
import org.apache.ofbiz.base.util.UtilValidate;
import org.apache.ofbiz.entity.Delegator;
@@ -44,9 +45,11 @@ import org.apache.ofbiz.entity.util.Enti
import org.apache.ofbiz.webapp.view.AbstractViewHandler;
import org.apache.ofbiz.webapp.view.ApacheFopWorker;
import org.apache.ofbiz.webapp.view.ViewHandlerException;
+import org.apache.ofbiz.widget.model.ModelTheme;
import org.apache.ofbiz.widget.renderer.FormStringRenderer;
import org.apache.ofbiz.widget.renderer.ScreenRenderer;
import org.apache.ofbiz.widget.renderer.ScreenStringRenderer;
+import org.apache.ofbiz.widget.renderer.VisualTheme;
import org.apache.ofbiz.widget.renderer.macro.MacroFormRenderer;
import org.apache.ofbiz.widget.renderer.macro.MacroScreenRenderer;
@@ -75,6 +78,9 @@ public class ScreenFopViewHandler extend
public void render(String name, String page, String info, String contentType, String encoding, HttpServletRequest request, HttpServletResponse response) throws ViewHandlerException {
Delegator delegator = (Delegator) request.getAttribute("delegator");
+ VisualTheme visualTheme = UtilHttp.getVisualTheme(request);
+ ModelTheme modelTheme = visualTheme.getModelTheme();
+
// render and obtain the XSL-FO
Writer writer = new StringWriter();
try {
Modified: ofbiz/ofbiz-framework/trunk/framework/widget/src/main/java/org/apache/ofbiz/widget/renderer/macro/MacroFormRenderer.java
URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/framework/widget/src/main/java/org/apache/ofbiz/widget/renderer/macro/MacroFormRenderer.java?rev=1806134&r1=1806133&r2=1806134&view=diff
==============================================================================
--- ofbiz/ofbiz-framework/trunk/framework/widget/src/main/java/org/apache/ofbiz/widget/renderer/macro/MacroFormRenderer.java (original)
+++ ofbiz/ofbiz-framework/trunk/framework/widget/src/main/java/org/apache/ofbiz/widget/renderer/macro/MacroFormRenderer.java Fri Aug 25 08:18:35 2017
@@ -85,11 +85,14 @@ import org.apache.ofbiz.widget.model.Mod
import org.apache.ofbiz.widget.model.ModelFormFieldBuilder;
import org.apache.ofbiz.widget.model.ModelScreenWidget;
import org.apache.ofbiz.widget.model.ModelSingleForm;
+import org.apache.ofbiz.widget.model.ModelTheme;
import org.apache.ofbiz.widget.model.ModelWidget;
+import org.apache.ofbiz.widget.model.ThemeFactory;
import org.apache.ofbiz.widget.renderer.FormRenderer;
import org.apache.ofbiz.widget.renderer.FormStringRenderer;
import org.apache.ofbiz.widget.renderer.Paginator;
import org.apache.ofbiz.widget.renderer.UtilHelpText;
+import org.apache.ofbiz.widget.renderer.VisualTheme;
import com.ibm.icu.util.Calendar;
@@ -111,6 +114,7 @@ public final class MacroFormRenderer imp
private final HttpServletRequest request;
private final HttpServletResponse response;
private final boolean javaScriptEnabled;
+ private final VisualTheme visualTheme;
private boolean renderPagination = true;
private boolean widgetCommentsEnabled = false;
@@ -118,6 +122,7 @@ public final class MacroFormRenderer imp
macroLibrary = FreeMarkerWorker.getTemplate(macroLibraryPath);
this.request = request;
this.response = response;
+ this.visualTheme = ThemeFactory.resolveVisualTheme(request);
ServletContext ctx = (ServletContext) request.getAttribute("servletContext");
this.rh = (RequestHandler) ctx.getAttribute("_REQUEST_HANDLER_");
this.javaScriptEnabled = UtilHttp.isJavaScriptEnabled(request);
@@ -140,6 +145,7 @@ public final class MacroFormRenderer imp
private void executeMacro(Appendable writer, String macro) throws IOException {
try {
Environment environment = getEnvironment(writer);
+ environment.setVariable("visualTheme", FreeMarkerWorker.autoWrap(visualTheme, environment));
Reader templateReader = new StringReader(macro);
Template template = new Template(new UID().toString(), templateReader, FreeMarkerWorker.getDefaultOfbizConfig());
templateReader.close();
@@ -3067,6 +3073,8 @@ public final class MacroFormRenderer imp
// get the parameterized pagination index and size fields
int paginatorNumber = WidgetWorker.getPaginatorNumber(context);
ModelForm modelForm = modelFormField.getModelForm();
+ VisualTheme visualTheme = UtilHttp.getVisualTheme(request);
+ ModelTheme modelTheme = visualTheme.getModelTheme();
String viewIndexField = modelForm.getMultiPaginateIndexField(context);
String viewSizeField = modelForm.getMultiPaginateSizeField(context);
int viewIndex = Paginator.getViewIndex(modelForm, context);
Modified: ofbiz/ofbiz-framework/trunk/framework/widget/src/main/java/org/apache/ofbiz/widget/renderer/macro/MacroMenuRenderer.java
URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/framework/widget/src/main/java/org/apache/ofbiz/widget/renderer/macro/MacroMenuRenderer.java?rev=1806134&r1=1806133&r2=1806134&view=diff
==============================================================================
--- ofbiz/ofbiz-framework/trunk/framework/widget/src/main/java/org/apache/ofbiz/widget/renderer/macro/MacroMenuRenderer.java (original)
+++ ofbiz/ofbiz-framework/trunk/framework/widget/src/main/java/org/apache/ofbiz/widget/renderer/macro/MacroMenuRenderer.java Fri Aug 25 08:18:35 2017
@@ -45,7 +45,9 @@ import org.apache.ofbiz.widget.model.Mod
import org.apache.ofbiz.widget.model.ModelMenuItem;
import org.apache.ofbiz.widget.model.ModelMenuItem.MenuLink;
import org.apache.ofbiz.widget.model.ModelWidget;
+import org.apache.ofbiz.widget.model.ThemeFactory;
import org.apache.ofbiz.widget.renderer.MenuStringRenderer;
+import org.apache.ofbiz.widget.renderer.VisualTheme;
import freemarker.core.Environment;
import freemarker.template.Template;
@@ -59,11 +61,13 @@ public class MacroMenuRenderer implement
private final Template macroLibrary;
private final HttpServletRequest request;
private final HttpServletResponse response;
+ private final VisualTheme visualTheme;
public MacroMenuRenderer(String macroLibraryPath, HttpServletRequest request, HttpServletResponse response) throws TemplateException, IOException {
this.macroLibrary = FreeMarkerWorker.getTemplate(macroLibraryPath);
this.request = request;
this.response = response;
+ this.visualTheme = ThemeFactory.resolveVisualTheme(request);
}
// Made this a separate method so it can be externalized and reused.
@@ -97,6 +101,7 @@ public class MacroMenuRenderer implement
private void executeMacro(Appendable writer, String macro) throws IOException, TemplateException {
Environment environment = getEnvironment(writer);
+ environment.setVariable("visualTheme", FreeMarkerWorker.autoWrap(visualTheme, environment));
Reader templateReader = new StringReader(macro);
macroCount++;
String templateName = toString().concat("_") + macroCount;
Modified: ofbiz/ofbiz-framework/trunk/framework/widget/src/main/java/org/apache/ofbiz/widget/renderer/macro/MacroScreenRenderer.java
URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/framework/widget/src/main/java/org/apache/ofbiz/widget/renderer/macro/MacroScreenRenderer.java?rev=1806134&r1=1806133&r2=1806134&view=diff
==============================================================================
--- ofbiz/ofbiz-framework/trunk/framework/widget/src/main/java/org/apache/ofbiz/widget/renderer/macro/MacroScreenRenderer.java (original)
+++ ofbiz/ofbiz-framework/trunk/framework/widget/src/main/java/org/apache/ofbiz/widget/renderer/macro/MacroScreenRenderer.java Fri Aug 25 08:18:35 2017
@@ -57,12 +57,14 @@ import org.apache.ofbiz.widget.model.Mod
import org.apache.ofbiz.widget.model.ModelScreenWidget;
import org.apache.ofbiz.widget.model.ModelScreenWidget.Column;
import org.apache.ofbiz.widget.model.ModelScreenWidget.ColumnContainer;
+import org.apache.ofbiz.widget.model.ModelTheme;
import org.apache.ofbiz.widget.model.ModelWidget;
import org.apache.ofbiz.widget.model.ScreenFactory;
import org.apache.ofbiz.widget.renderer.FormStringRenderer;
import org.apache.ofbiz.widget.renderer.MenuStringRenderer;
import org.apache.ofbiz.widget.renderer.Paginator;
import org.apache.ofbiz.widget.renderer.ScreenStringRenderer;
+import org.apache.ofbiz.widget.renderer.VisualTheme;
import org.xml.sax.SAXException;
import freemarker.core.Environment;
@@ -223,7 +225,8 @@ public class MacroScreenRenderer impleme
public void renderLink(Appendable writer, Map<String, Object> context, ModelScreenWidget.ScreenLink link) throws IOException {
HttpServletResponse response = (HttpServletResponse) context.get("response");
HttpServletRequest request = (HttpServletRequest) context.get("request");
-
+ VisualTheme visualTheme = UtilHttp.getVisualTheme(request);
+ ModelTheme modelTheme = visualTheme.getModelTheme();
String targetWindow = link.getTargetWindow(context);
String target = link.getTarget(context);
@@ -584,6 +587,8 @@ public class MacroScreenRenderer impleme
public void renderScreenletBegin(Appendable writer, Map<String, Object> context, boolean collapsed, ModelScreenWidget.Screenlet screenlet) throws IOException {
HttpServletRequest request = (HttpServletRequest) context.get("request");
HttpServletResponse response = (HttpServletResponse) context.get("response");
+ VisualTheme visualTheme = UtilHttp.getVisualTheme(request);
+ ModelTheme modelTheme = visualTheme.getModelTheme();
boolean javaScriptEnabled = UtilHttp.isJavaScriptEnabled(request);
ModelScreenWidget.Menu tabMenu = screenlet.getTabMenu();
if (tabMenu != null) {
@@ -662,6 +667,8 @@ public class MacroScreenRenderer impleme
if (subWidget.equals(screenlet.getNavigationForm())) {
HttpServletRequest request = (HttpServletRequest) context.get("request");
HttpServletResponse response = (HttpServletResponse) context.get("response");
+ VisualTheme visualTheme = UtilHttp.getVisualTheme(request);
+ ModelTheme modelTheme = visualTheme.getModelTheme();
if (request != null && response != null) {
Map<String, Object> globalCtx = UtilGenerics.checkMap(context.get("globalContext"));
globalCtx.put("NO_PAGINATOR", true);
Modified: ofbiz/ofbiz-framework/trunk/framework/widget/src/main/java/org/apache/ofbiz/widget/renderer/macro/MacroScreenViewHandler.java
URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/framework/widget/src/main/java/org/apache/ofbiz/widget/renderer/macro/MacroScreenViewHandler.java?rev=1806134&r1=1806133&r2=1806134&view=diff
==============================================================================
--- ofbiz/ofbiz-framework/trunk/framework/widget/src/main/java/org/apache/ofbiz/widget/renderer/macro/MacroScreenViewHandler.java (original)
+++ ofbiz/ofbiz-framework/trunk/framework/widget/src/main/java/org/apache/ofbiz/widget/renderer/macro/MacroScreenViewHandler.java Fri Aug 25 08:18:35 2017
@@ -32,6 +32,7 @@ import org.apache.ofbiz.base.util.Debug;
import org.apache.ofbiz.base.util.GeneralException;
import org.apache.ofbiz.base.util.UtilCodec;
import org.apache.ofbiz.base.util.UtilGenerics;
+import org.apache.ofbiz.base.util.UtilHttp;
import org.apache.ofbiz.base.util.UtilProperties;
import org.apache.ofbiz.base.util.UtilValidate;
import org.apache.ofbiz.base.util.collections.MapStack;
@@ -42,11 +43,13 @@ import org.apache.ofbiz.service.ModelSer
import org.apache.ofbiz.service.ServiceUtil;
import org.apache.ofbiz.webapp.view.AbstractViewHandler;
import org.apache.ofbiz.webapp.view.ViewHandlerException;
+import org.apache.ofbiz.widget.model.ModelTheme;
import org.apache.ofbiz.widget.renderer.FormStringRenderer;
import org.apache.ofbiz.widget.renderer.MenuStringRenderer;
import org.apache.ofbiz.widget.renderer.ScreenRenderer;
import org.apache.ofbiz.widget.renderer.ScreenStringRenderer;
import org.apache.ofbiz.widget.renderer.TreeStringRenderer;
+import org.apache.ofbiz.widget.renderer.VisualTheme;
import org.xml.sax.SAXException;
import freemarker.template.TemplateException;
@@ -130,6 +133,8 @@ public class MacroScreenViewHandler exte
public void render(String name, String page, String info, String contentType, String encoding, HttpServletRequest request, HttpServletResponse response) throws ViewHandlerException {
try {
Writer writer = response.getWriter();
+ VisualTheme visualTheme = UtilHttp.getVisualTheme(request);
+ ModelTheme modelTheme = visualTheme.getModelTheme();
Delegator delegator = (Delegator) request.getAttribute("delegator");
// compress output if configured to do so
if (UtilValidate.isEmpty(encoding)) {