svn commit: r1643683 - in /ofbiz/trunk/framework/widget/src/org/ofbiz/widget: menu/ModelMenu.java screen/HtmlWidget.java screen/ModelScreenWidget.java

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

svn commit: r1643683 - in /ofbiz/trunk/framework/widget/src/org/ofbiz/widget: menu/ModelMenu.java screen/HtmlWidget.java screen/ModelScreenWidget.java

adrianc
Author: adrianc
Date: Sun Dec  7 15:23:55 2014
New Revision: 1643683

URL: http://svn.apache.org/r1643683
Log:
Screen widgets - some code cleanup plus add some accessor methods.

Modified:
    ofbiz/trunk/framework/widget/src/org/ofbiz/widget/menu/ModelMenu.java
    ofbiz/trunk/framework/widget/src/org/ofbiz/widget/screen/HtmlWidget.java
    ofbiz/trunk/framework/widget/src/org/ofbiz/widget/screen/ModelScreenWidget.java

Modified: ofbiz/trunk/framework/widget/src/org/ofbiz/widget/menu/ModelMenu.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/widget/src/org/ofbiz/widget/menu/ModelMenu.java?rev=1643683&r1=1643682&r2=1643683&view=diff
==============================================================================
--- ofbiz/trunk/framework/widget/src/org/ofbiz/widget/menu/ModelMenu.java (original)
+++ ofbiz/trunk/framework/widget/src/org/ofbiz/widget/menu/ModelMenu.java Sun Dec  7 15:23:55 2014
@@ -288,6 +288,10 @@ public class ModelMenu extends ModelWidg
         }
     }
 
+    public void runActions(Map<String, Object> context) {
+        ModelWidgetAction.runSubActions(this.actions, context);
+    }
+
     public int renderedMenuItemCount(Map<String, Object> context)
     {
         int count = 0;

Modified: ofbiz/trunk/framework/widget/src/org/ofbiz/widget/screen/HtmlWidget.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/widget/src/org/ofbiz/widget/screen/HtmlWidget.java?rev=1643683&r1=1643682&r2=1643683&view=diff
==============================================================================
--- ofbiz/trunk/framework/widget/src/org/ofbiz/widget/screen/HtmlWidget.java (original)
+++ ofbiz/trunk/framework/widget/src/org/ofbiz/widget/screen/HtmlWidget.java Sun Dec  7 15:23:55 2014
@@ -22,6 +22,7 @@ import java.io.IOException;
 import java.net.MalformedURLException;
 import java.util.ArrayList;
 import java.util.Collection;
+import java.util.Collections;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -67,7 +68,6 @@ public class HtmlWidget extends ModelScr
             super(version);
         }
 
-        @SuppressWarnings("unchecked")
         @Override
         public TemplateModel wrap(Object object) throws TemplateModelException {
             // This StringHtmlWrapperForFtl option seems to be the best option
@@ -76,7 +76,7 @@ public class HtmlWidget extends ModelScr
                 return new StringHtmlWrapperForFtl((String) object, this);
             } else if (object instanceof Collection && !(object instanceof Map)) {
                 // An additional wrapper to ensure ${aCollection} is properly encoded for html
-                return new CollectionHtmlWrapperForFtl((Collection) object, this);
+                return new CollectionHtmlWrapperForFtl((Collection<?>) object, this);
             }
             return super.wrap(object);
         }
@@ -94,8 +94,7 @@ public class HtmlWidget extends ModelScr
 
     public static class CollectionHtmlWrapperForFtl extends CollectionModel {
 
-        @SuppressWarnings("unchecked")
-        public CollectionHtmlWrapperForFtl(Collection collection, BeansWrapper wrapper) {
+        public CollectionHtmlWrapperForFtl(Collection<?> collection, BeansWrapper wrapper) {
             super(collection, wrapper);
         }
 
@@ -108,22 +107,33 @@ public class HtmlWidget extends ModelScr
 
     // End Static, begin class section
 
-    protected List<ModelScreenWidget> subWidgets = new ArrayList<ModelScreenWidget>();
+    private final List<ModelScreenWidget> subWidgets;
 
     public HtmlWidget(ModelScreen modelScreen, Element htmlElement) {
         super(modelScreen, htmlElement);
         List<? extends Element> childElementList = UtilXml.childElementList(htmlElement);
-        for (Element childElement : childElementList) {
-            if ("html-template".equals(childElement.getNodeName())) {
-                this.subWidgets.add(new HtmlTemplate(modelScreen, childElement));
-            } else if ("html-template-decorator".equals(childElement.getNodeName())) {
-                this.subWidgets.add(new HtmlTemplateDecorator(modelScreen, childElement));
-            } else {
-                throw new IllegalArgumentException("Tag not supported under the platform-specific -> html tag with name: " + childElement.getNodeName());
+        if (childElementList.isEmpty()) {
+            this.subWidgets = Collections.emptyList();
+        } else {
+            List<ModelScreenWidget> subWidgets = new ArrayList<ModelScreenWidget>(childElementList.size());
+            for (Element childElement : childElementList) {
+                if ("html-template".equals(childElement.getNodeName())) {
+                    subWidgets.add(new HtmlTemplate(modelScreen, childElement));
+                } else if ("html-template-decorator".equals(childElement.getNodeName())) {
+                    subWidgets.add(new HtmlTemplateDecorator(modelScreen, childElement));
+                } else {
+                    throw new IllegalArgumentException("Tag not supported under the platform-specific -> html tag with name: "
+                            + childElement.getNodeName());
+                }
             }
+            this.subWidgets = Collections.unmodifiableList(subWidgets);
         }
     }
 
+    public List<ModelScreenWidget> getSubWidgets() {
+        return subWidgets;
+    }
+
     @Override
     public void renderWidgetString(Appendable writer, Map<String, Object> context, ScreenStringRenderer screenStringRenderer) throws GeneralException, IOException {
         for (ModelScreenWidget subWidget : subWidgets) {
@@ -197,6 +207,10 @@ public class HtmlWidget extends ModelScr
             this.locationExdr = FlexibleStringExpander.getInstance(htmlTemplateElement.getAttribute("location"));
         }
 
+        public String getLocation(Map<String, Object> context) {
+            return locationExdr.expandString(context);
+        }
+
         @Override
         public void renderWidgetString(Appendable writer, Map<String, Object> context, ScreenStringRenderer screenStringRenderer) {
             renderHtmlTemplate(writer, this.locationExdr, context);

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?rev=1643683&r1=1643682&r2=1643683&view=diff
==============================================================================
--- ofbiz/trunk/framework/widget/src/org/ofbiz/widget/screen/ModelScreenWidget.java (original)
+++ ofbiz/trunk/framework/widget/src/org/ofbiz/widget/screen/ModelScreenWidget.java Sun Dec  7 15:23:55 2014
@@ -1119,6 +1119,10 @@ public abstract class ModelScreenWidget
         public void accept(ModelWidgetVisitor visitor) throws Exception {
             visitor.visit(this);
         }
+
+        public Map<String, ModelScreenWidget> getSubWidgets() {
+            return subWidgets;
+        }
     }
 
     public static final class Content extends ModelScreenWidget {