Author: adrianc
Date: Sun Aug 31 10:29:38 2008
New Revision: 690740
URL: http://svn.apache.org/viewvc?rev=690740&view=rev
Log:
Menu widget extend actions bug fix, and some other work.
I changed the LinkedList objects to ArrayList - because ArrayList is more
appropriate for the "build once, read many" type use. It also takes less memory.
Modified:
ofbiz/trunk/framework/widget/src/org/ofbiz/widget/menu/ModelMenu.java
ofbiz/trunk/framework/widget/src/org/ofbiz/widget/menu/ModelMenuAction.java
Modified: ofbiz/trunk/framework/widget/src/org/ofbiz/widget/menu/ModelMenu.java
URL:
http://svn.apache.org/viewvc/ofbiz/trunk/framework/widget/src/org/ofbiz/widget/menu/ModelMenu.java?rev=690740&r1=690739&r2=690740&view=diff
==============================================================================
--- ofbiz/trunk/framework/widget/src/org/ofbiz/widget/menu/ModelMenu.java
(original)
+++ ofbiz/trunk/framework/widget/src/org/ofbiz/widget/menu/ModelMenu.java Sun
Aug 31 10:29:38 2008
@@ -19,9 +19,8 @@
package org.ofbiz.widget.menu;
import java.io.IOException;
+import java.util.ArrayList;
import java.util.HashMap;
-import java.util.Iterator;
-import java.util.LinkedList;
import java.util.List;
import java.util.Map;
@@ -87,7 +86,7 @@
* 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>();
+ 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
@@ -123,12 +122,10 @@
} else {
// try to find a menu definition in the same file
Element rootElement =
menuElement.getOwnerDocument().getDocumentElement();
- List menuElements = UtilXml.childElementList(rootElement,
"menu");
+ List<? extends Element> menuElements =
UtilXml.childElementList(rootElement, "menu");
//Uncomment below to add support for abstract menus
//menuElements.addAll(UtilXml.childElementList(rootElement,
"abstract-menu"));
- Iterator menuElementIter = menuElements.iterator();
- while (menuElementIter.hasNext()) {
- Element menuElementEntry = (Element)
menuElementIter.next();
+ for (Element menuElementEntry : menuElements) {
if
(menuElementEntry.getAttribute("name").equals(parentMenu)) {
parent = new ModelMenu(menuElementEntry, delegator,
dispatcher);
break;
@@ -170,10 +167,9 @@
this.selectedMenuItemContextFieldName =
parent.selectedMenuItemContextFieldName;
this.menuContainerStyleExdr = parent.menuContainerStyleExdr;
if (parent.actions != null) {
- this.actions = new LinkedList<ModelMenuAction>();
+ this.actions = new ArrayList<ModelMenuAction>();
this.actions.addAll(parent.actions);
}
- this.actions = parent.actions;
}
}
@@ -243,14 +239,14 @@
this.actions = ModelMenuAction.readSubActions(this,
actionsElement);
} else {
this.actions.addAll(ModelMenuAction.readSubActions(this,
actionsElement));
+ ArrayList<ModelMenuAction> actionsList =
(ArrayList<ModelMenuAction>)this.actions;
+ actionsList.trimToSize();
}
}
// read in add item defs, add/override one by one using the
menuItemList and menuItemMap
- List itemElements = UtilXml.childElementList(menuElement, "menu-item");
- Iterator itemElementIter = itemElements.iterator();
- while (itemElementIter.hasNext()) {
- Element itemElement = (Element) itemElementIter.next();
+ List<? extends Element> itemElements =
UtilXml.childElementList(menuElement, "menu-item");
+ for (Element itemElement : itemElements) {
ModelMenuItem modelMenuItem = new ModelMenuItem(itemElement, this);
modelMenuItem = this.addUpdateMenuItem(modelMenuItem);
}
@@ -286,9 +282,7 @@
ModelMenuItem existingMenuItem = null;
if (UtilValidate.isEmpty(contentId))
return existingMenuItem;
- Iterator iter = menuItemList.iterator();
- while (iter.hasNext()) {
- ModelMenuItem mi = (ModelMenuItem) iter.next();
+ for (ModelMenuItem mi : this.menuItemList) {
String assocContentId = mi.getAssociatedContentId(context);
if (contentId.equals(assocContentId)) {
existingMenuItem = mi;
@@ -343,9 +337,7 @@
//Debug.logInfo("in ModelMenu, menuItemList:" + menuItemList,
module);
// render each menuItem row, except hidden & ignored rows
//menuStringRenderer.renderFormatSimpleWrapperRows(writer, context,
this);
- Iterator iter = menuItemList.iterator();
- while (iter.hasNext()) {
- ModelMenuItem item = (ModelMenuItem)iter.next();
+ for (ModelMenuItem item : this.menuItemList) {
item.renderMenuItemString(writer, context, menuStringRenderer);
}
@@ -723,7 +715,7 @@
return this.defaultHideIfSelected;
}
- public List getMenuItemList() {
+ public List<ModelMenuItem> getMenuItemList() {
return menuItemList;
}
Modified:
ofbiz/trunk/framework/widget/src/org/ofbiz/widget/menu/ModelMenuAction.java
URL:
http://svn.apache.org/viewvc/ofbiz/trunk/framework/widget/src/org/ofbiz/widget/menu/ModelMenuAction.java?rev=690740&r1=690739&r2=690740&view=diff
==============================================================================
--- ofbiz/trunk/framework/widget/src/org/ofbiz/widget/menu/ModelMenuAction.java
(original)
+++ ofbiz/trunk/framework/widget/src/org/ofbiz/widget/menu/ModelMenuAction.java
Sun Aug 31 10:29:38 2008
@@ -19,8 +19,7 @@
package org.ofbiz.widget.menu;
import java.text.MessageFormat;
-import java.util.Iterator;
-import java.util.LinkedList;
+import java.util.ArrayList;
import java.util.List;
import java.util.Locale;
import java.util.Map;
@@ -73,17 +72,14 @@
public abstract void runAction(Map<String, Object> context);
- public static List readSubActions(ModelMenuItem modelMenuItem, Element
parentElement) {
+ public static List<ModelMenuAction> readSubActions(ModelMenuItem
modelMenuItem, Element parentElement) {
return readSubActions(modelMenuItem.getModelMenu(), parentElement);
}
public static List<ModelMenuAction> readSubActions(ModelMenu modelMenu,
Element parentElement) {
- List<ModelMenuAction> actions = new LinkedList<ModelMenuAction>();
-
- List actionElementList = UtilXml.childElementList(parentElement);
- Iterator actionElementIter = actionElementList.iterator();
- while (actionElementIter.hasNext()) {
- Element actionElement = (Element) actionElementIter.next();
+ List<? extends Element> actionElementList =
UtilXml.childElementList(parentElement);
+ ArrayList<ModelMenuAction> actions = new
ArrayList<ModelMenuAction>(actionElementList.size());
+ for (Element actionElement : actionElementList) {
if ("set".equals(actionElement.getNodeName())) {
actions.add(new SetField(modelMenu, actionElement));
} else if ("property-map".equals(actionElement.getNodeName())) {
@@ -104,16 +100,13 @@
throw new IllegalArgumentException("Action element not
supported with name: " + actionElement.getNodeName());
}
}
-
+ actions.trimToSize();
return actions;
}
- public static void runSubActions(List actions, Map<String, Object>
context) {
+ public static void runSubActions(List<ModelMenuAction> actions,
Map<String, Object> context) {
if (actions == null) return;
-
- Iterator actionIter = actions.iterator();
- while (actionIter.hasNext()) {
- ModelMenuAction action = (ModelMenuAction) actionIter.next();
+ for (ModelMenuAction action : actions) {
if (Debug.verboseOn()) Debug.logVerbose("Running screen action " +
action.getClass().getName(), module);
action.runAction(context);
}