Author: adrianc
Date: Sat Nov 1 16:57:07 2014 New Revision: 1635990 URL: http://svn.apache.org/r1635990 Log: Add a screen widget model visitor. This will enable us to externalize a lot of unrelated code that has been included in the models, as well as provide a cleaner API for the renderers. Added: ofbiz/trunk/framework/widget/src/org/ofbiz/widget/ModelWidgetVisitor.java Modified: ofbiz/trunk/framework/widget/src/org/ofbiz/widget/ModelWidget.java ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/ModelForm.java 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/IterateSectionWidget.java ofbiz/trunk/framework/widget/src/org/ofbiz/widget/screen/ModelScreen.java ofbiz/trunk/framework/widget/src/org/ofbiz/widget/screen/ModelScreenWidget.java ofbiz/trunk/framework/widget/src/org/ofbiz/widget/tree/ModelTree.java Modified: ofbiz/trunk/framework/widget/src/org/ofbiz/widget/ModelWidget.java URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/widget/src/org/ofbiz/widget/ModelWidget.java?rev=1635990&r1=1635989&r2=1635990&view=diff ============================================================================== --- ofbiz/trunk/framework/widget/src/org/ofbiz/widget/ModelWidget.java (original) +++ ofbiz/trunk/framework/widget/src/org/ofbiz/widget/ModelWidget.java Sat Nov 1 16:57:07 2014 @@ -53,6 +53,8 @@ public abstract class ModelWidget implem this.startLine = ((Integer) widgetElement.getUserData("startLine")).intValue(); } + public abstract void accept(ModelWidgetVisitor visitor); + /** * Returns the widget's name. * @return Widget's name Added: ofbiz/trunk/framework/widget/src/org/ofbiz/widget/ModelWidgetVisitor.java URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/widget/src/org/ofbiz/widget/ModelWidgetVisitor.java?rev=1635990&view=auto ============================================================================== --- ofbiz/trunk/framework/widget/src/org/ofbiz/widget/ModelWidgetVisitor.java (added) +++ ofbiz/trunk/framework/widget/src/org/ofbiz/widget/ModelWidgetVisitor.java Sat Nov 1 16:57:07 2014 @@ -0,0 +1,87 @@ +/******************************************************************************* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + *******************************************************************************/ +package org.ofbiz.widget; + +import org.ofbiz.widget.form.ModelForm; +import org.ofbiz.widget.menu.ModelMenu; +import org.ofbiz.widget.screen.HtmlWidget; +import org.ofbiz.widget.screen.IterateSectionWidget; +import org.ofbiz.widget.screen.ModelScreen; +import org.ofbiz.widget.screen.ModelScreenWidget; +import org.ofbiz.widget.tree.ModelTree; + +/** + * A <code>ModelWidget</code> visitor. + */ +public interface ModelWidgetVisitor { + + void visit(HtmlWidget htmlWidget); + + void visit(HtmlWidget.HtmlTemplate htmlTemplate); + + void visit(HtmlWidget.HtmlTemplateDecorator htmlTemplateDecorator); + + void visit(HtmlWidget.HtmlTemplateDecoratorSection htmlTemplateDecoratorSection); + + void visit(IterateSectionWidget iterateSectionWidget); + + void visit(ModelForm modelForm); + + void visit(ModelMenu modelMenu); + + void visit(ModelScreen modelScreen); + + void visit(ModelScreenWidget.ColumnContainer columnContainer); + + void visit(ModelScreenWidget.Container container); + + void visit(ModelScreenWidget.Content content); + + void visit(ModelScreenWidget.DecoratorScreen decoratorScreen); + + void visit(ModelScreenWidget.DecoratorSection decoratorSection); + + void visit(ModelScreenWidget.DecoratorSectionInclude decoratorSectionInclude); + + void visit(ModelScreenWidget.Form form); + + void visit(ModelScreenWidget.HorizontalSeparator horizontalSeparator); + + void visit(ModelScreenWidget.Image image); + + void visit(ModelScreenWidget.IncludeScreen includeScreen); + + void visit(ModelScreenWidget.Label label); + + void visit(ModelScreenWidget.Link link); + + void visit(ModelScreenWidget.Menu menu); + + void visit(ModelScreenWidget.PlatformSpecific platformSpecific); + + void visit(ModelScreenWidget.PortalPage portalPage); + + void visit(ModelScreenWidget.Screenlet screenlet); + + void visit(ModelScreenWidget.Section section); + + void visit(ModelScreenWidget.Tree tree); + + void visit(ModelTree modelTree); +} Modified: ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/ModelForm.java URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/ModelForm.java?rev=1635990&r1=1635989&r2=1635990&view=diff ============================================================================== --- ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/ModelForm.java (original) +++ ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/ModelForm.java Sat Nov 1 16:57:07 2014 @@ -57,6 +57,7 @@ import org.ofbiz.service.ModelParam; import org.ofbiz.service.ModelService; import org.ofbiz.webapp.control.ConfigXMLReader; import org.ofbiz.widget.ModelWidget; +import org.ofbiz.widget.ModelWidgetVisitor; import org.ofbiz.widget.WidgetWorker; import org.w3c.dom.Element; @@ -3318,4 +3319,9 @@ public class ModelForm extends ModelWidg return allRequestsUsed; } + + @Override + public void accept(ModelWidgetVisitor visitor) { + visitor.visit(this); + } } 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=1635990&r1=1635989&r2=1635990&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 Sat Nov 1 16:57:07 2014 @@ -30,6 +30,7 @@ import org.ofbiz.base.util.UtilXml; import org.ofbiz.base.util.collections.FlexibleMapAccessor; import org.ofbiz.base.util.string.FlexibleStringExpander; import org.ofbiz.widget.ModelWidget; +import org.ofbiz.widget.ModelWidgetVisitor; import org.w3c.dom.Element; /** @@ -598,4 +599,9 @@ public class ModelMenu extends ModelWidg public void setExtraIndex(String extraIndex) { this.extraIndex = FlexibleStringExpander.getInstance(extraIndex); } + + @Override + public void accept(ModelWidgetVisitor visitor) { + visitor.visit(this); + } } 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=1635990&r1=1635989&r2=1635990&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 Sat Nov 1 16:57:07 2014 @@ -37,6 +37,7 @@ import org.ofbiz.base.util.collections.M import org.ofbiz.base.util.string.FlexibleStringExpander; import org.ofbiz.base.util.template.FreeMarkerWorker; import org.ofbiz.widget.ModelWidget; +import org.ofbiz.widget.ModelWidgetVisitor; import org.ofbiz.widget.html.HtmlWidgetRenderer; import org.w3c.dom.Element; @@ -200,6 +201,11 @@ public class HtmlWidget extends ModelScr public void renderWidgetString(Appendable writer, Map<String, Object> context, ScreenStringRenderer screenStringRenderer) { renderHtmlTemplate(writer, this.locationExdr, context); } + + @Override + public void accept(ModelWidgetVisitor visitor) { + visitor.visit(this); + } } public static class HtmlTemplateDecorator extends ModelScreenWidget { @@ -240,6 +246,11 @@ public class HtmlWidget extends ModelScr renderHtmlTemplate(writer, this.locationExdr, context); contextMs.pop(); } + + @Override + public void accept(ModelWidgetVisitor visitor) { + visitor.visit(this); + } } public static class HtmlTemplateDecoratorSection extends ModelScreenWidget { @@ -259,5 +270,15 @@ public class HtmlWidget extends ModelScr // render sub-widgets renderSubWidgetsString(this.subWidgets, writer, context, screenStringRenderer); } + + @Override + public void accept(ModelWidgetVisitor visitor) { + visitor.visit(this); + } + } + + @Override + public void accept(ModelWidgetVisitor visitor) { + visitor.visit(this); } } Modified: ofbiz/trunk/framework/widget/src/org/ofbiz/widget/screen/IterateSectionWidget.java URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/widget/src/org/ofbiz/widget/screen/IterateSectionWidget.java?rev=1635990&r1=1635989&r2=1635990&view=diff ============================================================================== --- ofbiz/trunk/framework/widget/src/org/ofbiz/widget/screen/IterateSectionWidget.java (original) +++ ofbiz/trunk/framework/widget/src/org/ofbiz/widget/screen/IterateSectionWidget.java Sat Nov 1 16:57:07 2014 @@ -44,6 +44,7 @@ import org.ofbiz.base.util.collections.F import org.ofbiz.base.util.collections.MapStack; import org.ofbiz.base.util.string.FlexibleStringExpander; import org.ofbiz.webapp.control.RequestHandler; +import org.ofbiz.widget.ModelWidgetVisitor; import org.ofbiz.widget.WidgetWorker; import org.w3c.dom.Element; @@ -351,6 +352,11 @@ public class IterateSectionWidget extend writer.append("</table>\n"); } + + @Override + public void accept(ModelWidgetVisitor visitor) { + visitor.visit(this); + } } Modified: ofbiz/trunk/framework/widget/src/org/ofbiz/widget/screen/ModelScreen.java URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/widget/src/org/ofbiz/widget/screen/ModelScreen.java?rev=1635990&r1=1635989&r2=1635990&view=diff ============================================================================== --- ofbiz/trunk/framework/widget/src/org/ofbiz/widget/screen/ModelScreen.java (original) +++ ofbiz/trunk/framework/widget/src/org/ofbiz/widget/screen/ModelScreen.java Sat Nov 1 16:57:07 2014 @@ -38,6 +38,7 @@ import org.ofbiz.service.LocalDispatcher import org.ofbiz.webapp.control.ConfigXMLReader; import org.ofbiz.widget.ModelWidget; import org.ofbiz.widget.ModelWidgetAction; +import org.ofbiz.widget.ModelWidgetVisitor; import org.w3c.dom.Element; /** @@ -75,6 +76,11 @@ public class ModelScreen extends ModelWi this.section = new ModelScreenWidget.Section(this, sectionElement, true); } + @Override + public void accept(ModelWidgetVisitor visitor) { + visitor.visit(this); + } + public String getTransactionTimeout() { return transactionTimeoutExdr.getOriginal(); } 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=1635990&r1=1635989&r2=1635990&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 Sat Nov 1 16:57:07 2014 @@ -46,6 +46,7 @@ import org.ofbiz.entity.condition.Entity import org.ofbiz.entity.util.EntityQuery; import org.ofbiz.widget.ModelWidget; import org.ofbiz.widget.ModelWidgetAction; +import org.ofbiz.widget.ModelWidgetVisitor; import org.ofbiz.widget.PortalPageWorker; import org.ofbiz.widget.WidgetFactory; import org.ofbiz.widget.WidgetWorker; @@ -241,6 +242,11 @@ public abstract class ModelScreenWidget } @Override + public void accept(ModelWidgetVisitor visitor) { + visitor.visit(this); + } + + @Override public void renderWidgetString(Appendable writer, Map<String, Object> context, ScreenStringRenderer screenStringRenderer) throws GeneralException, IOException { // check the condition, if there is one boolean condTrue = true; @@ -331,6 +337,11 @@ public abstract class ModelScreenWidget } @Override + public void accept(ModelWidgetVisitor visitor) { + visitor.visit(this); + } + + @Override public void renderWidgetString(Appendable writer, Map<String, Object> context, ScreenStringRenderer screenStringRenderer) throws GeneralException, IOException { try { screenStringRenderer.renderColumnContainer(writer, context, this); @@ -437,6 +448,11 @@ public abstract class ModelScreenWidget public List<ModelScreenWidget> getSubWidgets() { return subWidgets; } + + @Override + public void accept(ModelWidgetVisitor visitor) { + visitor.visit(this); + } } public static final class Screenlet extends ModelScreenWidget { @@ -594,6 +610,11 @@ public abstract class ModelScreenWidget public Menu getTabMenu() { return this.tabMenu; } + + @Override + public void accept(ModelWidgetVisitor visitor) { + visitor.visit(this); + } } public static final class HorizontalSeparator extends ModelScreenWidget { @@ -619,6 +640,11 @@ public abstract class ModelScreenWidget public String getStyle(Map<String, Object> context) { return this.styleExdr.expandString(context); } + + @Override + public void accept(ModelWidgetVisitor visitor) { + visitor.visit(this); + } } public static final class IncludeScreen extends ModelScreenWidget { @@ -685,6 +711,11 @@ public abstract class ModelScreenWidget // defaults to false, so anything but true is false return "true".equals(shareScopeString); } + + @Override + public void accept(ModelWidgetVisitor visitor) { + visitor.visit(this); + } } public static final class DecoratorScreen extends ModelScreenWidget { @@ -744,6 +775,11 @@ public abstract class ModelScreenWidget public Map<String, DecoratorSection> getSectionMap() { return sectionMap; } + + @Override + public void accept(ModelWidgetVisitor visitor) { + visitor.visit(this); + } } public static final class DecoratorSection extends ModelScreenWidget { @@ -766,6 +802,11 @@ public abstract class ModelScreenWidget public List<ModelScreenWidget> getSubWidgets() { return subWidgets; } + + @Override + public void accept(ModelWidgetVisitor visitor) { + visitor.visit(this); + } } public static final class DecoratorSectionInclude extends ModelScreenWidget { @@ -796,6 +837,11 @@ public abstract class ModelScreenWidget } } } + + @Override + public void accept(ModelWidgetVisitor visitor) { + visitor.visit(this); + } } public static final class Label extends ModelScreenWidget { @@ -846,6 +892,11 @@ public abstract class ModelScreenWidget public String getStyle(Map<String, Object> context) { return this.styleExdr.expandString(context); } + + @Override + public void accept(ModelWidgetVisitor visitor) { + visitor.visit(this); + } } public static final class Form extends ModelScreenWidget { @@ -921,6 +972,11 @@ public abstract class ModelScreenWidget // defaults to false, so anything but true is false return "true".equals(shareScopeString); } + + @Override + public void accept(ModelWidgetVisitor visitor) { + visitor.visit(this); + } } public static final class Tree extends ModelScreenWidget { @@ -998,6 +1054,11 @@ public abstract class ModelScreenWidget // defaults to false, so anything but true is false return "true".equals(shareScopeString); } + + @Override + public void accept(ModelWidgetVisitor visitor) { + visitor.visit(this); + } } public static final class PlatformSpecific extends ModelScreenWidget { @@ -1037,6 +1098,11 @@ public abstract class ModelScreenWidget subWidget.renderWidgetString(writer, context, screenStringRenderer); } } + + @Override + public void accept(ModelWidgetVisitor visitor) { + visitor.visit(this); + } } public static final class Content extends ModelScreenWidget { @@ -1175,6 +1241,11 @@ public abstract class ModelScreenWidget public String getBorder() { return this.border; } + + @Override + public void accept(ModelWidgetVisitor visitor) { + visitor.visit(this); + } } public static final class SubContent extends ModelScreenWidget { @@ -1236,6 +1307,12 @@ public abstract class ModelScreenWidget public boolean xmlEscape() { return this.xmlEscape; } + + @Override + public void accept(ModelWidgetVisitor visitor) { + // TODO Auto-generated method stub + + } } public static final class Menu extends ModelScreenWidget { @@ -1282,6 +1359,11 @@ public abstract class ModelScreenWidget public String getLocation(Map<String, Object> context) { return this.locationExdr.expandString(context); } + + @Override + public void accept(ModelWidgetVisitor visitor) { + visitor.visit(this); + } } public static final class Link extends ModelScreenWidget { @@ -1455,6 +1537,11 @@ public abstract class ModelScreenWidget return fullParameterMap; } + + @Override + public void accept(ModelWidgetVisitor visitor) { + visitor.visit(this); + } } public static final class Image extends ModelScreenWidget { @@ -1531,6 +1618,11 @@ public abstract class ModelScreenWidget public String getUrlMode() { return this.urlMode; } + + @Override + public void accept(ModelWidgetVisitor visitor) { + visitor.visit(this); + } } public static final class PortalPage extends ModelScreenWidget { @@ -1696,6 +1788,11 @@ public abstract class ModelScreenWidget public String getUsePrivate() { return Boolean.toString(this.usePrivate); } + + @Override + public void accept(ModelWidgetVisitor visitor) { + visitor.visit(this); + } } } Modified: ofbiz/trunk/framework/widget/src/org/ofbiz/widget/tree/ModelTree.java URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/widget/src/org/ofbiz/widget/tree/ModelTree.java?rev=1635990&r1=1635989&r2=1635990&view=diff ============================================================================== --- ofbiz/trunk/framework/widget/src/org/ofbiz/widget/tree/ModelTree.java (original) +++ ofbiz/trunk/framework/widget/src/org/ofbiz/widget/tree/ModelTree.java Sat Nov 1 16:57:07 2014 @@ -50,6 +50,7 @@ import org.ofbiz.entity.model.ModelField import org.ofbiz.entity.util.EntityListIterator; import org.ofbiz.service.LocalDispatcher; import org.ofbiz.widget.ModelWidget; +import org.ofbiz.widget.ModelWidgetVisitor; import org.ofbiz.widget.WidgetWorker; import org.ofbiz.widget.screen.ModelScreen; import org.ofbiz.widget.screen.ScreenFactory; @@ -1106,6 +1107,9 @@ public class ModelTree extends ModelWidg } } } -} - + @Override + public void accept(ModelWidgetVisitor visitor) { + visitor.visit(this); + } +} |
Free forum by Nabble | Edit this page |