Modified: ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/widget/src/org/ofbiz/widget/form/ModelFormField.java
URL: http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/widget/src/org/ofbiz/widget/form/ModelFormField.java?rev=1636282&r1=1636281&r2=1636282&view=diff ============================================================================== --- ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/widget/src/org/ofbiz/widget/form/ModelFormField.java (original) +++ ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/widget/src/org/ofbiz/widget/form/ModelFormField.java Mon Nov 3 06:54:16 2014 @@ -23,6 +23,7 @@ import java.math.BigDecimal; import java.sql.Timestamp; import java.text.DateFormat; import java.text.NumberFormat; +import java.util.ArrayList; import java.util.Date; import java.util.HashMap; import java.util.LinkedList; @@ -32,9 +33,6 @@ import java.util.Map; import java.util.StringTokenizer; import java.util.TimeZone; -import javolution.util.FastList; -import javolution.util.FastMap; - import org.ofbiz.base.conversion.ConversionException; import org.ofbiz.base.conversion.DateTimeConverters; import org.ofbiz.base.conversion.DateTimeConverters.StringToTimestamp; @@ -67,6 +65,7 @@ import org.ofbiz.service.DispatchContext import org.ofbiz.service.GenericServiceException; import org.ofbiz.service.ModelParam; import org.ofbiz.service.ModelService; +import org.ofbiz.widget.ModelFieldVisitor; import org.ofbiz.widget.WidgetWorker; import org.ofbiz.widget.form.ModelForm.UpdateArea; import org.w3c.dom.Element; @@ -130,7 +129,7 @@ public class ModelFormField { } /** XML Constructor */ - public ModelFormField(Element fieldElement, ModelForm modelForm) { + public ModelFormField(Element fieldElement, ModelForm modelForm, ModelReader entityModelReader, DispatchContext dispatchContext) { this.modelForm = modelForm; this.name = fieldElement.getAttribute("name"); this.setMapName(fieldElement.getAttribute("map-name")); @@ -183,7 +182,7 @@ public class ModelFormField { if (UtilValidate.isEmpty(subElementName)) { this.fieldInfo = null; - this.induceFieldInfo(null); //no defaultFieldType specified here, will default to edit + this.induceFieldInfo(null, entityModelReader, dispatchContext); //no defaultFieldType specified here, will default to edit } else if ("display".equals(subElementName)) this.fieldInfo = new DisplayField(subElement, this); else if ("display-entity".equals(subElementName)) this.fieldInfo = new DisplayEntityField(subElement, this); else if ("hyperlink".equals(subElementName)) this.fieldInfo = new HyperlinkField(subElement, this); @@ -210,21 +209,21 @@ public class ModelFormField { } } - public void addOnEventUpdateArea(UpdateArea updateArea) { + private void addOnEventUpdateArea(UpdateArea updateArea) { // Event types are sorted as a convenience for the rendering classes Debug.logInfo(this.modelForm.getName() + ":" + this.name + " adding UpdateArea type " + updateArea.getEventType(), module); if ("change".equals(updateArea.getEventType())) addOnChangeUpdateArea(updateArea); else if ("click".equals(updateArea.getEventType())) addOnClickUpdateArea(updateArea); } - protected void addOnChangeUpdateArea(UpdateArea updateArea) { - if (onChangeUpdateAreas == null) onChangeUpdateAreas = FastList.newInstance(); + private void addOnChangeUpdateArea(UpdateArea updateArea) { + if (onChangeUpdateAreas == null) onChangeUpdateAreas = new ArrayList<UpdateArea>(); onChangeUpdateAreas.add(updateArea); Debug.logInfo(this.modelForm.getName() + ":" + this.name + " onChangeUpdateAreas size = " + onChangeUpdateAreas.size(), module); } - protected void addOnClickUpdateArea(UpdateArea updateArea) { - if (onClickUpdateAreas == null) onClickUpdateAreas = FastList.newInstance(); + private void addOnClickUpdateArea(UpdateArea updateArea) { + if (onClickUpdateAreas == null) onClickUpdateAreas = new ArrayList<UpdateArea>(); onClickUpdateAreas.add(updateArea); } @@ -262,16 +261,14 @@ public class ModelFormField { this.encodeOutput = overrideFormField.encodeOutput; } - public boolean induceFieldInfo(String defaultFieldType) { - if (this.induceFieldInfoFromEntityField(defaultFieldType)) return true; - if (this.induceFieldInfoFromServiceParam(defaultFieldType)) return true; + private boolean induceFieldInfo(String defaultFieldType, ModelReader entityModelReader, DispatchContext dispatchContext) { + if (this.induceFieldInfoFromEntityField(defaultFieldType, entityModelReader)) return true; + if (this.induceFieldInfoFromServiceParam(defaultFieldType, entityModelReader, dispatchContext)) return true; return false; } - public boolean induceFieldInfoFromServiceParam(String defaultFieldType) { + private boolean induceFieldInfoFromServiceParam(String defaultFieldType, ModelReader entityModelReader, DispatchContext dispatchContext) { if (UtilValidate.isEmpty(this.getServiceName()) || UtilValidate.isEmpty(this.getAttributeName())) return false; - - DispatchContext dispatchContext = this.getModelForm().dispatchContext; try { ModelService modelService = dispatchContext.getModelService(this.getServiceName()); if (modelService != null) { @@ -280,7 +277,7 @@ public class ModelFormField { if (UtilValidate.isNotEmpty(modelParam.entityName) && UtilValidate.isNotEmpty(modelParam.fieldName)) { this.entityName = modelParam.entityName; this.fieldName = modelParam.fieldName; - if (this.induceFieldInfoFromEntityField(defaultFieldType)) { + if (this.induceFieldInfoFromEntityField(defaultFieldType, entityModelReader)) { return true; } } @@ -358,10 +355,8 @@ public class ModelFormField { return true; } - public boolean induceFieldInfoFromEntityField(String defaultFieldType) { + private boolean induceFieldInfoFromEntityField(String defaultFieldType, ModelReader entityModelReader) { if (UtilValidate.isEmpty(this.getEntityName()) || UtilValidate.isEmpty(this.getFieldName())) return false; - - ModelReader entityModelReader = this.getModelForm().entityModelReader; try { ModelEntity modelEntity = entityModelReader.getModelEntity(this.getEntityName()); if (modelEntity != null) { @@ -1347,6 +1342,8 @@ public class ModelFormField { this.modelFormField = modelFormField; } + public abstract void accept(ModelFieldVisitor visitor); + public ModelFormField getModelFormField() { return modelFormField; } @@ -1406,6 +1403,10 @@ public class ModelFormField { } } + public List<OptionSource> getOptionSources() { + return optionSources; + } + public List<OptionValue> getAllOptionValues(Map<String, Object> context, Delegator delegator) { List<OptionValue> optionValues = new LinkedList<OptionValue>(); for (OptionSource optionSource: this.optionSources) { @@ -1519,7 +1520,7 @@ public class ModelFormField { List<? extends Object> dataList = UtilGenerics.checkList(this.listAcsr.get(context)); if (dataList != null && dataList.size() != 0) { for (Object data: dataList) { - Map<String, Object> localContext = FastMap.newInstance(); + Map<String, Object> localContext = new HashMap<String, Object>(); localContext.putAll(context); if (UtilValidate.isNotEmpty(this.listEntryName)) { localContext.put(this.listEntryName, data); @@ -1585,6 +1586,10 @@ public class ModelFormField { this.fieldInfo = fieldInfo; } + public String getEntityName() { + return entityName; + } + public String getKeyFieldName() { if (UtilValidate.isNotEmpty(this.keyFieldName)) return this.keyFieldName; return this.fieldInfo.getModelFormField().getFieldName(); // get the modelFormField fieldName @@ -2128,6 +2133,11 @@ public class ModelFormField { return ""; } } + + @Override + public void accept(ModelFieldVisitor visitor) { + visitor.visit(this); + } } public static class DisplayEntityField extends DisplayField { @@ -2167,6 +2177,11 @@ public class ModelFormField { } @Override + public void accept(ModelFieldVisitor visitor) { + visitor.visit(this); + } + + @Override public String getDescription(Map<String, Object> context) { Locale locale = UtilMisc.ensureLocale(context.get("locale")); @@ -2203,6 +2218,10 @@ public class ModelFormField { return retVal; } + public String getEntityName() { + return entityName; + } + public SubHyperlink getSubHyperlink() { return this.subHyperlink; } @@ -2225,7 +2244,7 @@ public class ModelFormField { protected FlexibleStringExpander imageTitle; protected FlexibleStringExpander targetWindowExdr; protected FlexibleMapAccessor<Map<String, String>> parametersMapAcsr; - protected List<WidgetWorker.Parameter> parameterList = FastList.newInstance(); + protected List<WidgetWorker.Parameter> parameterList = new ArrayList<WidgetWorker.Parameter>(); protected WidgetWorker.AutoServiceParameters autoServiceParameters; protected WidgetWorker.AutoEntityParameters autoEntityParameters; @@ -2274,6 +2293,11 @@ public class ModelFormField { } @Override + public void accept(ModelFieldVisitor visitor) { + visitor.visit(this); + } + + @Override public void renderFieldString(Appendable writer, Map<String, Object> context, FormStringRenderer formStringRenderer) throws IOException { formStringRenderer.renderHyperlinkField(writer, context, this); } @@ -2337,7 +2361,7 @@ public class ModelFormField { } public Map<String, String> getParameterMap(Map<String, Object> context) { - Map<String, String> fullParameterMap = FastMap.newInstance(); + Map<String, String> fullParameterMap = new HashMap<String, String>(); Map<String, String> addlParamMap = this.parametersMapAcsr.get(context); if (addlParamMap != null) { @@ -2433,7 +2457,7 @@ public class ModelFormField { protected FlexibleStringExpander target; protected FlexibleStringExpander description; protected FlexibleStringExpander targetWindowExdr; - protected List<WidgetWorker.Parameter> parameterList = FastList.newInstance(); + protected List<WidgetWorker.Parameter> parameterList = new ArrayList<WidgetWorker.Parameter>(); protected boolean requestConfirmation = false; protected FlexibleStringExpander confirmationMsgExdr; protected ModelFormField modelFormField; @@ -2500,7 +2524,7 @@ public class ModelFormField { } public Map<String, String> getParameterMap(Map<String, Object> context) { - Map<String, String> fullParameterMap = FastMap.newInstance(); + Map<String, String> fullParameterMap = new HashMap<String, String>(); /* leaving this here... may want to add it at some point like the hyperlink element: Map<String, String> addlParamMap = this.parametersMapAcsr.get(context); @@ -2774,6 +2798,11 @@ public class ModelFormField { } @Override + public void accept(ModelFieldVisitor visitor) { + visitor.visit(this); + } + + @Override public void renderFieldString(Appendable writer, Map<String, Object> context, FormStringRenderer formStringRenderer) throws IOException { formStringRenderer.renderTextField(writer, context, this); } @@ -2903,6 +2932,11 @@ public class ModelFormField { } @Override + public void accept(ModelFieldVisitor visitor) { + visitor.visit(this); + } + + @Override public void renderFieldString(Appendable writer, Map<String, Object> context, FormStringRenderer formStringRenderer) throws IOException { formStringRenderer.renderTextareaField(writer, context, this); } @@ -3010,6 +3044,11 @@ public class ModelFormField { } @Override + public void accept(ModelFieldVisitor visitor) { + visitor.visit(this); + } + + @Override public void renderFieldString(Appendable writer, Map<String, Object> context, FormStringRenderer formStringRenderer) throws IOException { formStringRenderer.renderDateTimeField(writer, context, this); } @@ -3144,6 +3183,11 @@ public class ModelFormField { } @Override + public void accept(ModelFieldVisitor visitor) { + visitor.visit(this); + } + + @Override public void renderFieldString(Appendable writer, Map<String, Object> context, FormStringRenderer formStringRenderer) throws IOException { formStringRenderer.renderDropDownField(writer, context, this); } @@ -3245,6 +3289,11 @@ public class ModelFormField { } @Override + public void accept(ModelFieldVisitor visitor) { + visitor.visit(this); + } + + @Override public void renderFieldString(Appendable writer, Map<String, Object> context, FormStringRenderer formStringRenderer) throws IOException { formStringRenderer.renderRadioField(writer, context, this); } @@ -3272,6 +3321,11 @@ public class ModelFormField { } @Override + public void accept(ModelFieldVisitor visitor) { + visitor.visit(this); + } + + @Override public void renderFieldString(Appendable writer, Map<String, Object> context, FormStringRenderer formStringRenderer) throws IOException { formStringRenderer.renderCheckField(writer, context, this); } @@ -3312,6 +3366,11 @@ public class ModelFormField { } @Override + public void accept(ModelFieldVisitor visitor) { + visitor.visit(this); + } + + @Override public void renderFieldString(Appendable writer, Map<String, Object> context, FormStringRenderer formStringRenderer) throws IOException { formStringRenderer.renderSubmitField(writer, context, this); } @@ -3389,6 +3448,11 @@ public class ModelFormField { } @Override + public void accept(ModelFieldVisitor visitor) { + visitor.visit(this); + } + + @Override public void renderFieldString(Appendable writer, Map<String, Object> context, FormStringRenderer formStringRenderer) throws IOException { formStringRenderer.renderResetField(writer, context, this); } @@ -3415,6 +3479,11 @@ public class ModelFormField { } @Override + public void accept(ModelFieldVisitor visitor) { + visitor.visit(this); + } + + @Override public void renderFieldString(Appendable writer, Map<String, Object> context, FormStringRenderer formStringRenderer) throws IOException { formStringRenderer.renderHiddenField(writer, context, this); } @@ -3455,6 +3524,11 @@ public class ModelFormField { } @Override + public void accept(ModelFieldVisitor visitor) { + visitor.visit(this); + } + + @Override public void renderFieldString(Appendable writer, Map<String, Object> context, FormStringRenderer formStringRenderer) throws IOException { formStringRenderer.renderIgnoredField(writer, context, this); } @@ -3501,6 +3575,11 @@ public class ModelFormField { } @Override + public void accept(ModelFieldVisitor visitor) { + visitor.visit(this); + } + + @Override public void renderFieldString(Appendable writer, Map<String, Object> context, FormStringRenderer formStringRenderer) throws IOException { formStringRenderer.renderTextFindField(writer, context, this); } @@ -3521,6 +3600,11 @@ public class ModelFormField { } @Override + public void accept(ModelFieldVisitor visitor) { + visitor.visit(this); + } + + @Override public void renderFieldString(Appendable writer, Map<String, Object> context, FormStringRenderer formStringRenderer) throws IOException { formStringRenderer.renderDateFindField(writer, context, this); } @@ -3549,6 +3633,11 @@ public class ModelFormField { } @Override + public void accept(ModelFieldVisitor visitor) { + visitor.visit(this); + } + + @Override public void renderFieldString(Appendable writer, Map<String, Object> context, FormStringRenderer formStringRenderer) throws IOException { formStringRenderer.renderRangeFindField(writer, context, this); } @@ -3598,6 +3687,11 @@ public class ModelFormField { } @Override + public void accept(ModelFieldVisitor visitor) { + visitor.visit(this); + } + + @Override public void renderFieldString(Appendable writer, Map<String, Object> context, FormStringRenderer formStringRenderer) throws IOException { formStringRenderer.renderLookupField(writer, context, this); } @@ -3607,7 +3701,7 @@ public class ModelFormField { } public List<String> getTargetParameterList() { - List<String> paramList = FastList.newInstance(); + List<String> paramList = new LinkedList<String>(); if (UtilValidate.isNotEmpty(this.targetParameter)) { StringTokenizer stk = new StringTokenizer(this.targetParameter, ", "); while (stk.hasMoreTokens()) { @@ -3699,6 +3793,11 @@ public class ModelFormField { } @Override + public void accept(ModelFieldVisitor visitor) { + visitor.visit(this); + } + + @Override public void renderFieldString(Appendable writer, Map<String, Object> context, FormStringRenderer formStringRenderer) throws IOException { formStringRenderer.renderFileField(writer, context, this); } @@ -3715,6 +3814,11 @@ public class ModelFormField { } @Override + public void accept(ModelFieldVisitor visitor) { + visitor.visit(this); + } + + @Override public void renderFieldString(Appendable writer, Map<String, Object> context, FormStringRenderer formStringRenderer) throws IOException { formStringRenderer.renderPasswordField(writer, context, this); } @@ -3754,6 +3858,11 @@ public class ModelFormField { } @Override + public void accept(ModelFieldVisitor visitor) { + visitor.visit(this); + } + + @Override public void renderFieldString(Appendable writer, Map<String, Object> context, FormStringRenderer formStringRenderer) throws IOException { formStringRenderer.renderImageField(writer, context, this); } @@ -3835,6 +3944,11 @@ public class ModelFormField { } @Override + public void accept(ModelFieldVisitor visitor) { + visitor.visit(this); + } + + @Override public void renderFieldString(Appendable writer, Map<String, Object> context, FormStringRenderer formStringRenderer) throws IOException { formStringRenderer.renderContainerFindField(writer, context, this); } Modified: ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/widget/src/org/ofbiz/widget/html/HtmlFormRenderer.java URL: http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/widget/src/org/ofbiz/widget/html/HtmlFormRenderer.java?rev=1636282&r1=1636281&r2=1636282&view=diff ============================================================================== --- ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/widget/src/org/ofbiz/widget/html/HtmlFormRenderer.java (original) +++ ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/widget/src/org/ofbiz/widget/html/HtmlFormRenderer.java Mon Nov 3 06:54:16 2014 @@ -20,6 +20,7 @@ package org.ofbiz.widget.html; import java.io.IOException; import java.util.HashSet; +import java.util.LinkedList; import java.util.List; import java.util.Locale; import java.util.Map; @@ -29,8 +30,6 @@ import javax.servlet.ServletContext; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; -import javolution.util.FastList; - import org.ofbiz.base.util.Debug; import org.ofbiz.base.util.StringUtil; import org.ofbiz.base.util.StringUtil.SimpleEncoder; @@ -958,7 +957,7 @@ public class HtmlFormRenderer extends Ht String backgroundSubmitRefreshTarget = submitField.getBackgroundSubmitRefreshTarget(context); if (UtilValidate.isNotEmpty(backgroundSubmitRefreshTarget)) { if (updateAreas == null) { - updateAreas = FastList.newInstance(); + updateAreas = new LinkedList<ModelForm.UpdateArea>(); } updateAreas.add(new ModelForm.UpdateArea("submit", formId, backgroundSubmitRefreshTarget)); } Modified: ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/widget/src/org/ofbiz/widget/html/HtmlMenuWrapperImage.java URL: http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/widget/src/org/ofbiz/widget/html/HtmlMenuWrapperImage.java?rev=1636282&r1=1636281&r2=1636282&view=diff ============================================================================== --- ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/widget/src/org/ofbiz/widget/html/HtmlMenuWrapperImage.java (original) +++ ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/widget/src/org/ofbiz/widget/html/HtmlMenuWrapperImage.java Mon Nov 3 06:54:16 2014 @@ -30,6 +30,7 @@ import org.ofbiz.base.util.UtilMisc; 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.menu.MenuStringRenderer; import org.ofbiz.widget.menu.ModelMenuItem; import org.xml.sax.SAXException; @@ -67,7 +68,7 @@ public class HtmlMenuWrapperImage extend for (ModelMenuItem menuItem : modelMenu.getMenuItemList()) { String contentId = menuItem.getAssociatedContentId(dummyMap); //if (Debug.infoOn()) Debug.logInfo("in init, contentId:" + contentId, module); - GenericValue webSitePublishPoint = delegator.findOne("WebSitePublishPoint", UtilMisc.toMap("contentId", contentId), true); + GenericValue webSitePublishPoint = EntityQuery.use(delegator).from("WebSitePublishPoint").where("contentId", contentId).cache().queryOne(); String menuItemName = menuItem.getName(); //if (Debug.infoOn()) Debug.logInfo("in init, menuItemName:" + menuItemName, module); //if (Debug.infoOn()) Debug.logInfo("in init, webSitePublishPoint:" + webSitePublishPoint, module); Modified: ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/widget/src/org/ofbiz/widget/html/HtmlScreenRenderer.java URL: http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/widget/src/org/ofbiz/widget/html/HtmlScreenRenderer.java?rev=1636282&r1=1636281&r2=1636282&view=diff ============================================================================== --- ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/widget/src/org/ofbiz/widget/html/HtmlScreenRenderer.java (original) +++ ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/widget/src/org/ofbiz/widget/html/HtmlScreenRenderer.java Mon Nov 3 06:54:16 2014 @@ -29,8 +29,6 @@ import javax.servlet.ServletContext; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; -import javolution.util.FastMap; - import org.ofbiz.base.util.Debug; import org.ofbiz.base.util.GeneralException; import org.ofbiz.base.util.UtilFormatOut; @@ -52,8 +50,8 @@ import org.ofbiz.widget.form.ModelForm; import org.ofbiz.widget.menu.MenuStringRenderer; import org.ofbiz.widget.menu.ModelMenu; import org.ofbiz.widget.screen.ModelScreenWidget; -import org.ofbiz.widget.screen.ScreenStringRenderer; import org.ofbiz.widget.screen.ModelScreenWidget.ColumnContainer; +import org.ofbiz.widget.screen.ScreenStringRenderer; /** * Widget Library - HTML Form Renderer implementation @@ -84,14 +82,14 @@ public class HtmlScreenRenderer extends } public void renderSectionBegin(Appendable writer, Map<String, Object> context, ModelScreenWidget.Section section) throws IOException { - if (section.isMainSection) { + if (section.isMainSection()) { this.widgetCommentsEnabled = ModelWidget.widgetBoundaryCommentsEnabled(context); } - renderBeginningBoundaryComment(writer, section.isMainSection?"Screen":"Section Widget", section); + renderBeginningBoundaryComment(writer, section.isMainSection()?"Screen":"Section Widget", section); } public void renderSectionEnd(Appendable writer, Map<String, Object> context, ModelScreenWidget.Section section) throws IOException { - renderEndingBoundaryComment(writer, section.isMainSection?"Screen":"Section Widget", section); + renderEndingBoundaryComment(writer, section.isMainSection()?"Screen":"Section Widget", section); } public void renderContainerBegin(Appendable writer, Map<String, Object> context, ModelScreenWidget.Container container) throws IOException { @@ -667,7 +665,7 @@ public class HtmlScreenRenderer extends Delegator delegator = (Delegator) context.get("delegator"); // make a new map for content rendering; so our current map does not get clobbered - Map<String, Object> contentContext = FastMap.newInstance(); + Map<String, Object> contentContext = new HashMap<String, Object>(); contentContext.putAll(context); String dataResourceId = (String)contentContext.get("dataResourceId"); if (Debug.verboseOn()) Debug.logVerbose("expandedContentId:" + expandedContentId, module); @@ -800,7 +798,7 @@ public class HtmlScreenRenderer extends Delegator delegator = (Delegator) context.get("delegator"); // create a new map for the content rendering; so our current context does not get overwritten! - Map<String, Object> contentContext = FastMap.newInstance(); + Map<String, Object> contentContext = new HashMap<String, Object>(); contentContext.putAll(context); try { Modified: ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/widget/src/org/ofbiz/widget/menu/ModelMenu.java URL: http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/widget/src/org/ofbiz/widget/menu/ModelMenu.java?rev=1636282&r1=1636281&r2=1636282&view=diff ============================================================================== --- ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/widget/src/org/ofbiz/widget/menu/ModelMenu.java (original) +++ ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/widget/src/org/ofbiz/widget/menu/ModelMenu.java Mon Nov 3 06:54:16 2014 @@ -30,6 +30,8 @@ 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.ModelWidgetAction; +import org.ofbiz.widget.ModelWidgetVisitor; import org.w3c.dom.Element; /** @@ -40,35 +42,27 @@ public class ModelMenu extends ModelWidg public static final String module = ModelMenu.class.getName(); - protected String menuLocation; - protected String type; - protected String target; - protected String id; - protected FlexibleStringExpander title; - protected String tooltip; + protected List<ModelWidgetAction> actions; + protected String defaultAlign; + protected String defaultAlignStyle; + protected FlexibleStringExpander defaultAssociatedContentId; + protected String defaultCellWidth; + protected String defaultDisabledTitleStyle; protected String defaultEntityName; - protected String defaultTitleStyle; - protected String defaultWidgetStyle; - protected String defaultTooltipStyle; - protected String defaultSelectedStyle; + protected Boolean defaultHideIfSelected; protected String defaultMenuItemName; - protected String defaultPermissionOperation; protected String defaultPermissionEntityAction; - protected FlexibleStringExpander defaultAssociatedContentId; + protected String defaultPermissionOperation; protected String defaultPermissionStatusId; protected String defaultPrivilegeEnumId; - protected String orientation = "horizontal"; - protected String menuWidth; - protected String defaultCellWidth; - protected Boolean defaultHideIfSelected; - protected String defaultDisabledTitleStyle; - protected FlexibleMapAccessor<String> selectedMenuItemContextFieldName; - protected FlexibleStringExpander menuContainerStyleExdr; - protected String defaultAlign; - protected String defaultAlignStyle; - protected String fillStyle; + protected String defaultSelectedStyle; + protected String defaultTitleStyle; + protected String defaultTooltipStyle; + protected String defaultWidgetStyle; protected FlexibleStringExpander extraIndex; - + protected String fillStyle; + protected String id; + protected FlexibleStringExpander menuContainerStyleExdr; /** This List will contain one copy of each item for each item name in the order * they were encountered in the service, entity, or menu definition; item definitions * with constraints will also be in this list but may appear multiple times for the same @@ -79,19 +73,22 @@ public class ModelMenu extends ModelWidg * list clean and implement the override features for item definitions. */ protected List<ModelMenuItem> menuItemList = new ArrayList<ModelMenuItem>(); - /** This Map is keyed with the item name and has a ModelMenuItem for the value; items * with conditions will not be put in this Map so item definition overrides for items * with conditions is not possible. */ protected Map<String, ModelMenuItem> menuItemMap = new HashMap<String, ModelMenuItem>(); - - protected List<ModelMenuAction> actions; + protected String menuLocation; + protected String menuWidth; + protected String orientation = "horizontal"; + protected FlexibleMapAccessor<String> selectedMenuItemContextFieldName; + protected String target; + protected FlexibleStringExpander title; + protected String tooltip; + protected String type; // ===== CONSTRUCTORS ===== - /** Default Constructor */ - public ModelMenu() {} /** XML Constructor */ public ModelMenu(Element menuElement) { @@ -157,7 +154,7 @@ public class ModelMenu extends ModelWidg this.selectedMenuItemContextFieldName = parent.selectedMenuItemContextFieldName; this.menuContainerStyleExdr = parent.menuContainerStyleExdr; if (parent.actions != null) { - this.actions = new ArrayList<ModelMenuAction>(); + this.actions = new ArrayList<ModelWidgetAction>(); this.actions.addAll(parent.actions); } } @@ -230,7 +227,7 @@ public class ModelMenu extends ModelWidg this.actions = ModelMenuAction.readSubActions(this, actionsElement); } else { this.actions.addAll(ModelMenuAction.readSubActions(this, actionsElement)); - ArrayList<ModelMenuAction> actionsList = (ArrayList<ModelMenuAction>)this.actions; + ArrayList<ModelWidgetAction> actionsList = (ArrayList<ModelWidgetAction>)this.actions; actionsList.trimToSize(); } } @@ -283,7 +280,7 @@ public class ModelMenu extends ModelWidg * use the same menu definitions for many types of menu UIs */ public void renderMenuString(Appendable writer, Map<String, Object> context, MenuStringRenderer menuStringRenderer) throws IOException { - ModelMenuAction.runSubActions(this.actions, context); + ModelWidgetAction.runSubActions(this.actions, context); if ("simple".equals(this.type)) { this.renderSimpleMenuString(writer, context, menuStringRenderer); } else { @@ -368,7 +365,7 @@ public class ModelMenu extends ModelWidg } public String getCurrentMenuName(Map<String, Object> context) { - return this.name; + return getName(); } public String getId() { @@ -389,7 +386,7 @@ public class ModelMenu extends ModelWidg @Override public String getBoundaryCommentName() { - return menuLocation + "#" + name; + return menuLocation + "#" + getName(); } /** @@ -445,13 +442,6 @@ public class ModelMenu extends ModelWidg /** * @param string */ - public void setName(String string) { - this.name = string; - } - - /** - * @param string - */ public void setTarget(String string) { this.target = string; } @@ -607,4 +597,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/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/widget/src/org/ofbiz/widget/menu/ModelMenuAction.java URL: http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/widget/src/org/ofbiz/widget/menu/ModelMenuAction.java?rev=1636282&r1=1636281&r2=1636282&view=diff ============================================================================== --- ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/widget/src/org/ofbiz/widget/menu/ModelMenuAction.java (original) +++ ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/widget/src/org/ofbiz/widget/menu/ModelMenuAction.java Mon Nov 3 06:54:16 2014 @@ -18,8 +18,10 @@ *******************************************************************************/ package org.ofbiz.widget.menu; -import java.text.MessageFormat; import java.util.ArrayList; +import java.util.Collections; +import java.util.HashMap; +import java.util.LinkedList; import java.util.List; import java.util.Locale; import java.util.Map; @@ -28,94 +30,40 @@ import java.util.TimeZone; import javax.servlet.ServletContext; import javax.servlet.http.HttpSession; -import javolution.util.FastList; -import javolution.util.FastMap; - import org.ofbiz.base.util.Debug; import org.ofbiz.base.util.GeneralException; import org.ofbiz.base.util.ObjectType; -import org.ofbiz.base.util.ScriptUtil; -import org.ofbiz.base.util.UtilFormatOut; import org.ofbiz.base.util.UtilGenerics; -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.collections.ResourceBundleMapWrapper; import org.ofbiz.base.util.string.FlexibleStringExpander; -import org.ofbiz.entity.finder.ByAndFinder; -import org.ofbiz.entity.finder.ByConditionFinder; -import org.ofbiz.entity.finder.PrimaryKeyFinder; -import org.ofbiz.entity.util.EntityUtilProperties; -import org.ofbiz.service.GenericServiceException; -import org.ofbiz.service.ModelService; -import org.ofbiz.widget.WidgetWorker; +import org.ofbiz.widget.ModelActionVisitor; +import org.ofbiz.widget.ModelWidgetAction; import org.w3c.dom.Element; - /** * Widget Library - Screen model class */ public abstract class ModelMenuAction { - public static final String module = ModelMenuAction.class.getName(); - - protected ModelMenu modelMenu; - protected ModelMenuItem modelMenuItem; - - public ModelMenuAction(ModelMenu modelMenu, Element actionElement) { - this.modelMenu = modelMenu; - if (Debug.verboseOn()) Debug.logVerbose("Reading Screen action with name: " + actionElement.getNodeName(), module); - } - - public ModelMenuAction(ModelMenuItem modelMenuItem, Element actionElement) { - this.modelMenuItem = modelMenuItem; - this.modelMenu = modelMenuItem.getModelMenu(); - if (Debug.verboseOn()) Debug.logVerbose("Reading Screen action with name: " + actionElement.getNodeName(), module); - } - public abstract void runAction(Map<String, Object> context); - - public static List<ModelMenuAction> readSubActions(ModelMenuItem modelMenuItem, Element parentElement) { - return readSubActions(modelMenuItem.getModelMenu(), parentElement); - } + public static final String module = ModelMenuAction.class.getName(); - public static List<ModelMenuAction> readSubActions(ModelMenu modelMenu, Element parentElement) { + public static List<ModelWidgetAction> readSubActions(ModelMenu modelMenu, Element parentElement) { List<? extends Element> actionElementList = UtilXml.childElementList(parentElement); - ArrayList<ModelMenuAction> actions = new ArrayList<ModelMenuAction>(actionElementList.size()); + List<ModelWidgetAction> actions = new ArrayList<ModelWidgetAction>(actionElementList.size()); for (Element actionElement : actionElementList) { if ("set".equals(actionElement.getNodeName())) { actions.add(new SetField(modelMenu, actionElement)); - } else if ("property-map".equals(actionElement.getNodeName())) { - actions.add(new PropertyMap(modelMenu, actionElement)); - } else if ("property-to-field".equals(actionElement.getNodeName())) { - actions.add(new PropertyToField(modelMenu, actionElement)); - } else if ("script".equals(actionElement.getNodeName())) { - actions.add(new Script(modelMenu, actionElement)); - } else if ("service".equals(actionElement.getNodeName())) { - actions.add(new Service(modelMenu, actionElement)); - } else if ("entity-one".equals(actionElement.getNodeName())) { - actions.add(new EntityOne(modelMenu, actionElement)); - } else if ("entity-and".equals(actionElement.getNodeName())) { - actions.add(new EntityAnd(modelMenu, actionElement)); - } else if ("entity-condition".equals(actionElement.getNodeName())) { - actions.add(new EntityCondition(modelMenu, actionElement)); } else { - throw new IllegalArgumentException("Action element not supported with name: " + actionElement.getNodeName()); + actions.add(ModelWidgetAction.toModelWidgetAction(modelMenu, actionElement)); } } - actions.trimToSize(); - return actions; + return Collections.unmodifiableList(actions); } - public static void runSubActions(List<ModelMenuAction> actions, Map<String, Object> context) { - if (actions == null) return; - for (ModelMenuAction action : actions) { - if (Debug.verboseOn()) Debug.logVerbose("Running screen action " + action.getClass().getName(), module); - action.runAction(context); - } - } - - public static class SetField extends ModelMenuAction { + @SuppressWarnings("serial") + public static class SetField extends ModelWidgetAction { protected FlexibleMapAccessor<Object> field; protected FlexibleMapAccessor<Object> fromField; protected FlexibleStringExpander valueExdr; @@ -140,6 +88,7 @@ public abstract class ModelMenuAction { } } + @SuppressWarnings("rawtypes") @Override public void runAction(Map<String, Object> context) { String globalStr = this.globalExdr.expandString(context); @@ -189,9 +138,9 @@ public abstract class ModelMenuAction { if (UtilValidate.isNotEmpty(this.type)) { if ("NewMap".equals(this.type)) { - newValue = FastMap.newInstance(); + newValue = new HashMap(); } else if ("NewList".equals(this.type)) { - newValue = FastList.newInstance(); + newValue = new LinkedList(); } else { try { newValue = ObjectType.simpleTypeConvert(newValue, this.type, null, (TimeZone) context.get("timeZone"), (Locale) context.get("locale"), true); @@ -236,257 +185,10 @@ public abstract class ModelMenuAction { this.field.put(page, newValue); } } - } - - public static class PropertyMap extends ModelMenuAction { - protected FlexibleStringExpander resourceExdr; - protected FlexibleMapAccessor<ResourceBundleMapWrapper> mapNameAcsr; - protected FlexibleStringExpander globalExdr; - - public PropertyMap(ModelMenu modelMenu, Element setElement) { - super (modelMenu, setElement); - this.resourceExdr = FlexibleStringExpander.getInstance(setElement.getAttribute("resource")); - this.mapNameAcsr = FlexibleMapAccessor.getInstance(setElement.getAttribute("map-name")); - this.globalExdr = FlexibleStringExpander.getInstance(setElement.getAttribute("global")); - } - - @Override - public void runAction(Map<String, Object> context) { - String globalStr = this.globalExdr.expandString(context); - // default to false - boolean global = "true".equals(globalStr); - - Locale locale = (Locale) context.get("locale"); - String resource = this.resourceExdr.expandString(context, locale); - - ResourceBundleMapWrapper existingPropMap = this.mapNameAcsr.get(context); - if (existingPropMap == null) { - this.mapNameAcsr.put(context, UtilProperties.getResourceBundleMap(resource, locale, context)); - } else { - try { - existingPropMap.addBottomResourceBundle(resource); - } catch (IllegalArgumentException e) { - // log the error, but don't let it kill everything just for a typo or bad char in an l10n file - Debug.logError(e, "Error adding resource bundle [" + resource + "]: " + e.toString(), module); - } - } - - if (global) { - Map<String, Object> globalCtx = UtilGenerics.checkMap(context.get("globalContext")); - if (globalCtx != null) { - ResourceBundleMapWrapper globalExistingPropMap = this.mapNameAcsr.get(globalCtx); - if (globalExistingPropMap == null) { - this.mapNameAcsr.put(globalCtx, UtilProperties.getResourceBundleMap(resource, locale, context)); - } else { - // is it the same object? if not add it in here too... - if (existingPropMap != globalExistingPropMap) { - try { - globalExistingPropMap.addBottomResourceBundle(resource); - } catch (IllegalArgumentException e) { - // log the error, but don't let it kill everything just for a typo or bad char in an l10n file - Debug.logError(e, "Error adding resource bundle [" + resource + "]: " + e.toString(), module); - } - } - } - } - } - } - } - - public static class PropertyToField extends ModelMenuAction { - - protected FlexibleStringExpander resourceExdr; - protected FlexibleStringExpander propertyExdr; - protected FlexibleMapAccessor<Object> fieldAcsr; - protected FlexibleStringExpander defaultExdr; - protected boolean noLocale; - protected FlexibleMapAccessor<List<? extends Object>> argListAcsr; - protected FlexibleStringExpander globalExdr; - - public PropertyToField(ModelMenu modelMenu, Element setElement) { - super (modelMenu, setElement); - this.resourceExdr = FlexibleStringExpander.getInstance(setElement.getAttribute("resource")); - this.propertyExdr = FlexibleStringExpander.getInstance(setElement.getAttribute("property")); - this.fieldAcsr = FlexibleMapAccessor.getInstance(setElement.getAttribute("field")); - this.defaultExdr = FlexibleStringExpander.getInstance(setElement.getAttribute("default")); - noLocale = "true".equals(setElement.getAttribute("no-locale")); - this.argListAcsr = FlexibleMapAccessor.getInstance(setElement.getAttribute("arg-list-name")); - this.globalExdr = FlexibleStringExpander.getInstance(setElement.getAttribute("global")); - } @Override - public void runAction(Map<String, Object> context) { - // default to false - - Locale locale = (Locale) context.get("locale"); - String resource = this.resourceExdr.expandString(context, locale); - String property = this.propertyExdr.expandString(context, locale); - - String value = null; - if (noLocale) { - value = EntityUtilProperties.getPropertyValue(resource, property, WidgetWorker.getDelegator(context)); - } else { - value = EntityUtilProperties.getMessage(resource, property, locale, WidgetWorker.getDelegator(context)); - } - if (UtilValidate.isEmpty(value)) { - value = this.defaultExdr.expandString(context); - } - - // note that expanding the value string here will handle defaultValue and the string from - // the properties file; if we decide later that we don't want the string from the properties - // file to be expanded we should just expand the defaultValue at the beginning of this method. - value = FlexibleStringExpander.expandString(value, context); - - if (!argListAcsr.isEmpty()) { - List<? extends Object> argList = argListAcsr.get(context); - if (UtilValidate.isNotEmpty(argList)) { - value = MessageFormat.format(value, argList.toArray()); - } - } - - fieldAcsr.put(context, value); - } - } - - public static class Script extends ModelMenuAction { - protected String location; - protected String method; - - public Script(ModelMenu modelMenu, Element scriptElement) { - super (modelMenu, scriptElement); - String scriptLocation = scriptElement.getAttribute("location"); - this.location = WidgetWorker.getScriptLocation(scriptLocation); - this.method = WidgetWorker.getScriptMethodName(scriptLocation); - } - - @Override - public void runAction(Map<String, Object> context) { - ScriptUtil.executeScript(this.location, this.method, context); - } - } - - public static class Service extends ModelMenuAction { - protected FlexibleStringExpander serviceNameExdr; - protected FlexibleMapAccessor<Map<String, Object>> resultMapNameAcsr; - protected FlexibleStringExpander autoFieldMapExdr; - protected Map<FlexibleMapAccessor<Object>, FlexibleMapAccessor<Object>> fieldMap; - - public Service(ModelMenu modelMenu, Element serviceElement) { - super (modelMenu, serviceElement); - this.serviceNameExdr = FlexibleStringExpander.getInstance(serviceElement.getAttribute("service-name")); - this.resultMapNameAcsr = FlexibleMapAccessor.getInstance(serviceElement.getAttribute("result-map-name")); - this.autoFieldMapExdr = FlexibleStringExpander.getInstance(serviceElement.getAttribute("auto-field-map")); - - List<? extends Element> fieldMapElementList = UtilXml.childElementList(serviceElement, "field-map"); - if (fieldMapElementList.size() > 0) { - this.fieldMap = FastMap.newInstance(); - for (Element fieldMapElement: fieldMapElementList) { - // set the env-name for each field-name, noting that if no field-name is specified it defaults to the env-name - this.fieldMap.put( - FlexibleMapAccessor.getInstance(UtilFormatOut.checkEmpty(fieldMapElement.getAttribute("field-name"), fieldMapElement.getAttribute("env-name"))), - FlexibleMapAccessor.getInstance(fieldMapElement.getAttribute("env-name"))); - } - } - } - - @Override - public void runAction(Map<String, Object> context) { - String serviceNameExpanded = this.serviceNameExdr.expandString(context); - if (UtilValidate.isEmpty(serviceNameExpanded)) { - throw new IllegalArgumentException("Service name was empty, expanded from: " + this.serviceNameExdr.getOriginal()); - } - - String autoFieldMapString = this.autoFieldMapExdr.expandString(context); - boolean autoFieldMapBool = !"false".equals(autoFieldMapString); - - try { - Map<String, Object> serviceContext = null; - if (autoFieldMapBool) { - serviceContext = WidgetWorker.getDispatcher(context).getDispatchContext().makeValidContext(serviceNameExpanded, ModelService.IN_PARAM, context); - } else { - serviceContext = FastMap.newInstance(); - } - - if (this.fieldMap != null) { - for (Map.Entry<FlexibleMapAccessor<Object>, FlexibleMapAccessor<Object>> entry: this.fieldMap.entrySet()) { - FlexibleMapAccessor<Object> serviceContextFieldAcsr = entry.getKey(); - FlexibleMapAccessor<Object> contextEnvAcsr = entry.getValue(); - serviceContextFieldAcsr.put(serviceContext, contextEnvAcsr.get(context)); - } - } - - Map<String, Object> result = WidgetWorker.getDispatcher(context).runSync(serviceNameExpanded, serviceContext); - - if (!this.resultMapNameAcsr.isEmpty()) { - this.resultMapNameAcsr.put(context, result); - } else { - context.putAll(result); - } - } catch (GenericServiceException e) { - String errMsg = "Error calling service with name " + serviceNameExpanded + ": " + e.toString(); - Debug.logError(e, errMsg, module); - throw new IllegalArgumentException(errMsg); - } - } - } - - public static class EntityOne extends ModelMenuAction { - protected PrimaryKeyFinder finder; - - public EntityOne(ModelMenu modelMenu, Element entityOneElement) { - super (modelMenu, entityOneElement); - finder = new PrimaryKeyFinder(entityOneElement); - } - - @Override - public void runAction(Map<String, Object> context) { - try { - finder.runFind(context, WidgetWorker.getDelegator(context)); - } catch (GeneralException e) { - String errMsg = "Error doing entity query by condition: " + e.toString(); - Debug.logError(e, errMsg, module); - throw new IllegalArgumentException(errMsg); - } - } - } - - public static class EntityAnd extends ModelMenuAction { - protected ByAndFinder finder; - - public EntityAnd(ModelMenu modelMenu, Element entityAndElement) { - super (modelMenu, entityAndElement); - finder = new ByAndFinder(entityAndElement); - } - - @Override - public void runAction(Map<String, Object> context) { - try { - finder.runFind(context, WidgetWorker.getDelegator(context)); - } catch (GeneralException e) { - String errMsg = "Error doing entity query by condition: " + e.toString(); - Debug.logError(e, errMsg, module); - throw new IllegalArgumentException(errMsg); - } - } - } - - public static class EntityCondition extends ModelMenuAction { - ByConditionFinder finder; - - public EntityCondition(ModelMenu modelMenu, Element entityConditionElement) { - super (modelMenu, entityConditionElement); - finder = new ByConditionFinder(entityConditionElement); - } - - @Override - public void runAction(Map<String, Object> context) { - try { - finder.runFind(context, WidgetWorker.getDelegator(context)); - } catch (GeneralException e) { - String errMsg = "Error doing entity query by condition: " + e.toString(); - Debug.logError(e, errMsg, module); - throw new IllegalArgumentException(errMsg); - } + public void accept(ModelActionVisitor visitor) { + visitor.visit(this); } } } Modified: ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/widget/src/org/ofbiz/widget/menu/ModelMenuCondition.java URL: http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/widget/src/org/ofbiz/widget/menu/ModelMenuCondition.java?rev=1636282&r1=1636281&r2=1636282&view=diff ============================================================================== --- ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/widget/src/org/ofbiz/widget/menu/ModelMenuCondition.java (original) +++ ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/widget/src/org/ofbiz/widget/menu/ModelMenuCondition.java Mon Nov 3 06:54:16 2014 @@ -19,13 +19,12 @@ package org.ofbiz.widget.menu; import java.lang.reflect.Method; +import java.util.LinkedList; import java.util.List; import java.util.Locale; import java.util.Map; import java.util.TimeZone; -import javolution.util.FastList; - import org.apache.oro.text.regex.MalformedPatternException; import org.apache.oro.text.regex.Pattern; import org.apache.oro.text.regex.PatternMatcher; @@ -101,7 +100,7 @@ public class ModelMenuCondition { } public static List<MenuCondition> readSubConditions(ModelMenuItem modelMenuItem, Element conditionElement) { - List<MenuCondition> condList = FastList.newInstance(); + List<MenuCondition> condList = new LinkedList<MenuCondition>(); List<? extends Element> subElementList = UtilXml.childElementList(conditionElement); for (Element subElement: subElementList) { condList.add(readCondition(modelMenuItem, subElement)); @@ -422,7 +421,7 @@ public class ModelMenuCondition { fieldVal = ""; } - List<Object> messages = FastList.newInstance(); + List<Object> messages = new LinkedList<Object>(); Boolean resultBool = BaseCompare.doRealCompare(fieldVal, value, operator, type, format, messages, null, null, true); if (messages.size() > 0) { messages.add(0, "Error with comparison in if-compare between field [" + fieldAcsr.toString() + "] with value [" + fieldVal + "] and value [" + value + "] with operator [" + operator + "] and type [" + type + "]: "); @@ -473,7 +472,7 @@ public class ModelMenuCondition { fieldVal = ""; } - List<Object> messages = FastList.newInstance(); + List<Object> messages = new LinkedList<Object>(); Boolean resultBool = BaseCompare.doRealCompare(fieldVal, toFieldVal, operator, type, format, messages, null, null, false); if (messages.size() > 0) { messages.add(0, "Error with comparison in if-compare-field between field [" + fieldAcsr.toString() + "] with value [" + fieldVal + "] and to-field [" + toFieldVal.toString() + "] with value [" + toFieldVal + "] with operator [" + operator + "] and type [" + type + "]: "); Modified: ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/widget/src/org/ofbiz/widget/menu/ModelMenuItem.java URL: http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/widget/src/org/ofbiz/widget/menu/ModelMenuItem.java?rev=1636282&r1=1636281&r2=1636282&view=diff ============================================================================== --- ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/widget/src/org/ofbiz/widget/menu/ModelMenuItem.java (original) +++ ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/widget/src/org/ofbiz/widget/menu/ModelMenuItem.java Mon Nov 3 06:54:16 2014 @@ -19,6 +19,7 @@ package org.ofbiz.widget.menu; import java.io.IOException; +import java.util.ArrayList; import java.util.HashMap; import java.util.LinkedList; import java.util.List; @@ -27,9 +28,6 @@ import java.util.Map; import javax.xml.parsers.ParserConfigurationException; -import javolution.util.FastList; -import javolution.util.FastMap; - import org.ofbiz.base.util.Debug; import org.ofbiz.base.util.StringUtil; import org.ofbiz.base.util.UtilFormatOut; @@ -39,86 +37,105 @@ 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.WidgetWorker; +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; import org.w3c.dom.Element; import org.xml.sax.SAXException; /** * Widget Library - Form model class */ -public class ModelMenuItem { +@SuppressWarnings("serial") +public class ModelMenuItem extends ModelWidget { public static final String module = ModelMenuItem.class.getName(); - protected ModelMenu modelMenu; - - protected Map<String, Object> dataMap = new HashMap<String, Object>(); - protected String name; - protected String entityName; - protected FlexibleStringExpander title; - protected FlexibleStringExpander tooltip; - protected FlexibleStringExpander parentPortalPageId; - protected String titleStyle; - protected String disabledTitleStyle; - protected String widgetStyle; - protected String tooltipStyle; - protected String selectedStyle; - protected Integer position = null; - + protected List<ModelWidgetAction> actions; + protected String align; + protected String alignStyle; protected FlexibleStringExpander associatedContentId; protected String cellWidth; - protected Boolean hideIfSelected; - protected Boolean hasPermission; + protected ModelMenuCondition condition; + protected Map<String, Object> dataMap = new HashMap<String, Object>(); + protected boolean disabled = false; + protected String disabledTitleStyle; protected String disableIfEmpty; - protected ModelMenu subMenu; + protected String entityName; + protected Boolean hasPermission; + protected Boolean hideIfSelected; protected Link link; - + /** This List will contain one copy of each item for each item name in the order + * they were encountered in the service, entity, or menu definition; item definitions + * with constraints will also be in this list but may appear multiple times for the same + * item name. + * + * When rendering the menu the order in this list should be following and it should not be + * necessary to use the Map. The Map is used when loading the menu definition to keep the + * list clean and implement the override features for item definitions. + */ protected List<ModelMenuItem> menuItemList = new LinkedList<ModelMenuItem>(); + /** This Map is keyed with the item name and has a ModelMenuItem for the value; items + * with conditions will not be put in this Map so item definition overrides for items + * with conditions is not possible. + */ protected Map<String, ModelMenuItem> menuItemMap = new HashMap<String, ModelMenuItem>(); - + protected ModelMenu modelMenu; + protected String overrideName = null; protected ModelMenuItem parentMenuItem; - protected ModelMenuCondition condition; - protected boolean disabled = false; - protected List<ModelMenuAction> actions; - protected String align; - protected String alignStyle; + protected FlexibleStringExpander parentPortalPageId; + protected Integer position = null; + protected String selectedStyle; + protected ModelMenu subMenu; + protected FlexibleStringExpander title; + protected String titleStyle; + protected FlexibleStringExpander tooltip; + protected String tooltipStyle; + protected String widgetStyle; // ===== CONSTRUCTORS ===== - /** Default Constructor */ - public ModelMenuItem(ModelMenu modelMenu) { - this.modelMenu = modelMenu; + public ModelMenuItem(String name) { + super(name); } - /** XML Constructor */ - public ModelMenuItem(Element fieldElement, ModelMenuItem modelMenuItem) { - parentMenuItem = modelMenuItem; - loadMenuItem(fieldElement, modelMenuItem.getModelMenu()); + public ModelMenuItem(Element menuItemElement) { + super(menuItemElement); + loadMenuItem(menuItemElement); } + public ModelMenuItem(Element menuItemElement, ModelMenu modelMenu) { + super(menuItemElement); + loadMenuItem(menuItemElement, modelMenu); + } - public ModelMenuItem(Element fieldElement, ModelMenu modelMenu) { - loadMenuItem(fieldElement, modelMenu); + public ModelMenuItem(Element menuItemElement, ModelMenuItem modelMenuItem) { + super(menuItemElement); + parentMenuItem = modelMenuItem; + loadMenuItem(menuItemElement, modelMenuItem.getModelMenu()); } - public void loadMenuItem(Element fieldElement, ModelMenu modelMenu) { + private void loadMenuItem(Element menuItemElement, ModelMenu modelMenu) { this.modelMenu = modelMenu; - this.name = fieldElement.getAttribute("name"); - this.entityName = fieldElement.getAttribute("entity-name"); - this.setTitle(fieldElement.getAttribute("title")); - this.setTooltip(fieldElement.getAttribute("tooltip")); - this.setParentPortalPageId(fieldElement.getAttribute("parent-portal-page-value")); - this.titleStyle = fieldElement.getAttribute("title-style"); - this.disabledTitleStyle = fieldElement.getAttribute("disabled-title-style"); - this.widgetStyle = fieldElement.getAttribute("widget-style"); - this.tooltipStyle = fieldElement.getAttribute("tooltip-style"); - this.selectedStyle = fieldElement.getAttribute("selected-style"); - this.setHideIfSelected(fieldElement.getAttribute("hide-if-selected")); - this.disableIfEmpty = fieldElement.getAttribute("disable-if-empty"); - this.align = fieldElement.getAttribute("align"); - this.alignStyle = fieldElement.getAttribute("align-style"); + loadMenuItem(menuItemElement); + } - String positionStr = fieldElement.getAttribute("position"); + private void loadMenuItem(Element menuItemElement) { + this.entityName = menuItemElement.getAttribute("entity-name"); + this.setTitle(menuItemElement.getAttribute("title")); + this.setTooltip(menuItemElement.getAttribute("tooltip")); + this.setParentPortalPageId(menuItemElement.getAttribute("parent-portal-page-value")); + this.titleStyle = menuItemElement.getAttribute("title-style"); + this.disabledTitleStyle = menuItemElement.getAttribute("disabled-title-style"); + this.widgetStyle = menuItemElement.getAttribute("widget-style"); + this.tooltipStyle = menuItemElement.getAttribute("tooltip-style"); + this.selectedStyle = menuItemElement.getAttribute("selected-style"); + this.setHideIfSelected(menuItemElement.getAttribute("hide-if-selected")); + this.disableIfEmpty = menuItemElement.getAttribute("disable-if-empty"); + this.align = menuItemElement.getAttribute("align"); + this.alignStyle = menuItemElement.getAttribute("align-style"); + String positionStr = menuItemElement.getAttribute("position"); try { if (UtilValidate.isNotEmpty(positionStr)) { position = Integer.valueOf(positionStr); @@ -128,12 +145,12 @@ public class ModelMenuItem { positionStr + "], using the default of the menu renderer", module); } - this.setAssociatedContentId(fieldElement.getAttribute("associated-content-id")); - this.cellWidth = fieldElement.getAttribute("cell-width"); + this.setAssociatedContentId(menuItemElement.getAttribute("associated-content-id")); + this.cellWidth = menuItemElement.getAttribute("cell-width"); - dataMap.put("name", this.name); + dataMap.put("name", getName()); - Element subMenuElement = UtilXml.firstChildElement(fieldElement, "sub-menu"); + Element subMenuElement = UtilXml.firstChildElement(menuItemElement, "sub-menu"); if (subMenuElement != null) { String subMenuLocation = subMenuElement.getAttribute("location"); String subMenuName = subMenuElement.getAttribute("name"); @@ -154,26 +171,26 @@ public class ModelMenuItem { } } - Element linkElement = UtilXml.firstChildElement(fieldElement, "link"); + Element linkElement = UtilXml.firstChildElement(menuItemElement, "link"); if (linkElement != null) { link = new Link(linkElement, this); } // read in add item defs, add/override one by one using the menuItemList and menuItemMap - List<? extends Element> itemElements = UtilXml.childElementList(fieldElement, "menu-item"); + List<? extends Element> itemElements = UtilXml.childElementList(menuItemElement, "menu-item"); for (Element itemElement: itemElements) { ModelMenuItem modelMenuItem = new ModelMenuItem(itemElement, this); modelMenuItem = this.addUpdateMenuItem(modelMenuItem); } // read condition under the "condition" element - Element conditionElement = UtilXml.firstChildElement(fieldElement, "condition"); + Element conditionElement = UtilXml.firstChildElement(menuItemElement, "condition"); if (conditionElement != null) { this.condition = new ModelMenuCondition(this, conditionElement); } // read all actions under the "actions" element Element actionsElement = UtilXml.firstChildElement(conditionElement, "actions"); if (actionsElement != null) { - this.actions = ModelMenuAction.readSubActions(this, actionsElement); + this.actions = ModelWidgetAction.readSubActions(this, actionsElement); } } @@ -217,13 +234,21 @@ public class ModelMenuItem { return this.disabled; } + @Override + public String getName() { + if (this.overrideName != null) { + return this.overrideName; + } + return super.getName(); + } + public void mergeOverrideModelMenuItem(ModelMenuItem overrideMenuItem) { if (overrideMenuItem == null) return; // incorporate updates for values that are not empty in the overrideMenuItem - if (UtilValidate.isNotEmpty(overrideMenuItem.name)) - this.name = overrideMenuItem.name; + if (UtilValidate.isNotEmpty(overrideMenuItem.getName())) + this.overrideName = overrideMenuItem.getName(); if (UtilValidate.isNotEmpty(overrideMenuItem.entityName)) this.entityName = overrideMenuItem.entityName; if (UtilValidate.isNotEmpty(overrideMenuItem.parentPortalPageId)) @@ -264,15 +289,15 @@ public class ModelMenuItem { Locale locale = (Locale) context.get("locale"); //Debug.logInfo("in ModelMenu, name:" + this.getName(), module); if (passed) { - ModelMenuAction.runSubActions(this.actions, context); + ModelWidgetAction.runSubActions(this.actions, context); String parentPortalPageId = this.getParentPortalPageId(context); if (UtilValidate.isNotEmpty(parentPortalPageId)) { List<GenericValue> portalPages = PortalPageWorker.getPortalPages(parentPortalPageId, context); if (UtilValidate.isNotEmpty(portalPages)) { for (GenericValue portalPage : portalPages) { if (UtilValidate.isNotEmpty(portalPage.getString("portalPageName"))) { - ModelMenuItem localItem = new ModelMenuItem(this.getModelMenu()); - localItem.name = portalPage.getString("portalPageId"); + String itemName = portalPage.getString("portalPageId"); + ModelMenuItem localItem = new ModelMenuItem(itemName); localItem.setTitle((String) portalPage.get("portalPageName", locale)); localItem.link = new Link(this); List<WidgetWorker.Parameter> linkParams = localItem.link.getParameterList(); @@ -300,7 +325,7 @@ public class ModelMenuItem { return modelMenu; } - public List<ModelMenuAction> getActions() { + public List<ModelWidgetAction> getActions() { return actions; } @@ -324,11 +349,6 @@ public class ModelMenuItem { } } - - public String getName() { - return name; - } - public int getPosition() { if (this.position == null) { return 1; @@ -429,13 +449,6 @@ public class ModelMenuItem { } /** - * @param string - */ - public void setName(String string) { - name = string; - } - - /** * @param i */ public void setPosition(int i) { @@ -548,7 +561,7 @@ public class ModelMenuItem { } public boolean isSelected(Map<String, Object> context) { - return this.name.equals(modelMenu.getSelectedMenuItemContextFieldName(context)); + return getName().equals(modelMenu.getSelectedMenuItemContextFieldName(context)); } public static class Link { @@ -569,7 +582,7 @@ public class ModelMenuItem { protected WidgetWorker.AutoServiceParameters autoServiceParameters; protected WidgetWorker.AutoEntityParameters autoEntityParameters; protected FlexibleMapAccessor<Map<String, String>> parametersMapAcsr; - protected List<WidgetWorker.Parameter> parameterList = FastList.newInstance(); + protected List<WidgetWorker.Parameter> parameterList = new ArrayList<WidgetWorker.Parameter>(); protected boolean requestConfirmation = false; protected FlexibleStringExpander confirmationMsgExdr; @@ -702,7 +715,7 @@ public class ModelMenuItem { return this.parameterList; } public Map<String, String> getParameterMap(Map<String, Object> context) { - Map<String, String> fullParameterMap = FastMap.newInstance(); + Map<String, String> fullParameterMap = new HashMap<String, String>(); if (this.parametersMapAcsr != null) { Map<String, String> addlParamMap = this.parametersMapAcsr.get(context); @@ -907,4 +920,9 @@ public class ModelMenuItem { } } + + @Override + public void accept(ModelWidgetVisitor visitor) { + visitor.visit(this); + } } Modified: ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/widget/src/org/ofbiz/widget/screen/HtmlWidget.java URL: http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/widget/src/org/ofbiz/widget/screen/HtmlWidget.java?rev=1636282&r1=1636281&r2=1636282&view=diff ============================================================================== --- ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/widget/src/org/ofbiz/widget/screen/HtmlWidget.java (original) +++ ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/widget/src/org/ofbiz/widget/screen/HtmlWidget.java Mon Nov 3 06:54:16 2014 @@ -22,11 +22,10 @@ import java.io.IOException; import java.net.MalformedURLException; import java.util.ArrayList; import java.util.Collection; +import java.util.HashMap; import java.util.List; import java.util.Map; -import javolution.util.FastMap; - import org.ofbiz.base.util.Debug; import org.ofbiz.base.util.GeneralException; import org.ofbiz.base.util.StringUtil; @@ -38,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; @@ -131,16 +131,6 @@ public class HtmlWidget extends ModelScr } } - @Override - public String rawString() { - StringBuilder buffer = new StringBuilder("<html-widget>"); - for (ModelScreenWidget subWidget : subWidgets) { - buffer.append(subWidget.rawString()); - } - buffer.append("</html-widget>"); - return buffer.toString(); - } - public static void renderHtmlTemplate(Appendable writer, FlexibleStringExpander locationExdr, Map<String, Object> context) { String location = locationExdr.expandString(context); //Debug.logInfo("Rendering template at location [" + location + "] with context: \n" + context, module); @@ -213,14 +203,14 @@ public class HtmlWidget extends ModelScr } @Override - public String rawString() { - return "<html-template location=\"" + this.locationExdr.getOriginal() + "\"/>"; + public void accept(ModelWidgetVisitor visitor) { + visitor.visit(this); } } public static class HtmlTemplateDecorator extends ModelScreenWidget { protected FlexibleStringExpander locationExdr; - protected Map<String, HtmlTemplateDecoratorSection> sectionMap = FastMap.newInstance(); + protected Map<String, HtmlTemplateDecoratorSection> sectionMap = new HashMap<String, HtmlTemplateDecoratorSection>(); public HtmlTemplateDecorator(ModelScreen modelScreen, Element htmlTemplateDecoratorElement) { super(modelScreen, htmlTemplateDecoratorElement); @@ -258,8 +248,8 @@ public class HtmlWidget extends ModelScr } @Override - public String rawString() { - return "<html-template-decorator location=\"" + this.locationExdr.getOriginal() + "\"/>"; + public void accept(ModelWidgetVisitor visitor) { + visitor.visit(this); } } @@ -272,7 +262,7 @@ public class HtmlWidget extends ModelScr this.name = htmlTemplateDecoratorSectionElement.getAttribute("name"); // read sub-widgets List<? extends Element> subElementList = UtilXml.childElementList(htmlTemplateDecoratorSectionElement); - this.subWidgets = ModelScreenWidget.readSubWidgets(this.modelScreen, subElementList); + this.subWidgets = ModelScreenWidget.readSubWidgets(getModelScreen(), subElementList); } @Override @@ -282,8 +272,13 @@ public class HtmlWidget extends ModelScr } @Override - public String rawString() { - return "<html-template-decorator-section name=\"" + this.name + "\"/>"; + public void accept(ModelWidgetVisitor visitor) { + visitor.visit(this); } } + + @Override + public void accept(ModelWidgetVisitor visitor) { + visitor.visit(this); + } } |
Free forum by Nabble | Edit this page |