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 {