Modified: ofbiz/trunk/framework/widget/src/org/ofbiz/widget/menu/ModelMenuItem.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/widget/src/org/ofbiz/widget/menu/ModelMenuItem.java?rev=1652638&r1=1652637&r2=1652638&view=diff ============================================================================== --- ofbiz/trunk/framework/widget/src/org/ofbiz/widget/menu/ModelMenuItem.java (original) +++ ofbiz/trunk/framework/widget/src/org/ofbiz/widget/menu/ModelMenuItem.java Sat Jan 17 16:47:23 2015 @@ -26,25 +26,22 @@ import java.util.List; import java.util.Locale; import java.util.Map; -import javax.xml.parsers.ParserConfigurationException; - import org.ofbiz.base.util.Debug; -import org.ofbiz.base.util.UtilCodec; -import org.ofbiz.base.util.UtilProperties; import org.ofbiz.base.util.UtilValidate; import org.ofbiz.base.util.UtilXml; -import org.ofbiz.base.util.collections.FlexibleMapAccessor; import org.ofbiz.base.util.string.FlexibleStringExpander; import org.ofbiz.entity.GenericValue; +import org.ofbiz.widget.AbstractModelAction; +import org.ofbiz.widget.CommonWidgetModels.AutoEntityParameters; +import org.ofbiz.widget.CommonWidgetModels.AutoServiceParameters; +import org.ofbiz.widget.CommonWidgetModels.Image; +import org.ofbiz.widget.CommonWidgetModels.Link; +import org.ofbiz.widget.CommonWidgetModels.Parameter; +import org.ofbiz.widget.ModelAction; import org.ofbiz.widget.ModelWidget; -import org.ofbiz.widget.ModelWidgetAction; import org.ofbiz.widget.ModelWidgetVisitor; import org.ofbiz.widget.PortalPageWorker; -import org.ofbiz.widget.WidgetWorker.AutoEntityParameters; -import org.ofbiz.widget.WidgetWorker.AutoServiceParameters; -import org.ofbiz.widget.WidgetWorker.Parameter; import org.w3c.dom.Element; -import org.xml.sax.SAXException; /** * Models the <menu-item> element. @@ -70,7 +67,7 @@ public class ModelMenuItem extends Model public static final String module = ModelMenuItem.class.getName(); - private final List<ModelWidgetAction> actions; + private final List<ModelAction> actions; private final String align; private final String alignStyle; private final FlexibleStringExpander associatedContentId; @@ -80,7 +77,7 @@ public class ModelMenuItem extends Model private final String disableIfEmpty; private final String entityName; private final Boolean hideIfSelected; - private final Link link; + private final MenuLink link; private final List<ModelMenuItem> menuItemList; private final ModelMenu modelMenu; private final String overrideName; @@ -88,7 +85,7 @@ public class ModelMenuItem extends Model private final FlexibleStringExpander parentPortalPageId; private final Integer position; private final String selectedStyle; - private final ModelMenu subMenu; + private final String subMenu; private final FlexibleStringExpander title; private final String titleStyle; private final FlexibleStringExpander tooltip; @@ -139,31 +136,10 @@ public class ModelMenuItem extends Model this.position = position; this.associatedContentId = FlexibleStringExpander.getInstance(menuItemElement.getAttribute("associated-content-id")); this.cellWidth = menuItemElement.getAttribute("cell-width"); - Element subMenuElement = UtilXml.firstChildElement(menuItemElement, "sub-menu"); - if (subMenuElement != null) { - String subMenuLocation = subMenuElement.getAttribute("location"); - String subMenuName = subMenuElement.getAttribute("name"); - try { - this.subMenu = MenuFactory.getMenuFromLocation(subMenuLocation, subMenuName); - } catch (IOException e) { - String errMsg = "Error getting subMenu in menu named [" + this.modelMenu.getName() + "]: " + e.toString(); - Debug.logError(e, errMsg, module); - throw new RuntimeException(errMsg); - } catch (SAXException e2) { - String errMsg = "Error getting subMenu in menu named [" + this.modelMenu.getName() + "]: " + e2.toString(); - Debug.logError(e2, errMsg, module); - throw new RuntimeException(errMsg); - } catch (ParserConfigurationException e3) { - String errMsg = "Error getting subMenu in menu named [" + this.modelMenu.getName() + "]: " + e3.toString(); - Debug.logError(e3, errMsg, module); - throw new RuntimeException(errMsg); - } - } else { - this.subMenu = null; - } + this.subMenu = menuItemElement.getAttribute("sub-menu"); Element linkElement = UtilXml.firstChildElement(menuItemElement, "link"); if (linkElement != null) { - this.link = new Link(linkElement, this); + this.link = new MenuLink(linkElement, this); } else { this.link = null; } @@ -184,6 +160,7 @@ public class ModelMenuItem extends Model // read condition under the "condition" element Element conditionElement = UtilXml.firstChildElement(menuItemElement, "condition"); if (conditionElement != null) { + conditionElement = UtilXml.firstChildElement(conditionElement); this.condition = new ModelMenuCondition(this, conditionElement); } else { this.condition = null; @@ -191,7 +168,7 @@ public class ModelMenuItem extends Model // read all actions under the "actions" element Element actionsElement = UtilXml.firstChildElement(conditionElement, "actions"); if (actionsElement != null) { - this.actions = ModelWidgetAction.readSubActions(this, actionsElement); + this.actions = AbstractModelAction.readSubActions(this, actionsElement); } else { this.actions = Collections.emptyList(); } @@ -217,13 +194,13 @@ public class ModelMenuItem extends Model this.parentPortalPageId = FlexibleStringExpander.getInstance(portalPage.getString("parentPortalPageId")); this.position = null; this.selectedStyle = ""; - this.subMenu = null; + this.subMenu = ""; this.title = FlexibleStringExpander.getInstance((String) portalPage.get("portalPageName", locale)); this.titleStyle = ""; this.tooltip = FlexibleStringExpander.getInstance(""); this.tooltipStyle = ""; this.widgetStyle = ""; - this.link = new Link(portalPage, parentMenuItem, locale); + this.link = new MenuLink(portalPage, parentMenuItem, locale); this.modelMenu = parentMenuItem.modelMenu; } @@ -313,7 +290,7 @@ public class ModelMenuItem extends Model } } - public List<ModelWidgetAction> getActions() { + public List<ModelAction> getActions() { return actions; } @@ -396,7 +373,7 @@ public class ModelMenuItem extends Model } } - public Link getLink() { + public MenuLink getLink() { return this.link; } @@ -450,7 +427,7 @@ public class ModelMenuItem extends Model } } - public ModelMenu getSubMenu() { + public String getSubMenu() { return subMenu; } @@ -515,7 +492,7 @@ public class ModelMenuItem extends Model public void renderMenuItemString(Appendable writer, Map<String, Object> context, MenuStringRenderer menuStringRenderer) throws IOException { if (shouldBeRendered(context)) { - ModelWidgetAction.runSubActions(actions, context); + AbstractModelAction.runSubActions(actions, context); String parentPortalPageId = getParentPortalPageId(context); if (UtilValidate.isNotEmpty(parentPortalPageId)) { List<GenericValue> portalPages = PortalPageWorker.getPortalPages(parentPortalPageId, context); @@ -536,286 +513,149 @@ public class ModelMenuItem extends Model public boolean shouldBeRendered(Map<String, Object> context) { if (this.condition != null) { - return this.condition.eval(context); + return this.condition.getCondition().eval(context); } return true; } - public static class Image { + public static class MenuLink { + private final ModelMenuItem linkMenuItem; + private final Link link; - private final FlexibleStringExpander borderExdr; - private final FlexibleStringExpander heightExdr; - private final FlexibleStringExpander idExdr; - private final FlexibleStringExpander srcExdr; - private final FlexibleStringExpander styleExdr; - private final String urlMode; - private final FlexibleStringExpander widthExdr; - - public Image(Element imageElement) { - this.borderExdr = FlexibleStringExpander.getInstance(UtilXml.checkEmpty(imageElement.getAttribute("border"), "0")); - this.heightExdr = FlexibleStringExpander.getInstance(imageElement.getAttribute("height")); - this.idExdr = FlexibleStringExpander.getInstance(imageElement.getAttribute("id")); - this.srcExdr = FlexibleStringExpander.getInstance(imageElement.getAttribute("src")); - this.styleExdr = FlexibleStringExpander.getInstance(imageElement.getAttribute("style")); - this.urlMode = UtilXml.checkEmpty(imageElement.getAttribute("url-mode"), "content"); - this.widthExdr = FlexibleStringExpander.getInstance(imageElement.getAttribute("width")); + public AutoEntityParameters getAutoEntityParameters() { + return link.getAutoEntityParameters(); } - public String getBorder(Map<String, Object> context) { - return this.borderExdr.expandString(context); + public AutoServiceParameters getAutoServiceParameters() { + return link.getAutoServiceParameters(); } - public String getHeight(Map<String, Object> context) { - return this.heightExdr.expandString(context); + public boolean getEncode() { + return link.getEncode(); } - public String getId(Map<String, Object> context) { - return this.idExdr.expandString(context); + public boolean getFullPath() { + return link.getFullPath(); } - public String getSrc(Map<String, Object> context) { - return this.srcExdr.expandString(context); + public String getHeight() { + return link.getHeight(); } - public String getStyle(Map<String, Object> context) { - return this.styleExdr.expandString(context); + public String getId(Map<String, Object> context) { + return link.getId(context); } - public String getUrlMode() { - return this.urlMode; + public FlexibleStringExpander getIdExdr() { + return link.getIdExdr(); } - public String getWidth(Map<String, Object> context) { - return this.widthExdr.expandString(context); + public Image getImage() { + return link.getImage(); } - public void renderImageString(Appendable writer, Map<String, Object> context, MenuStringRenderer menuStringRenderer) - throws IOException { - menuStringRenderer.renderImage(writer, context, this); + public String getLinkType() { + return link.getLinkType(); } - } - public static class Link { - private final AutoEntityParameters autoEntityParameters; - private final AutoServiceParameters autoServiceParameters; - private final FlexibleStringExpander confirmationMsgExdr; - private final boolean encode; - private final boolean fullPath; - private final FlexibleStringExpander idExdr; - private final Image image; - private final ModelMenuItem linkMenuItem; - private final String linkType; - private final FlexibleStringExpander nameExdr; - private final List<Parameter> parameterList; - private final FlexibleMapAccessor<Map<String, String>> parametersMapAcsr; - private final FlexibleStringExpander prefixExdr; - private final boolean requestConfirmation; - private final boolean secure; - private final FlexibleStringExpander styleExdr; - private final FlexibleStringExpander targetExdr; - private final FlexibleStringExpander targetWindowExdr; - private final FlexibleStringExpander textExdr; - private final String urlMode; - - public Link(Element linkElement, ModelMenuItem parentMenuItem) { - Element autoEntityParamsElement = UtilXml.firstChildElement(linkElement, "auto-parameters-entity"); - if (autoEntityParamsElement != null) { - this.autoEntityParameters = new AutoEntityParameters(autoEntityParamsElement); - } else { - this.autoEntityParameters = null; - } - Element autoServiceParamsElement = UtilXml.firstChildElement(linkElement, "auto-parameters-service"); - if (autoServiceParamsElement != null) { - this.autoServiceParameters = new AutoServiceParameters(autoServiceParamsElement); - } else { - this.autoServiceParameters = null; - } - this.confirmationMsgExdr = FlexibleStringExpander.getInstance(linkElement.getAttribute("confirmation-message")); - this.encode = "true".equals(linkElement.getAttribute("encode")); - this.fullPath = "true".equals(linkElement.getAttribute("full-path")); - this.idExdr = FlexibleStringExpander.getInstance(linkElement.getAttribute("id")); - Element imageElement = UtilXml.firstChildElement(linkElement, "image"); - if (imageElement != null) { - this.image = new Image(imageElement); - } else { - this.image = null; - } - this.linkMenuItem = parentMenuItem; - this.linkType = linkElement.getAttribute("link-type"); - this.nameExdr = FlexibleStringExpander.getInstance(linkElement.getAttribute("name")); - List<? extends Element> parameterElementList = UtilXml.childElementList(linkElement, "parameter"); - if (!parameterElementList.isEmpty()) { - List<Parameter> parameterList = new ArrayList<Parameter>(parameterElementList.size()); - for (Element parameterElement : parameterElementList) { - parameterList.add(new Parameter(parameterElement)); - } - this.parameterList = Collections.unmodifiableList(parameterList); - } else { - this.parameterList = Collections.emptyList(); - } - this.parametersMapAcsr = FlexibleMapAccessor.getInstance(linkElement.getAttribute("parameters-map")); - this.prefixExdr = FlexibleStringExpander.getInstance(linkElement.getAttribute("prefix")); - this.requestConfirmation = "true".equals(linkElement.getAttribute("request-confirmation")); - this.secure = "true".equals(linkElement.getAttribute("secure")); - this.styleExdr = FlexibleStringExpander.getInstance(linkElement.getAttribute("style")); - this.targetExdr = FlexibleStringExpander.getInstance(linkElement.getAttribute("target")); - this.targetWindowExdr = FlexibleStringExpander.getInstance(linkElement.getAttribute("target-window")); - this.textExdr = FlexibleStringExpander.getInstance(linkElement.getAttribute("text")); - this.urlMode = UtilXml.checkEmpty(linkElement.getAttribute("url-mode"), "intra-app"); - } - - public Link(GenericValue portalPage, ModelMenuItem parentMenuItem, Locale locale) { - this.autoEntityParameters = null; - this.autoServiceParameters = null; - this.confirmationMsgExdr = FlexibleStringExpander.getInstance(""); - this.encode = false; - this.fullPath = false; - this.idExdr = FlexibleStringExpander.getInstance(""); - this.image = null; - this.linkMenuItem = parentMenuItem; - this.linkType = ""; - this.nameExdr = FlexibleStringExpander.getInstance(""); - ArrayList<Parameter> parameterList = new ArrayList<Parameter>(); - if (parentMenuItem.link != null) { - parameterList.addAll(parentMenuItem.link.parameterList); - } - parameterList.add(new Parameter("portalPageId", portalPage.getString("portalPageId"), false)); - parameterList.add(new Parameter("parentPortalPageId", portalPage.getString("parentPortalPageId"), false)); - parameterList.trimToSize(); - this.parameterList = Collections.unmodifiableList(parameterList); - this.parametersMapAcsr = FlexibleMapAccessor.getInstance(""); - this.prefixExdr = FlexibleStringExpander.getInstance(""); - this.requestConfirmation = false; - this.secure = false; - this.styleExdr = FlexibleStringExpander.getInstance(""); - if (parentMenuItem.link != null) { - this.targetExdr = FlexibleStringExpander.getInstance(""); - } else { - this.targetExdr = FlexibleStringExpander.getInstance("showPortalPage"); - } - this.targetWindowExdr = FlexibleStringExpander.getInstance(""); - this.textExdr = FlexibleStringExpander.getInstance((String) portalPage.get("portalPageName", locale)); - this.urlMode = "intra-app"; + public String getName() { + return link.getName(); } - public String getConfirmation(Map<String, Object> context) { - String message = getConfirmationMsg(context); - if (UtilValidate.isNotEmpty(message)) { - return message; - } else if (getRequestConfirmation()) { - FlexibleStringExpander defaultMessage = FlexibleStringExpander.getInstance(UtilProperties.getPropertyValue( - "general", "default.confirmation.message", "${uiLabelMap.CommonConfirm}")); - return defaultMessage.expandString(context); - } - return ""; + public String getName(Map<String, Object> context) { + return link.getName(context); } - public String getConfirmationMsg(Map<String, Object> context) { - return this.confirmationMsgExdr.expandString(context); + public FlexibleStringExpander getNameExdr() { + return link.getNameExdr(); } - public boolean getEncode() { - return this.encode; + public List<Parameter> getParameterList() { + return link.getParameterList(); } - public boolean getFullPath() { - return this.fullPath; + public Map<String, String> getParameterMap(Map<String, Object> context) { + return link.getParameterMap(context); } - public String getId(Map<String, Object> context) { - return this.idExdr.expandString(context); + public String getPrefix(Map<String, Object> context) { + return link.getPrefix(context); } - public Image getImage() { - return this.image; + public FlexibleStringExpander getPrefixExdr() { + return link.getPrefixExdr(); } - public ModelMenuItem getLinkMenuItem() { - return linkMenuItem; + public boolean getSecure() { + return link.getSecure(); } - public String getLinkType() { - return this.linkType; + public String getStyle(Map<String, Object> context) { + return link.getStyle(context); } - public String getName(Map<String, Object> context) { - return this.nameExdr.expandString(context); + public FlexibleStringExpander getStyleExdr() { + return link.getStyleExdr(); } - public List<Parameter> getParameterList() { - return this.parameterList; + public String getTarget(Map<String, Object> context) { + return link.getTarget(context); } - public Map<String, String> getParameterMap(Map<String, Object> context) { - Map<String, String> fullParameterMap = new HashMap<String, String>(); - if (this.parametersMapAcsr != null) { - Map<String, String> addlParamMap = this.parametersMapAcsr.get(context); - if (addlParamMap != null) { - fullParameterMap.putAll(addlParamMap); - } - } - for (Parameter parameter : this.parameterList) { - fullParameterMap.put(parameter.getName(), parameter.getValue(context)); - } - if (autoServiceParameters != null) { - fullParameterMap.putAll(autoServiceParameters.getParametersMap(context, null)); - } - if (autoEntityParameters != null) { - fullParameterMap.putAll(autoEntityParameters.getParametersMap(context, linkMenuItem.getModelMenu() - .getDefaultEntityName())); - } - return fullParameterMap; + public FlexibleStringExpander getTargetExdr() { + return link.getTargetExdr(); } - public String getPrefix(Map<String, Object> context) { - return this.prefixExdr.expandString(context); + public String getTargetWindow(Map<String, Object> context) { + return link.getTargetWindow(context); } - public boolean getRequestConfirmation() { - return this.requestConfirmation; + public FlexibleStringExpander getTargetWindowExdr() { + return link.getTargetWindowExdr(); } - public boolean getSecure() { - return this.secure; + public String getText(Map<String, Object> context) { + return link.getText(context); } - public String getStyle(Map<String, Object> context) { - String style = this.styleExdr.expandString(context); - if (UtilValidate.isEmpty(style)) { - style = this.linkMenuItem.getWidgetStyle(); - } - return style; + public FlexibleStringExpander getTextExdr() { + return link.getTextExdr(); } - public String getTarget(Map<String, Object> context) { - UtilCodec.SimpleEncoder simpleEncoder = (UtilCodec.SimpleEncoder) context.get("simpleEncoder"); - if (simpleEncoder != null) { - return this.targetExdr.expandString(UtilCodec.HtmlEncodingMapWrapper.getHtmlEncodingMapWrapper(context, - simpleEncoder)); - } else { - return this.targetExdr.expandString(context); - } + public String getUrlMode() { + return link.getUrlMode(); } - public String getTargetWindow(Map<String, Object> context) { - return this.targetWindowExdr.expandString(context); + public String getWidth() { + return link.getWidth(); } - public String getText(Map<String, Object> context) { - String txt = this.textExdr.expandString(context); - if (UtilValidate.isEmpty(txt)) { - txt = linkMenuItem.getTitle(context); + public MenuLink(Element linkElement, ModelMenuItem parentMenuItem) { + this.linkMenuItem = parentMenuItem; + this.link = new Link(linkElement); + } + + public MenuLink(GenericValue portalPage, ModelMenuItem parentMenuItem, Locale locale) { + this.linkMenuItem = parentMenuItem; + ArrayList<Parameter> parameterList = new ArrayList<Parameter>(); + if (parentMenuItem.link != null) { + parameterList.addAll(parentMenuItem.link.getParameterList()); } - // FIXME: Encoding should be done by the renderer, not by the model. - UtilCodec.SimpleEncoder simpleEncoder = (UtilCodec.SimpleEncoder) context.get("simpleEncoder"); - if (simpleEncoder != null) { - txt = simpleEncoder.encode(txt); + parameterList.add(new Parameter("portalPageId", portalPage.getString("portalPageId"), false)); + parameterList.add(new Parameter("parentPortalPageId", portalPage.getString("parentPortalPageId"), false)); + String target = "showPortalPage"; + if (parentMenuItem.link != null) { + target= ""; } - return txt; + this.link = new Link(portalPage, parameterList, target, locale); } - public String getUrlMode() { - return this.urlMode; + public ModelMenuItem getLinkMenuItem() { + return linkMenuItem; + } + + public Link getLink() { + return link; } public void renderLinkString(Appendable writer, Map<String, Object> context, MenuStringRenderer menuStringRenderer) 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=1652638&r1=1652637&r2=1652638&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 Jan 17 16:47:23 2015 @@ -221,6 +221,10 @@ public class HtmlWidget extends ModelScr public void accept(ModelWidgetVisitor visitor) throws Exception { visitor.visit(this); } + + public FlexibleStringExpander getLocationExdr() { + return locationExdr; + } } public static class HtmlTemplateDecorator extends ModelScreenWidget { @@ -266,16 +270,21 @@ public class HtmlWidget extends ModelScr public void accept(ModelWidgetVisitor visitor) throws Exception { visitor.visit(this); } + + public FlexibleStringExpander getLocationExdr() { + return locationExdr; + } + + public Map<String, ModelScreenWidget> getSectionMap() { + return sectionMap; + } } public static class HtmlTemplateDecoratorSection extends ModelScreenWidget { - protected String name; protected List<ModelScreenWidget> subWidgets; public HtmlTemplateDecoratorSection(ModelScreen modelScreen, Element htmlTemplateDecoratorSectionElement) { super(modelScreen, htmlTemplateDecoratorSectionElement); - this.name = htmlTemplateDecoratorSectionElement.getAttribute("name"); - // read sub-widgets List<? extends Element> subElementList = UtilXml.childElementList(htmlTemplateDecoratorSectionElement); this.subWidgets = ModelScreenWidget.readSubWidgets(getModelScreen(), subElementList); } @@ -290,6 +299,10 @@ public class HtmlWidget extends ModelScr public void accept(ModelWidgetVisitor visitor) throws Exception { visitor.visit(this); } + + public List<ModelScreenWidget> getSubWidgets() { + return subWidgets; + } } @Override 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=1652638&r1=1652637&r2=1652638&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 Jan 17 16:47:23 2015 @@ -361,6 +361,27 @@ public class IterateSectionWidget extend public void accept(ModelWidgetVisitor visitor) throws Exception { visitor.visit(this); } + + public FlexibleMapAccessor<Object> getListNameExdr() { + return listNameExdr; + } + + public FlexibleStringExpander getEntryNameExdr() { + return entryNameExdr; + } + + public FlexibleStringExpander getKeyNameExdr() { + return keyNameExdr; + } + + public FlexibleStringExpander getPaginateTarget() { + return paginateTarget; + } + + public FlexibleStringExpander getPaginate() { + return paginate; + } + } Modified: ofbiz/trunk/framework/widget/src/org/ofbiz/widget/screen/MacroScreenRenderer.java URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/widget/src/org/ofbiz/widget/screen/MacroScreenRenderer.java?rev=1652638&r1=1652637&r2=1652638&view=diff ============================================================================== --- ofbiz/trunk/framework/widget/src/org/ofbiz/widget/screen/MacroScreenRenderer.java (original) +++ ofbiz/trunk/framework/widget/src/org/ofbiz/widget/screen/MacroScreenRenderer.java Sat Jan 17 16:47:23 2015 @@ -217,7 +217,7 @@ public class MacroScreenRenderer impleme executeMacro(writer, "renderHorizontalSeparator", parameters); } - public void renderLink(Appendable writer, Map<String, Object> context, ModelScreenWidget.Link link) throws IOException { + 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"); @@ -271,7 +271,7 @@ public class MacroScreenRenderer impleme } } String imgStr = ""; - ModelScreenWidget.Image img = link.getImage(); + ModelScreenWidget.ScreenImage img = link.getImage(); if (img != null) { StringWriter sw = new StringWriter(); renderImage(sw, context, img); @@ -311,7 +311,7 @@ public class MacroScreenRenderer impleme executeMacro(writer, sr.toString()); } - public void renderImage(Appendable writer, Map<String, Object> context, ModelScreenWidget.Image image) throws IOException { + public void renderImage(Appendable writer, Map<String, Object> context, ModelScreenWidget.ScreenImage image) throws IOException { if (image == null) return ; String src = image.getSrc(context); Modified: ofbiz/trunk/framework/widget/src/org/ofbiz/widget/screen/ModelScreenCondition.java URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/widget/src/org/ofbiz/widget/screen/ModelScreenCondition.java?rev=1652638&r1=1652637&r2=1652638&view=diff ============================================================================== --- ofbiz/trunk/framework/widget/src/org/ofbiz/widget/screen/ModelScreenCondition.java (original) +++ ofbiz/trunk/framework/widget/src/org/ofbiz/widget/screen/ModelScreenCondition.java Sat Jan 17 16:47:23 2015 @@ -22,8 +22,12 @@ import java.util.Map; import org.ofbiz.base.util.UtilGenerics; import org.ofbiz.base.util.string.FlexibleStringExpander; +import org.ofbiz.widget.AbstractModelCondition; +import org.ofbiz.widget.AbstractModelCondition.DefaultConditionFactory; +import org.ofbiz.widget.ModelCondition; +import org.ofbiz.widget.ModelConditionFactory; +import org.ofbiz.widget.ModelConditionVisitor; import org.ofbiz.widget.ModelWidget; -import org.ofbiz.widget.ModelWidgetCondition; import org.w3c.dom.Element; /** @@ -32,7 +36,7 @@ import org.w3c.dom.Element; * @see <code>widget-screen.xsd</code> */ @SuppressWarnings("serial") -public class ModelScreenCondition extends ModelWidgetCondition { +public final class ModelScreenCondition { /* * ----------------------------------------------------------------------- * @@ -49,38 +53,43 @@ public class ModelScreenCondition extend */ public static final String module = ModelScreenCondition.class.getName(); - public static final ConditionFactory SCREEN_CONDITION_FACTORY = new ScreenConditionFactory(); + public static final ModelConditionFactory SCREEN_CONDITION_FACTORY = new ScreenConditionFactory(); - public ModelScreenCondition(ModelScreen modelScreen, Element conditionElement) { - super(SCREEN_CONDITION_FACTORY, modelScreen, conditionElement); - } - - public static class IfEmptySection extends ModelWidgetCondition implements Condition { + public static class IfEmptySection extends AbstractModelCondition { private final FlexibleStringExpander sectionExdr; - private IfEmptySection(ConditionFactory factory, ModelWidget modelWidget, Element condElement) { + private IfEmptySection(ModelConditionFactory factory, ModelWidget modelWidget, Element condElement) { super (factory, modelWidget, condElement); this.sectionExdr = FlexibleStringExpander.getInstance(condElement.getAttribute("section-name")); } @Override + public void accept(ModelConditionVisitor visitor) throws Exception { + visitor.visit(this); + } + + @Override public boolean eval(Map<String, Object> context) { Map<String, Object> sectionsMap = UtilGenerics.toMap(context.get("sections")); return !sectionsMap.containsKey(this.sectionExdr.expandString(context)); } + + public FlexibleStringExpander getSectionExdr() { + return sectionExdr; + } } - public static class ScreenConditionFactory extends DefaultConditionFactory { + private static class ScreenConditionFactory extends DefaultConditionFactory { @Override - public Condition newInstance(ModelWidget modelWidget, Element conditionElement) { + public ModelCondition newInstance(ModelWidget modelWidget, Element conditionElement) { if (conditionElement == null) { return DefaultConditionFactory.TRUE; } if ("if-empty-section".equals(conditionElement.getNodeName())) { return new IfEmptySection(this, modelWidget, conditionElement); } else { - return super.newInstance(modelWidget,conditionElement); + return super.newInstance(this, modelWidget,conditionElement); } } } 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=1652638&r1=1652637&r2=1652638&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 Jan 17 16:47:23 2015 @@ -42,12 +42,18 @@ import org.ofbiz.entity.Delegator; import org.ofbiz.entity.GenericEntityException; import org.ofbiz.entity.GenericValue; import org.ofbiz.entity.util.EntityQuery; +import org.ofbiz.widget.AbstractModelAction; +import org.ofbiz.widget.CommonWidgetModels.*; +import org.ofbiz.widget.CommonWidgetModels.AutoEntityParameters; +import org.ofbiz.widget.CommonWidgetModels.AutoServiceParameters; +import org.ofbiz.widget.CommonWidgetModels.Image; +import org.ofbiz.widget.CommonWidgetModels.Parameter; +import org.ofbiz.widget.ModelAction; +import org.ofbiz.widget.ModelCondition; 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; import org.ofbiz.widget.form.FormFactory; import org.ofbiz.widget.form.FormRenderer; import org.ofbiz.widget.form.FormStringRenderer; @@ -205,8 +211,8 @@ public abstract class ModelScreenWidget public static final class Section extends ModelScreenWidget { public static final String TAG_NAME = "section"; - private final ModelScreenCondition condition; - private final List<ModelWidgetAction> actions; + private final ModelCondition condition; + private final List<ModelAction> actions; private final List<ModelScreenWidget> subWidgets; private final List<ModelScreenWidget> failWidgets; private final boolean isMainSection; @@ -221,7 +227,8 @@ public abstract class ModelScreenWidget // read condition under the "condition" element Element conditionElement = UtilXml.firstChildElement(sectionElement, "condition"); if (conditionElement != null) { - this.condition = new ModelScreenCondition(modelScreen, conditionElement); + conditionElement = UtilXml.firstChildElement(conditionElement); + this.condition = ModelScreenCondition.SCREEN_CONDITION_FACTORY.newInstance(modelScreen, conditionElement); } else { this.condition = null; } @@ -229,7 +236,7 @@ public abstract class ModelScreenWidget // read all actions under the "actions" element Element actionsElement = UtilXml.firstChildElement(sectionElement, "actions"); if (actionsElement != null) { - this.actions = ModelWidgetAction.readSubActions(modelScreen, actionsElement); + this.actions = AbstractModelAction.readSubActions(modelScreen, actionsElement); } else { this.actions = Collections.emptyList(); } @@ -272,7 +279,7 @@ public abstract class ModelScreenWidget // if condition does not exist or evals to true run actions and render widgets, otherwise render fail-widgets if (condTrue) { // run the actions only if true - ModelWidgetAction.runSubActions(this.actions, context); + AbstractModelAction.runSubActions(this.actions, context); try { // section by definition do not themselves do anything, so this method will generally do nothing, but we'll call it anyway @@ -314,7 +321,7 @@ public abstract class ModelScreenWidget } } - public List<ModelWidgetAction> getActions() { + public List<ModelAction> getActions() { return actions; } @@ -329,6 +336,10 @@ public abstract class ModelScreenWidget public boolean isMainSection() { return isMainSection; } + + public ModelCondition getCondition() { + return condition; + } } public static final class ColumnContainer extends ModelScreenWidget { @@ -376,14 +387,23 @@ public abstract class ModelScreenWidget public String getStyle(Map<String, Object> context) { return this.styleExdr.expandString(context); } + + public FlexibleStringExpander getIdExdr() { + return idExdr; + } + + public FlexibleStringExpander getStyleExdr() { + return styleExdr; + } } - public static final class Column { + public static final class Column extends ModelWidget { private final FlexibleStringExpander idExdr; private final FlexibleStringExpander styleExdr; private final List<ModelScreenWidget> subWidgets; public Column(ModelScreen modelScreen, Element columnElement) { + super(columnElement); this.idExdr = FlexibleStringExpander.getInstance(columnElement.getAttribute("id")); this.styleExdr = FlexibleStringExpander.getInstance(columnElement.getAttribute("style")); List<? extends Element> subElementList = UtilXml.childElementList(columnElement); @@ -401,6 +421,19 @@ public abstract class ModelScreenWidget public String getStyle(Map<String, Object> context) { return this.styleExdr.expandString(context); } + + @Override + public void accept(ModelWidgetVisitor visitor) throws Exception { + visitor.visit(this); + } + + public FlexibleStringExpander getIdExdr() { + return idExdr; + } + + public FlexibleStringExpander getStyleExdr() { + return styleExdr; + } } public static final class Container extends ModelScreenWidget { @@ -466,6 +499,22 @@ public abstract class ModelScreenWidget public void accept(ModelWidgetVisitor visitor) throws Exception { visitor.visit(this); } + + public FlexibleStringExpander getIdExdr() { + return idExdr; + } + + public FlexibleStringExpander getStyleExdr() { + return styleExdr; + } + + public FlexibleStringExpander getAutoUpdateTargetExdr() { + return autoUpdateTargetExdr; + } + + public FlexibleStringExpander getAutoUpdateInterval() { + return autoUpdateInterval; + } } public static final class Screenlet extends ModelScreenWidget { @@ -628,6 +677,30 @@ public abstract class ModelScreenWidget public void accept(ModelWidgetVisitor visitor) throws Exception { visitor.visit(this); } + + public FlexibleStringExpander getIdExdr() { + return idExdr; + } + + public FlexibleStringExpander getTitleExdr() { + return titleExdr; + } + + public boolean getCollapsible() { + return collapsible; + } + + public FlexibleStringExpander getInitiallyCollapsed() { + return initiallyCollapsed; + } + + public boolean getSaveCollapsed() { + return saveCollapsed; + } + + public boolean getPadded() { + return padded; + } } public static final class HorizontalSeparator extends ModelScreenWidget { @@ -658,6 +731,14 @@ public abstract class ModelScreenWidget public void accept(ModelWidgetVisitor visitor) throws Exception { visitor.visit(this); } + + public FlexibleStringExpander getIdExdr() { + return idExdr; + } + + public FlexibleStringExpander getStyleExdr() { + return styleExdr; + } } public static final class IncludeScreen extends ModelScreenWidget { @@ -729,6 +810,18 @@ public abstract class ModelScreenWidget public void accept(ModelWidgetVisitor visitor) throws Exception { visitor.visit(this); } + + public FlexibleStringExpander getNameExdr() { + return nameExdr; + } + + public FlexibleStringExpander getLocationExdr() { + return locationExdr; + } + + public FlexibleStringExpander getShareScopeExdr() { + return shareScopeExdr; + } } public static final class DecoratorScreen extends ModelScreenWidget { @@ -793,6 +886,15 @@ public abstract class ModelScreenWidget public void accept(ModelWidgetVisitor visitor) throws Exception { visitor.visit(this); } + + public FlexibleStringExpander getNameExdr() { + return nameExdr; + } + + public FlexibleStringExpander getLocationExdr() { + return locationExdr; + } + } public static final class DecoratorSection extends ModelScreenWidget { @@ -911,6 +1013,18 @@ public abstract class ModelScreenWidget public void accept(ModelWidgetVisitor visitor) throws Exception { visitor.visit(this); } + + public FlexibleStringExpander getTextExdr() { + return textExdr; + } + + public FlexibleStringExpander getIdExdr() { + return idExdr; + } + + public FlexibleStringExpander getStyleExdr() { + return styleExdr; + } } public static final class Form extends ModelScreenWidget { @@ -992,6 +1106,19 @@ public abstract class ModelScreenWidget public void accept(ModelWidgetVisitor visitor) throws Exception { visitor.visit(this); } + + public FlexibleStringExpander getNameExdr() { + return nameExdr; + } + + public FlexibleStringExpander getLocationExdr() { + return locationExdr; + } + + public FlexibleStringExpander getShareScopeExdr() { + return shareScopeExdr; + } + } public static final class Tree extends ModelScreenWidget { @@ -1065,6 +1192,14 @@ public abstract class ModelScreenWidget public void accept(ModelWidgetVisitor visitor) throws Exception { visitor.visit(this); } + + public FlexibleStringExpander getLocationExdr() { + return locationExdr; + } + + public FlexibleStringExpander getShareScopeExdr() { + return shareScopeExdr; + } } public static final class PlatformSpecific extends ModelScreenWidget { @@ -1260,6 +1395,22 @@ public abstract class ModelScreenWidget public void accept(ModelWidgetVisitor visitor) throws Exception { visitor.visit(this); } + + public FlexibleStringExpander getContentId() { + return contentId; + } + + public FlexibleStringExpander getEditRequest() { + return editRequest; + } + + public FlexibleStringExpander getEditContainerStyle() { + return editContainerStyle; + } + + public FlexibleStringExpander getEnableEditName() { + return enableEditName; + } } public static final class SubContent extends ModelScreenWidget { @@ -1378,267 +1529,249 @@ public abstract class ModelScreenWidget public void accept(ModelWidgetVisitor visitor) throws Exception { visitor.visit(this); } + + public FlexibleStringExpander getLocationExdr() { + return locationExdr; + } } - public static final class Link extends ModelScreenWidget { + public static final class ScreenLink extends ModelScreenWidget { public static final String TAG_NAME = "link"; - private final FlexibleStringExpander textExdr; - private final FlexibleStringExpander idExdr; - private final FlexibleStringExpander styleExdr; - private final FlexibleStringExpander targetExdr; - private final FlexibleStringExpander targetWindowExdr; - private final FlexibleStringExpander prefixExdr; - private final FlexibleStringExpander nameExdr; - private final Image image; - private final String urlMode; - private final boolean fullPath; - private final boolean secure; - private final boolean encode; - private final String linkType; - private final String width; - private final String height; - private final List<WidgetWorker.Parameter> parameterList; - private final WidgetWorker.AutoServiceParameters autoServiceParameters; - private final WidgetWorker.AutoEntityParameters autoEntityParameters; + private final Link link; + private final ScreenImage image; - public Link(ModelScreen modelScreen, Element linkElement) { + public ScreenLink(ModelScreen modelScreen, Element linkElement) { super(modelScreen, linkElement); - this.textExdr = FlexibleStringExpander.getInstance(linkElement.getAttribute("text")); - this.idExdr = FlexibleStringExpander.getInstance(linkElement.getAttribute("id")); - this.styleExdr = FlexibleStringExpander.getInstance(linkElement.getAttribute("style")); - this.nameExdr = FlexibleStringExpander.getInstance(linkElement.getAttribute("name")); - this.targetExdr = FlexibleStringExpander.getInstance(linkElement.getAttribute("target")); - this.targetWindowExdr = FlexibleStringExpander.getInstance(linkElement.getAttribute("target-window")); - this.prefixExdr = FlexibleStringExpander.getInstance(linkElement.getAttribute("prefix")); - this.urlMode = linkElement.getAttribute("url-mode"); - this.fullPath = "true".equals(linkElement.getAttribute("full-path")); - this.secure = "true".equals(linkElement.getAttribute("secure")); - this.encode = "true".equals(linkElement.getAttribute("encode")); + this.link = new Link(linkElement); Element imageElement = UtilXml.firstChildElement(linkElement, "image"); if (imageElement != null) { - this.image = new Image(modelScreen, imageElement); + this.image = new ScreenImage(modelScreen, imageElement); } else { this.image = null; } - this.linkType = linkElement.getAttribute("link-type"); - List<? extends Element> parameterElementList = UtilXml.childElementList(linkElement, "parameter"); - if (parameterElementList.isEmpty()) { - this.parameterList = Collections.emptyList(); - } else { - List<WidgetWorker.Parameter> parameterList = new ArrayList<WidgetWorker.Parameter>(parameterElementList.size()); - for (Element parameterElement : parameterElementList) { - parameterList.add(new WidgetWorker.Parameter(parameterElement)); - } - this.parameterList = Collections.unmodifiableList(parameterList); - } - Element autoServiceParamsElement = UtilXml.firstChildElement(linkElement, "auto-parameters-service"); - if (autoServiceParamsElement != null) { - this.autoServiceParameters = new WidgetWorker.AutoServiceParameters(autoServiceParamsElement); - } else { - this.autoServiceParameters = null; - } - Element autoEntityParamsElement = UtilXml.firstChildElement(linkElement, "auto-parameters-entity"); - if (autoEntityParamsElement != null) { - this.autoEntityParameters = new WidgetWorker.AutoEntityParameters(autoEntityParamsElement); - } else { - this.autoEntityParameters = null; - } - this.width = linkElement.getAttribute("width"); - this.height = linkElement.getAttribute("height"); } - @Override - public void renderWidgetString(Appendable writer, Map<String, Object> context, ScreenStringRenderer screenStringRenderer) { - try { - screenStringRenderer.renderLink(writer, context, this); - } catch (IOException e) { - String errMsg = "Error rendering link with id [" + getId(context) + "]: " + e.toString(); - Debug.logError(e, errMsg, module); - throw new RuntimeException(errMsg); - } + public String getName() { + return link.getName(); } public String getText(Map<String, Object> context) { - String text = this.textExdr.expandString(context); - // FIXME: Encoding should be done by the renderer, not by the model. - UtilCodec.SimpleEncoder simpleEncoder = (UtilCodec.SimpleEncoder) context.get("simpleEncoder"); - if (simpleEncoder != null) { - text = simpleEncoder.encode(text); - } - return text; + return link.getText(context); } public String getId(Map<String, Object> context) { - return this.idExdr.expandString(context); + return link.getId(context); } public String getStyle(Map<String, Object> context) { - return this.styleExdr.expandString(context); + return link.getStyle(context); } public String getTarget(Map<String, Object> context) { - Map<String, Object> expanderContext = context; - UtilCodec.SimpleEncoder simpleEncoder = context == null ? null : (UtilCodec.SimpleEncoder) context.get("simpleEncoder"); - if (simpleEncoder != null) { - expanderContext = UtilCodec.HtmlEncodingMapWrapper.getHtmlEncodingMapWrapper(context, simpleEncoder); - } - return this.targetExdr.expandString(expanderContext); + return link.getTarget(context); } public String getName(Map<String, Object> context) { - return this.nameExdr.expandString(context); + return link.getName(context); } public String getTargetWindow(Map<String, Object> context) { - return this.targetWindowExdr.expandString(context); + return link.getTargetWindow(context); } public String getUrlMode() { - return this.urlMode; + return link.getUrlMode(); } public String getPrefix(Map<String, Object> context) { - return this.prefixExdr.expandString(context); + return link.getPrefix(context); } public boolean getFullPath() { - return this.fullPath; + return link.getFullPath(); } public boolean getSecure() { - return this.secure; + return link.getSecure(); } public boolean getEncode() { - return this.encode; + return link.getEncode(); } - public Image getImage() { - return this.image; + public ScreenImage getImage() { + return image; } public String getLinkType() { - return this.linkType; + return link.getLinkType(); } public String getWidth() { - return this.width; + return link.getWidth(); } public String getHeight() { - return this.height; + return link.getHeight(); } public Map<String, String> getParameterMap(Map<String, Object> context) { - Map<String, String> fullParameterMap = new HashMap<String, String>(); + return link.getParameterMap(context); + } - /* leaving this here... may want to add it at some point like the hyperlink element: - Map<String, String> addlParamMap = this.parametersMapAcsr.get(context); - if (addlParamMap != null) { - fullParameterMap.putAll(addlParamMap); - } - */ - - for (WidgetWorker.Parameter parameter: this.parameterList) { - fullParameterMap.put(parameter.getName(), parameter.getValue(context)); - } + public FlexibleStringExpander getTextExdr() { + return link.getTextExdr(); + } - if (autoServiceParameters != null) { - fullParameterMap.putAll(autoServiceParameters.getParametersMap(context, null)); - } - if (autoEntityParameters != null) { - fullParameterMap.putAll(autoEntityParameters.getParametersMap(context, null)); - } + public FlexibleStringExpander getIdExdr() { + return link.getIdExdr(); + } - return fullParameterMap; + public FlexibleStringExpander getStyleExdr() { + return link.getStyleExdr(); } - @Override - public void accept(ModelWidgetVisitor visitor) throws Exception { - visitor.visit(this); + public FlexibleStringExpander getTargetExdr() { + return link.getTargetExdr(); } - } - public static final class Image extends ModelScreenWidget { - public static final String TAG_NAME = "image"; - private final FlexibleStringExpander srcExdr; - private final FlexibleStringExpander idExdr; - private final FlexibleStringExpander styleExdr; - private final FlexibleStringExpander widthExdr; - private final FlexibleStringExpander heightExdr; - private final FlexibleStringExpander borderExdr; - private final FlexibleStringExpander alt; - private final String urlMode; + public FlexibleStringExpander getTargetWindowExdr() { + return link.getTargetWindowExdr(); + } - public Image(ModelScreen modelScreen, Element imageElement) { - super(modelScreen, imageElement); - this.srcExdr = FlexibleStringExpander.getInstance(imageElement.getAttribute("src")); - this.idExdr = FlexibleStringExpander.getInstance(imageElement.getAttribute("id")); - this.styleExdr = FlexibleStringExpander.getInstance(imageElement.getAttribute("style")); - this.widthExdr = FlexibleStringExpander.getInstance(imageElement.getAttribute("width")); - this.heightExdr = FlexibleStringExpander.getInstance(imageElement.getAttribute("height")); - this.borderExdr = FlexibleStringExpander.getInstance(imageElement.getAttribute("border")); - this.alt = FlexibleStringExpander.getInstance(imageElement.getAttribute("alt")); - String urlMode = imageElement.getAttribute("url-mode"); - if (urlMode.isEmpty()) { - urlMode = "content"; - } - this.urlMode = urlMode; + public FlexibleStringExpander getPrefixExdr() { + return link.getPrefixExdr(); + } + + public FlexibleStringExpander getNameExdr() { + return link.getNameExdr(); + } + + public List<Parameter> getParameterList() { + return link.getParameterList(); + } + + public AutoServiceParameters getAutoServiceParameters() { + return link.getAutoServiceParameters(); + } + + public AutoEntityParameters getAutoEntityParameters() { + return link.getAutoEntityParameters(); } @Override public void renderWidgetString(Appendable writer, Map<String, Object> context, ScreenStringRenderer screenStringRenderer) { try { - screenStringRenderer.renderImage(writer, context, this); + screenStringRenderer.renderLink(writer, context, this); } catch (IOException e) { - String errMsg = "Error rendering image with id [" + getId(context) + "]: " + e.toString(); + String errMsg = "Error rendering link with id [" + link.getId(context) + "]: " + e.toString(); Debug.logError(e, errMsg, module); throw new RuntimeException(errMsg); } } + @Override + public void accept(ModelWidgetVisitor visitor) throws Exception { + visitor.visit(this); + } + + public Link getLink() { + return link; + } + } + + public static final class ScreenImage extends ModelScreenWidget { + public static final String TAG_NAME = "image"; + private final Image image; + + public String getName() { + return image.getName(); + } + public String getSrc(Map<String, Object> context) { - return this.srcExdr.expandString(context); + return image.getSrc(context); } public String getId(Map<String, Object> context) { - return this.idExdr.expandString(context); + return image.getId(context); } public String getStyle(Map<String, Object> context) { - return this.styleExdr.expandString(context); + return image.getStyle(context); } public String getWidth(Map<String, Object> context) { - return this.widthExdr.expandString(context); + return image.getWidth(context); } public String getHeight(Map<String, Object> context) { - return this.heightExdr.expandString(context); + return image.getHeight(context); } public String getBorder(Map<String, Object> context) { - return this.borderExdr.expandString(context); + return image.getBorder(context); } public String getAlt(Map<String, Object> context) { - String alt = this.alt.expandString(context); - // FIXME: Encoding should be done by the renderer, not by the model. - UtilCodec.SimpleEncoder simpleEncoder = (UtilCodec.SimpleEncoder) context.get("simpleEncoder"); - if (simpleEncoder != null) { - alt = simpleEncoder.encode(alt); - } - return alt; + return image.getAlt(context); } public String getUrlMode() { - return this.urlMode; + return image.getUrlMode(); + } + + public FlexibleStringExpander getSrcExdr() { + return image.getSrcExdr(); + } + + public FlexibleStringExpander getIdExdr() { + return image.getIdExdr(); + } + + public FlexibleStringExpander getStyleExdr() { + return image.getStyleExdr(); + } + + public FlexibleStringExpander getWidthExdr() { + return image.getWidthExdr(); + } + + public FlexibleStringExpander getHeightExdr() { + return image.getHeightExdr(); + } + + public FlexibleStringExpander getBorderExdr() { + return image.getBorderExdr(); + } + + public FlexibleStringExpander getAlt() { + return image.getAlt(); + } + + public ScreenImage(ModelScreen modelScreen, Element imageElement) { + super(modelScreen, imageElement); + this.image = new Image(imageElement); + } + + @Override + public void renderWidgetString(Appendable writer, Map<String, Object> context, ScreenStringRenderer screenStringRenderer) { + try { + screenStringRenderer.renderImage(writer, context, this); + } catch (IOException e) { + String errMsg = "Error rendering image with id [" + image.getId(context) + "]: " + e.toString(); + Debug.logError(e, errMsg, module); + throw new RuntimeException(errMsg); + } } @Override public void accept(ModelWidgetVisitor visitor) throws Exception { visitor.visit(this); } + + public Image getImage() { + return image; + } } public static final class PortalPage extends ModelScreenWidget { @@ -1820,6 +1953,14 @@ public abstract class ModelScreenWidget public void accept(ModelWidgetVisitor visitor) throws Exception { visitor.visit(this); } + + public FlexibleStringExpander getIdExdr() { + return idExdr; + } + + public FlexibleStringExpander getConfModeExdr() { + return confModeExdr; + } } } Modified: ofbiz/trunk/framework/widget/src/org/ofbiz/widget/screen/ScreenFactory.java URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/widget/src/org/ofbiz/widget/screen/ScreenFactory.java?rev=1652638&r1=1652637&r2=1652638&view=diff ============================================================================== --- ofbiz/trunk/framework/widget/src/org/ofbiz/widget/screen/ScreenFactory.java (original) +++ ofbiz/trunk/framework/widget/src/org/ofbiz/widget/screen/ScreenFactory.java Sat Jan 17 16:47:23 2015 @@ -168,7 +168,7 @@ public class ScreenFactory { List<? extends Element> screenElements = UtilXml.childElementList(rootElement, "screen"); for (Element screenElement: screenElements) { ModelScreen modelScreen = new ModelScreen(screenElement, modelScreenMap, sourceLocation); - //Debug.logInfo("Read Screen with name: " + modelScreen.getName(), module); + Debug.logInfo("Read Screen with name: " + modelScreen.getName() + "\n" + modelScreen, module); modelScreenMap.put(modelScreen.getName(), modelScreen); } } Modified: ofbiz/trunk/framework/widget/src/org/ofbiz/widget/screen/ScreenStringRenderer.java URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/widget/src/org/ofbiz/widget/screen/ScreenStringRenderer.java?rev=1652638&r1=1652637&r2=1652638&view=diff ============================================================================== --- ofbiz/trunk/framework/widget/src/org/ofbiz/widget/screen/ScreenStringRenderer.java (original) +++ ofbiz/trunk/framework/widget/src/org/ofbiz/widget/screen/ScreenStringRenderer.java Sat Jan 17 16:47:23 2015 @@ -45,8 +45,8 @@ public interface ScreenStringRenderer { public void renderHorizontalSeparator(Appendable writer, Map<String, Object> context, ModelScreenWidget.HorizontalSeparator separator) throws IOException; public void renderLabel(Appendable writer, Map<String, Object> context, ModelScreenWidget.Label label) throws IOException; - public void renderLink(Appendable writer, Map<String, Object> context, ModelScreenWidget.Link link) throws IOException; - public void renderImage(Appendable writer, Map<String, Object> context, ModelScreenWidget.Image image) throws IOException; + public void renderLink(Appendable writer, Map<String, Object> context, ModelScreenWidget.ScreenLink link) throws IOException; + public void renderImage(Appendable writer, Map<String, Object> context, ModelScreenWidget.ScreenImage image) throws IOException; public void renderContentFrame(Appendable writer, Map<String, Object> context, ModelScreenWidget.Content content) throws IOException; public void renderScreenletBegin(Appendable writer, Map<String, Object> context, boolean collapsed, ModelScreenWidget.Screenlet screenlet) throws IOException; Modified: ofbiz/trunk/framework/widget/src/org/ofbiz/widget/text/TextScreenRenderer.java URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/widget/src/org/ofbiz/widget/text/TextScreenRenderer.java?rev=1652638&r1=1652637&r2=1652638&view=diff ============================================================================== --- ofbiz/trunk/framework/widget/src/org/ofbiz/widget/text/TextScreenRenderer.java (original) +++ ofbiz/trunk/framework/widget/src/org/ofbiz/widget/text/TextScreenRenderer.java Sat Jan 17 16:47:23 2015 @@ -75,11 +75,11 @@ public class TextScreenRenderer implemen // TODO: not implemented } - public void renderLink(Appendable writer, Map<String, Object> context, ModelScreenWidget.Link link) throws IOException { + public void renderLink(Appendable writer, Map<String, Object> context, ModelScreenWidget.ScreenLink link) throws IOException { // TODO: not implemented } - public void renderImage(Appendable writer, Map<String, Object> context, ModelScreenWidget.Image image) throws IOException { + public void renderImage(Appendable writer, Map<String, Object> context, ModelScreenWidget.ScreenImage image) throws IOException { // TODO: not implemented } 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=1652638&r1=1652637&r2=1652638&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 Jan 17 16:47:23 2015 @@ -49,10 +49,10 @@ import org.ofbiz.entity.model.ModelField import org.ofbiz.entity.util.EntityListIterator; import org.ofbiz.entity.util.EntityQuery; import org.ofbiz.widget.ModelWidget; -import org.ofbiz.widget.ModelWidgetAction; +import org.ofbiz.widget.*; import org.ofbiz.widget.ModelWidgetVisitor; import org.ofbiz.widget.WidgetWorker; -import org.ofbiz.widget.WidgetWorker.Parameter; +import org.ofbiz.widget.CommonWidgetModels.Parameter; import org.ofbiz.widget.screen.ModelScreen; import org.ofbiz.widget.screen.ScreenFactory; import org.ofbiz.widget.screen.ScreenRenderException; @@ -259,6 +259,35 @@ public class ModelTree extends ModelWidg Debug.logError(e2, errMsg, module); throw new RuntimeException(errMsg); } + + } + + public String getDefaultRenderStyle() { + return defaultRenderStyle; + } + + public FlexibleStringExpander getDefaultWrapStyleExdr() { + return defaultWrapStyleExdr; + } + + public FlexibleStringExpander getExpandCollapseRequestExdr() { + return expandCollapseRequestExdr; + } + + public boolean getForceChildCheck() { + return forceChildCheck; + } + + public String getLocation() { + return location; + } + + public Map<String, ModelNode> getNodeMap() { + return nodeMap; + } + + public FlexibleStringExpander getTrailNameExdr() { + return trailNameExdr; } /** @@ -268,7 +297,8 @@ public class ModelTree extends ModelWidg */ public static class ModelNode extends ModelWidget { - private final List<ModelWidgetAction> actions; + private final List<ModelAction> actions; + // TODO: Make this a generic condition object. private final ModelTreeCondition condition; private final String entityName; private final String entryName; @@ -293,7 +323,7 @@ public class ModelTree extends ModelWidg this.entryName = nodeElement.getAttribute("entry-name"); this.entityName = nodeElement.getAttribute("entity-name"); this.pkName = nodeElement.getAttribute("join-field-name"); - ArrayList<ModelWidgetAction> actions = new ArrayList<ModelWidgetAction>(); + ArrayList<ModelAction> actions = new ArrayList<ModelAction>(); // FIXME: Validate child elements, should be only one of actions, entity-one, service, script. Element actionsElement = UtilXml.firstChildElement(nodeElement, "actions"); if (actionsElement != null) { @@ -301,7 +331,7 @@ public class ModelTree extends ModelWidg } Element actionElement = UtilXml.firstChildElement(nodeElement, "entity-one"); if (actionElement != null) { - actions.add(new ModelWidgetAction.EntityOne(this, actionElement)); + actions.add(new AbstractModelAction.EntityOne(this, actionElement)); } actionElement = UtilXml.firstChildElement(nodeElement, "service"); if (actionElement != null) { @@ -364,9 +394,9 @@ public class ModelTree extends ModelWidg for (ModelSubNode subNode : subNodeList) { String nodeName = subNode.getNodeName(context); ModelNode node = modelTree.nodeMap.get(nodeName); - List<ModelWidgetAction> subNodeActions = subNode.getActions(); + List<ModelAction> subNodeActions = subNode.getActions(); //if (Debug.infoOn()) Debug.logInfo(" context.currentValue:" + context.get("currentValue"), module); - ModelWidgetAction.runSubActions(subNodeActions, context); + AbstractModelAction.runSubActions(subNodeActions, context); // List dataFound = (List)context.get("dataFound"); Iterator<? extends Map<String, ? extends Object>> dataIter = subNode.getListIterator(context); if (dataIter instanceof EntityListIterator) { @@ -536,7 +566,7 @@ public class ModelTree extends ModelWidg int depth) throws IOException, GeneralException { boolean passed = true; if (this.condition != null) { - if (!this.condition.eval(context)) { + if (!this.condition.getCondition().eval(context)) { passed = false; } } @@ -658,6 +688,46 @@ public class ModelTree extends ModelWidg } return showPeers; } + + public List<ModelAction> getActions() { + return actions; + } + + public ModelTreeCondition getCondition() { + return condition; + } + + public Label getLabel() { + return label; + } + + public Link getLink() { + return link; + } + + public String getPkName() { + return pkName; + } + + public FlexibleStringExpander getScreenLocationExdr() { + return screenLocationExdr; + } + + public FlexibleStringExpander getScreenNameExdr() { + return screenNameExdr; + } + + public String getShareScope() { + return shareScope; + } + + public List<ModelSubNode> getSubNodeList() { + return subNodeList; + } + + public FlexibleStringExpander getWrapStyleExdr() { + return wrapStyleExdr; + } /** * Models the <image> element. @@ -769,6 +839,18 @@ public class ModelTree extends ModelWidg throw new RuntimeException(errMsg); } } + + public FlexibleStringExpander getIdExdr() { + return idExdr; + } + + public FlexibleStringExpander getStyleExdr() { + return styleExdr; + } + + public FlexibleStringExpander getTextExdr() { + return textExdr; + } } /** @@ -876,7 +958,7 @@ public class ModelTree extends ModelWidg fullParameterMap.putAll(addlParamMap); } */ - for (WidgetWorker.Parameter parameter : this.parameterList) { + for (CommonWidgetModels.Parameter parameter : this.parameterList) { fullParameterMap.put(parameter.getName(), parameter.getValue(context)); } return fullParameterMap; @@ -941,6 +1023,42 @@ public class ModelTree extends ModelWidg throw new RuntimeException(errMsg); } } + + public FlexibleStringExpander getIdExdr() { + return idExdr; + } + + public FlexibleStringExpander getNameExdr() { + return nameExdr; + } + + public List<Parameter> getParameterList() { + return parameterList; + } + + public FlexibleStringExpander getPrefixExdr() { + return prefixExdr; + } + + public FlexibleStringExpander getStyleExdr() { + return styleExdr; + } + + public FlexibleStringExpander getTargetExdr() { + return targetExdr; + } + + public FlexibleStringExpander getTargetWindowExdr() { + return targetWindowExdr; + } + + public FlexibleStringExpander getTextExdr() { + return textExdr; + } + + public FlexibleStringExpander getTitleExdr() { + return titleExdr; + } } /** @@ -950,7 +1068,7 @@ public class ModelTree extends ModelWidg */ public static class ModelSubNode extends ModelWidget { - private final List<ModelWidgetAction> actions; + private final List<ModelAction> actions; private final FlexibleStringExpander nodeNameExdr; private final ModelNode rootNode; private final String iteratorKey; @@ -959,7 +1077,7 @@ public class ModelTree extends ModelWidg super(subNodeElement); this.rootNode = modelNode; this.nodeNameExdr = FlexibleStringExpander.getInstance(subNodeElement.getAttribute("node-name")); - ArrayList<ModelWidgetAction> actions = new ArrayList<ModelWidgetAction>(); + ArrayList<ModelAction> actions = new ArrayList<ModelAction>(); // FIXME: Validate child elements, should be only one of actions, entity-and, entity-condition, service, script. Element actionsElement = UtilXml.firstChildElement(subNodeElement, "actions"); if (actionsElement != null) { @@ -992,7 +1110,7 @@ public class ModelTree extends ModelWidg visitor.visit(this); } - public List<ModelWidgetAction> getActions() { + public List<ModelAction> getActions() { return actions; } @@ -1009,6 +1127,10 @@ public class ModelTree extends ModelWidg return this.nodeNameExdr.expandString(context); } + public FlexibleStringExpander getNodeNameExdr() { + return nodeNameExdr; + } + public void setListIterator(ListIterator<? extends Map<String, ? extends Object>> iter, Map<String, Object> context) { context.put(this.iteratorKey, iter); } Modified: ofbiz/trunk/framework/widget/src/org/ofbiz/widget/tree/ModelTreeAction.java URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/widget/src/org/ofbiz/widget/tree/ModelTreeAction.java?rev=1652638&r1=1652637&r2=1652638&view=diff ============================================================================== --- ofbiz/trunk/framework/widget/src/org/ofbiz/widget/tree/ModelTreeAction.java (original) +++ ofbiz/trunk/framework/widget/src/org/ofbiz/widget/tree/ModelTreeAction.java Sat Jan 17 16:47:23 2015 @@ -44,8 +44,9 @@ import org.ofbiz.minilang.method.MethodC import org.ofbiz.service.DispatchContext; import org.ofbiz.service.GenericServiceException; import org.ofbiz.service.ModelService; +import org.ofbiz.widget.AbstractModelAction; +import org.ofbiz.widget.ModelAction; import org.ofbiz.widget.ModelActionVisitor; -import org.ofbiz.widget.ModelWidgetAction; import org.ofbiz.widget.WidgetWorker; import org.ofbiz.widget.tree.ModelTree.ModelNode; import org.w3c.dom.Document; @@ -55,7 +56,7 @@ import org.w3c.dom.Element; * Abstract tree action. */ @SuppressWarnings("serial") -public abstract class ModelTreeAction extends ModelWidgetAction { +public abstract class ModelTreeAction extends AbstractModelAction { /* * ----------------------------------------------------------------------- * @@ -73,24 +74,24 @@ public abstract class ModelTreeAction ex public static final String module = ModelTreeAction.class.getName(); - public static List<ModelWidgetAction> readNodeActions(ModelNode modelNode, Element actionsElement) { + public static List<ModelAction> readNodeActions(ModelNode modelNode, Element actionsElement) { List<? extends Element> actionElementList = UtilXml.childElementList(actionsElement); - List<ModelWidgetAction> actions = new ArrayList<ModelWidgetAction>(actionElementList.size()); + List<ModelAction> actions = new ArrayList<ModelAction>(actionElementList.size()); for (Element actionElement : actionElementList) { if ("service".equals(actionElement.getNodeName())) { actions.add(new Service(modelNode, actionElement)); } else if ("script".equals(actionElement.getNodeName())) { actions.add(new Script(modelNode, actionElement)); } else { - actions.add(ModelWidgetAction.newInstance(modelNode, actionElement)); + actions.add(AbstractModelAction.newInstance(modelNode, actionElement)); } } return actions; } - public static List<ModelWidgetAction> readSubNodeActions(ModelNode.ModelSubNode modelSubNode, Element actionsElement) { + public static List<ModelAction> readSubNodeActions(ModelNode.ModelSubNode modelSubNode, Element actionsElement) { List<? extends Element> actionElementList = UtilXml.childElementList(actionsElement); - List<ModelWidgetAction> actions = new ArrayList<ModelWidgetAction>(actionElementList.size()); + List<ModelAction> actions = new ArrayList<ModelAction>(actionElementList.size()); for (Element actionElement : actionElementList) { if ("service".equals(actionElement.getNodeName())) { actions.add(new Service(modelSubNode, actionElement)); @@ -101,7 +102,7 @@ public abstract class ModelTreeAction ex } else if ("script".equals(actionElement.getNodeName())) { actions.add(new Script(modelSubNode, actionElement)); } else { - actions.add(ModelWidgetAction.newInstance(modelSubNode, actionElement)); + actions.add(AbstractModelAction.newInstance(modelSubNode, actionElement)); } } return actions; @@ -157,7 +158,7 @@ public abstract class ModelTreeAction ex } @Override - public void accept(ModelActionVisitor visitor) { + public void accept(ModelActionVisitor visitor) throws Exception { visitor.visit(this); } @@ -217,7 +218,7 @@ public abstract class ModelTreeAction ex } @Override - public void accept(ModelActionVisitor visitor) { + public void accept(ModelActionVisitor visitor) throws Exception { visitor.visit(this); } @@ -276,7 +277,7 @@ public abstract class ModelTreeAction ex } @Override - public void accept(ModelActionVisitor visitor) { + public void accept(ModelActionVisitor visitor) throws Exception { visitor.visit(this); } @@ -357,7 +358,7 @@ public abstract class ModelTreeAction ex } @Override - public void accept(ModelActionVisitor visitor) { + public void accept(ModelActionVisitor visitor) throws Exception { visitor.visit(this); } Modified: ofbiz/trunk/framework/widget/src/org/ofbiz/widget/tree/ModelTreeCondition.java URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/widget/src/org/ofbiz/widget/tree/ModelTreeCondition.java?rev=1652638&r1=1652637&r2=1652638&view=diff ============================================================================== --- ofbiz/trunk/framework/widget/src/org/ofbiz/widget/tree/ModelTreeCondition.java (original) +++ ofbiz/trunk/framework/widget/src/org/ofbiz/widget/tree/ModelTreeCondition.java Sat Jan 17 16:47:23 2015 @@ -18,7 +18,8 @@ *******************************************************************************/ package org.ofbiz.widget.tree; -import org.ofbiz.widget.ModelWidgetCondition; +import org.ofbiz.widget.AbstractModelCondition; +import org.ofbiz.widget.ModelCondition; import org.w3c.dom.Element; /** @@ -26,11 +27,15 @@ import org.w3c.dom.Element; * * @see <code>widget-tree.xsd</code> */ -@SuppressWarnings("serial") -public class ModelTreeCondition extends ModelWidgetCondition { +public class ModelTreeCondition { public static final String module = ModelTreeCondition.class.getName(); + private final ModelCondition condition; public ModelTreeCondition(ModelTree modelTree, Element conditionElement) { - super(ModelWidgetCondition.DEFAULT_CONDITION_FACTORY, modelTree, conditionElement); + this.condition = AbstractModelCondition.DEFAULT_CONDITION_FACTORY.newInstance(modelTree, conditionElement); + } + + public ModelCondition getCondition() { + return condition; } } |
Free forum by Nabble | Edit this page |