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 { |
Free forum by Nabble | Edit this page |