@@ -32,8 +32,8 @@ import com.vaadin.ui.Component; | |||
* from the server. | |||
* <p> | |||
* UIDL is hierarchical, and there are a few methods to retrieve the children, | |||
* {@link #getChildCount()}, {@link #getChildIterator()} | |||
* {@link #getChildString(int)}, {@link #getChildUIDL(int)}. | |||
* {@link #getChildCount()}, {@link #iterator()} {@link #getChildString(int)}, | |||
* {@link #getChildUIDL(int)}. | |||
* </p> | |||
* <p> | |||
* It can be helpful to keep in mind that UIDL was originally modeled in XML, so | |||
@@ -42,7 +42,7 @@ import com.vaadin.ui.Component; | |||
* but will be skipped by the methods mentioned above. | |||
* </p> | |||
*/ | |||
public final class UIDL extends JavaScriptObject { | |||
public final class UIDL extends JavaScriptObject implements Iterable<Object> { | |||
protected UIDL() { | |||
} | |||
@@ -62,7 +62,8 @@ public final class UIDL extends JavaScriptObject { | |||
* Gets the name of this UIDL section, as created with | |||
* {@link PaintTarget#startTag(String) PaintTarget.startTag()} in the | |||
* server-side {@link Component#paint(PaintTarget) Component.paint()} or | |||
* (usually) {@link com.vaadin.ui.AbstractComponent#paintContent(PaintTarget) | |||
* (usually) | |||
* {@link com.vaadin.ui.AbstractComponent#paintContent(PaintTarget) | |||
* AbstractComponent.paintContent()}. Note that if the UIDL corresponds to a | |||
* Paintable, a component identifier will be returned instead - this is used | |||
* internally and is not needed within | |||
@@ -287,8 +288,33 @@ public final class UIDL extends JavaScriptObject { | |||
* </p> | |||
* | |||
* @return an iterator for iterating over UIDL children | |||
* @deprecated As of 8.2, please use {@link #iterator()} instead | |||
*/ | |||
@Deprecated | |||
public Iterator<Object> getChildIterator() { | |||
return iterator(); | |||
} | |||
/** | |||
* Gets an iterator that can be used to iterate trough the children of this | |||
* UIDL. | |||
* <p> | |||
* The Object returned by <code>next()</code> will be appropriately typed - | |||
* if it's UIDL, {@link #getTag()} can be used to check which section is in | |||
* question. | |||
* </p> | |||
* <p> | |||
* The basic use case is to iterate over the children of an UIDL update, and | |||
* update the appropriate part of the widget for each child encountered, e.g | |||
* if <code>getTag()</code> returns "color", one would update the widgets | |||
* color to reflect the value of the "color" section. | |||
* </p> | |||
* | |||
* @return an iterator for iterating over UIDL children | |||
* @since | |||
*/ | |||
@Override | |||
public Iterator<Object> iterator() { | |||
return new Iterator<Object>() { | |||
@@ -545,9 +571,7 @@ public final class UIDL extends JavaScriptObject { | |||
* @return the child UIDL or null if child wit given name was not found | |||
*/ | |||
public UIDL getChildByTagName(String tagName) { | |||
Iterator<Object> childIterator = getChildIterator(); | |||
while (childIterator.hasNext()) { | |||
Object next = childIterator.next(); | |||
for (Object next : this) { | |||
if (next instanceof UIDL) { | |||
UIDL childUIDL = (UIDL) next; | |||
if (childUIDL.getTag().equals(tagName)) { |
@@ -15,7 +15,6 @@ | |||
*/ | |||
package com.vaadin.client; | |||
import java.util.Iterator; | |||
import java.util.Set; | |||
import com.google.gwt.core.client.JsArray; | |||
@@ -311,9 +310,7 @@ public class VUIDLBrowser extends SimpleTree { | |||
// Ignored, no variables | |||
} | |||
final Iterator<Object> i = uidl.getChildIterator(); | |||
while (i.hasNext()) { | |||
final Object child = i.next(); | |||
for (final Object child : uidl) { | |||
try { | |||
add(new UIDLItem((UIDL) child)); | |||
} catch (final Exception e) { |
@@ -83,9 +83,8 @@ public class ShortcutActionHandler { | |||
*/ | |||
public void updateActionMap(UIDL c) { | |||
actions.clear(); | |||
final Iterator<?> it = c.getChildIterator(); | |||
while (it.hasNext()) { | |||
final UIDL action = (UIDL) it.next(); | |||
for (final Object child : c) { | |||
final UIDL action = (UIDL) child; | |||
int[] modifiers = null; | |||
if (action.hasAttribute("mk")) { |
@@ -17,7 +17,6 @@ | |||
package com.vaadin.client.ui; | |||
import java.util.HashMap; | |||
import java.util.Iterator; | |||
import java.util.Map; | |||
import com.google.gwt.dom.client.Element; | |||
@@ -195,10 +194,7 @@ public class VEmbedded extends HTML { | |||
public static Map<String, String> getParameters(UIDL uidl) { | |||
Map<String, String> parameters = new HashMap<>(); | |||
Iterator<Object> childIterator = uidl.getChildIterator(); | |||
while (childIterator.hasNext()) { | |||
Object child = childIterator.next(); | |||
for (Object child : uidl) { | |||
if (child instanceof UIDL) { | |||
UIDL childUIDL = (UIDL) child; |
@@ -50,7 +50,7 @@ public abstract class VAbstractDropHandler implements VDropHandler { | |||
* contained in given uidl node | |||
*/ | |||
if (!uidl.getTag().equals("-ac")) { | |||
Iterator<Object> childIterator = uidl.getChildIterator(); | |||
Iterator<Object> childIterator = uidl.iterator(); | |||
while (!uidl.getTag().equals("-ac") && childIterator.hasNext()) { | |||
uidl = (UIDL) childIterator.next(); | |||
} |
@@ -100,7 +100,7 @@ public class MenuBarConnector extends AbstractComponentConnector | |||
} | |||
UIDL uidlItems = uidl.getChildUIDL(1); | |||
Iterator<Object> itr = uidlItems.getChildIterator(); | |||
Iterator<Object> itr = uidlItems.iterator(); | |||
Stack<Iterator<Object>> iteratorStack = new Stack<>(); | |||
Stack<VMenuBar> menuStack = new Stack<>(); | |||
VMenuBar currentMenu = getWidget(); | |||
@@ -137,7 +137,7 @@ public class MenuBarConnector extends AbstractComponentConnector | |||
if (item.getChildCount() > 0) { | |||
menuStack.push(currentMenu); | |||
iteratorStack.push(itr); | |||
itr = item.getChildIterator(); | |||
itr = item.iterator(); | |||
currentMenu = new VMenuBar(true, currentMenu); | |||
client.getVTooltip().connectHandlersToWidget(currentMenu); | |||
// this is the top-level style that also propagates to items - |
@@ -21,7 +21,6 @@ import java.util.Collections; | |||
import java.util.Comparator; | |||
import java.util.HashMap; | |||
import java.util.HashSet; | |||
import java.util.Iterator; | |||
import java.util.List; | |||
import java.util.Map; | |||
import java.util.logging.Logger; | |||
@@ -467,8 +466,8 @@ public class UIConnector extends AbstractSingleComponentContainerConnector | |||
/* | |||
* Search the UIDL stream for CSS resources and strings to be injected. | |||
*/ | |||
for (Iterator<?> it = uidl.getChildIterator(); it.hasNext();) { | |||
UIDL cssInjectionsUidl = (UIDL) it.next(); | |||
for (Object child : uidl) { | |||
UIDL cssInjectionsUidl = (UIDL) child; | |||
// Check if we have resources to inject | |||
if (cssInjectionsUidl.getTag().equals("css-resource")) { | |||
@@ -482,9 +481,8 @@ public class UIConnector extends AbstractSingleComponentContainerConnector | |||
getHead().appendChild(link); | |||
// Check if we have CSS string to inject | |||
} else if (cssInjectionsUidl.getTag().equals("css-string")) { | |||
for (Iterator<?> it2 = cssInjectionsUidl.getChildIterator(); it2 | |||
.hasNext();) { | |||
StyleInjector.injectAtEnd((String) it2.next()); | |||
for (Object c : cssInjectionsUidl) { | |||
StyleInjector.injectAtEnd((String) c); | |||
StyleInjector.flush(); | |||
} | |||
} |
@@ -18,7 +18,6 @@ package com.vaadin.v7.client.ui; | |||
import java.util.ArrayList; | |||
import java.util.HashSet; | |||
import java.util.Iterator; | |||
import java.util.List; | |||
import java.util.Set; | |||
@@ -90,8 +89,8 @@ public class VListSelect extends VOptionGroupBase { | |||
// need to deselect when something else is selected since it's only | |||
// used in single select mode. | |||
} | |||
for (final Iterator<?> i = uidl.getChildIterator(); i.hasNext();) { | |||
final UIDL optionUidl = (UIDL) i.next(); | |||
for (final Object child : uidl) { | |||
final UIDL optionUidl = (UIDL) child; | |||
updateOrCreateItem(optionUidl.getStringAttribute("caption"), | |||
optionUidl.getStringAttribute("key"), nextIndex, | |||
previousKeys); |
@@ -17,7 +17,6 @@ | |||
package com.vaadin.v7.client.ui; | |||
import java.util.ArrayList; | |||
import java.util.Iterator; | |||
import java.util.List; | |||
import com.google.gwt.event.dom.client.ChangeEvent; | |||
@@ -58,8 +57,8 @@ public class VNativeSelect extends VOptionGroupBase implements Field { | |||
select.addItem("", (String) null); | |||
} | |||
boolean selected = false; | |||
for (final Iterator<?> i = uidl.getChildIterator(); i.hasNext();) { | |||
final UIDL optionUidl = (UIDL) i.next(); | |||
for (final Object child : uidl) { | |||
final UIDL optionUidl = (UIDL) child; | |||
select.addItem(optionUidl.getStringAttribute("caption"), | |||
optionUidl.getStringAttribute("key")); | |||
if (optionUidl.hasAttribute("selected")) { |
@@ -134,8 +134,8 @@ public class VOptionGroup extends VOptionGroupBase | |||
Roles.getRadiogroupRole().set(getElement()); | |||
} | |||
for (final Iterator<?> it = uidl.getChildIterator(); it.hasNext();) { | |||
final UIDL opUidl = (UIDL) it.next(); | |||
for (final Object child : uidl) { | |||
final UIDL opUidl = (UIDL) child; | |||
String itemHtml = opUidl.getStringAttribute("caption"); | |||
if (!htmlContentAllowed) { |
@@ -1662,9 +1662,8 @@ public class VScrollTable extends FlowPanel | |||
return; | |||
} | |||
final Iterator<?> it = actionsUidl.getChildIterator(); | |||
while (it.hasNext()) { | |||
final UIDL action = (UIDL) it.next(); | |||
for (final Object child : actionsUidl) { | |||
final UIDL action = (UIDL) child; | |||
final String key = action.getStringAttribute("key"); | |||
final String caption = action.getStringAttribute("caption"); | |||
actionMap.put(key + "_c", caption); | |||
@@ -3649,12 +3648,11 @@ public class VScrollTable extends FlowPanel | |||
} | |||
public void updateCellsFromUIDL(UIDL uidl) { | |||
Iterator<?> it = uidl.getChildIterator(); | |||
HashSet<String> updated = new HashSet<String>(); | |||
boolean refreshContentWidths = initializedAndAttached | |||
&& hadScrollBars != willHaveScrollbars(); | |||
while (it.hasNext()) { | |||
final UIDL col = (UIDL) it.next(); | |||
for (Object child : uidl) { | |||
final UIDL col = (UIDL) child; | |||
final String cid = col.getStringAttribute("cid"); | |||
updated.add(cid); | |||
@@ -4586,10 +4584,9 @@ public class VScrollTable extends FlowPanel | |||
* The UIDL | |||
*/ | |||
public void updateCellsFromUIDL(UIDL uidl) { | |||
Iterator<?> columnIterator = uidl.getChildIterator(); | |||
HashSet<String> updated = new HashSet<String>(); | |||
while (columnIterator.hasNext()) { | |||
final UIDL col = (UIDL) columnIterator.next(); | |||
for (Object child : uidl) { | |||
final UIDL col = (UIDL) child; | |||
final String cid = col.getStringAttribute("cid"); | |||
updated.add(cid); | |||
@@ -4870,10 +4867,9 @@ public class VScrollTable extends FlowPanel | |||
public void renderInitialRows(UIDL rowData, int firstIndex, int rows) { | |||
firstRendered = firstIndex; | |||
setLastRendered(firstIndex + rows - 1); | |||
final Iterator<?> it = rowData.getChildIterator(); | |||
aligns = tHead.getColumnAlignments(); | |||
while (it.hasNext()) { | |||
final VScrollTableRow row = createRow((UIDL) it.next(), aligns); | |||
for (final Object child : rowData) { | |||
final VScrollTableRow row = createRow((UIDL) child, aligns); | |||
addRow(row); | |||
} | |||
if (isAttached()) { | |||
@@ -4884,7 +4880,7 @@ public class VScrollTable extends FlowPanel | |||
public void renderRows(UIDL rowData, int firstIndex, int rows) { | |||
// FIXME REVIEW | |||
aligns = tHead.getColumnAlignments(); | |||
final Iterator<?> it = rowData.getChildIterator(); | |||
final Iterator<?> it = rowData.iterator(); | |||
if (firstIndex == lastRendered + 1) { | |||
while (it.hasNext()) { | |||
final VScrollTableRow row = prepareRow((UIDL) it.next()); | |||
@@ -5005,7 +5001,7 @@ public class VScrollTable extends FlowPanel | |||
protected List<VScrollTableRow> insertRows(UIDL rowData, int firstIndex, | |||
int rows) { | |||
aligns = tHead.getColumnAlignments(); | |||
final Iterator<?> it = rowData.getChildIterator(); | |||
final Iterator<?> it = rowData.iterator(); | |||
List<VScrollTableRow> insertedRows = new ArrayList<VScrollTableRow>(); | |||
if (firstIndex == lastRendered + 1) { | |||
@@ -5628,9 +5624,7 @@ public class VScrollTable extends FlowPanel | |||
protected void addCellsFromUIDL(UIDL uidl, char[] aligns, int col, | |||
int visibleColumnIndex) { | |||
final Iterator<?> cells = uidl.getChildIterator(); | |||
while (cells.hasNext()) { | |||
final Object cell = cells.next(); | |||
for (final Object cell : uidl) { | |||
visibleColumnIndex++; | |||
String columnId = visibleColOrder[visibleColumnIndex]; | |||
@@ -6718,11 +6712,10 @@ public class VScrollTable extends FlowPanel | |||
htmlContentAllowed = uidl.getBooleanAttribute("gen_html"); | |||
spanColumns = uidl.getBooleanAttribute("gen_span"); | |||
final Iterator<?> cells = uidl.getChildIterator(); | |||
if (spanColumns) { | |||
int colCount = uidl.getChildCount(); | |||
if (cells.hasNext()) { | |||
final Object cell = cells.next(); | |||
// add the first cell only | |||
for (final Object cell : uidl) { | |||
if (cell instanceof String) { | |||
addSpannedCell(uidl, cell.toString(), aligns[0], "", | |||
htmlContentAllowed, false, null, colCount); | |||
@@ -6730,6 +6723,7 @@ public class VScrollTable extends FlowPanel | |||
addSpannedCell(uidl, (Widget) cell, aligns[0], "", | |||
false, colCount); | |||
} | |||
break; | |||
} | |||
} else { | |||
super.addCellsFromUIDL(uidl, aligns, col, |
@@ -196,7 +196,8 @@ public class VTreeTable extends VScrollTable { | |||
treeSpacer.setClassName(classname); | |||
container.insertFirst(treeSpacer); | |||
depth = rowUidl.hasAttribute("depth") | |||
? rowUidl.getIntAttribute("depth") : 0; | |||
? rowUidl.getIntAttribute("depth") | |||
: 0; | |||
setIndent(); | |||
isTreeCellAdded = true; | |||
return true; | |||
@@ -341,11 +342,10 @@ public class VTreeTable extends VScrollTable { | |||
htmlContentAllowed = uidl.getBooleanAttribute("gen_html"); | |||
spanColumns = uidl.getBooleanAttribute("gen_span"); | |||
final Iterator<?> cells = uidl.getChildIterator(); | |||
if (spanColumns) { | |||
int colCount = uidl.getChildCount(); | |||
if (cells.hasNext()) { | |||
final Object cell = cells.next(); | |||
// add the first cell only | |||
for (final Object cell : uidl) { | |||
if (cell instanceof String) { | |||
addSpannedCell(uidl, cell.toString(), aligns[0], "", | |||
htmlContentAllowed, false, null, colCount); | |||
@@ -353,6 +353,7 @@ public class VTreeTable extends VScrollTable { | |||
addSpannedCell(uidl, (Widget) cell, aligns[0], "", | |||
false, colCount); | |||
} | |||
break; | |||
} | |||
} else { | |||
super.addCellsFromUIDL(uidl, aligns, col, |
@@ -18,7 +18,6 @@ package com.vaadin.v7.client.ui; | |||
import java.util.ArrayList; | |||
import java.util.HashSet; | |||
import java.util.Iterator; | |||
import java.util.List; | |||
import java.util.Set; | |||
@@ -231,8 +230,8 @@ public class VTwinColSelect extends VOptionGroupBase implements KeyDownHandler, | |||
selections.setMultipleSelect(isMultiselect()); | |||
options.clear(); | |||
selections.clear(); | |||
for (final Iterator<?> i = uidl.getChildIterator(); i.hasNext();) { | |||
final UIDL optionUidl = (UIDL) i.next(); | |||
for (final Object child : uidl) { | |||
final UIDL optionUidl = (UIDL) child; | |||
if (optionUidl.hasAttribute("selected")) { | |||
selections.addItem(optionUidl.getStringAttribute("caption"), | |||
optionUidl.getStringAttribute("key")); |
@@ -20,7 +20,6 @@ import java.util.ArrayList; | |||
import java.util.Collections; | |||
import java.util.Date; | |||
import java.util.HashMap; | |||
import java.util.Iterator; | |||
import java.util.List; | |||
import java.util.Map; | |||
@@ -394,9 +393,8 @@ public class CalendarConnector extends AbstractLegacyComponentConnector | |||
*/ | |||
@Override | |||
public void updateFromUIDL(UIDL uidl, ApplicationConnection client) { | |||
Iterator<Object> childIterator = uidl.getChildIterator(); | |||
while (childIterator.hasNext()) { | |||
UIDL child = (UIDL) childIterator.next(); | |||
for (Object c : uidl) { | |||
UIDL child = (UIDL) c; | |||
if (DROPHANDLER_ACCEPT_CRITERIA_PAINT_TAG.equals(child.getTag())) { | |||
if (getWidget().getDropHandler() == null) { | |||
getWidget().setDropHandler(showingMonthView() |
@@ -16,7 +16,6 @@ | |||
package com.vaadin.v7.client.ui.combobox; | |||
import java.util.ArrayList; | |||
import java.util.Iterator; | |||
import java.util.List; | |||
import com.google.gwt.core.client.Scheduler; | |||
@@ -126,8 +125,8 @@ public class ComboBoxConnector extends AbstractFieldConnector | |||
List<FilterSelectSuggestion> newSuggestions = new ArrayList<FilterSelectSuggestion>(); | |||
for (final Iterator<?> i = options.getChildIterator(); i.hasNext();) { | |||
final UIDL optionUidl = (UIDL) i.next(); | |||
for (final Object child : options) { | |||
final UIDL optionUidl = (UIDL) child; | |||
final FilterSelectSuggestion suggestion = getWidget().new FilterSelectSuggestion( | |||
optionUidl); | |||
newSuggestions.add(suggestion); |
@@ -80,7 +80,8 @@ public class TreeConnector extends AbstractLegacyComponentConnector | |||
getWidget().readonly = isReadOnly(); | |||
getWidget().dragMode = uidl.hasAttribute("dragMode") | |||
? uidl.getIntAttribute("dragMode") : 0; | |||
? uidl.getIntAttribute("dragMode") | |||
: 0; | |||
getWidget().isNullSelectionAllowed = uidl | |||
.getBooleanAttribute("nullselect"); | |||
@@ -98,8 +99,8 @@ public class TreeConnector extends AbstractLegacyComponentConnector | |||
TreeNode childTree = null; | |||
UIDL childUidl = null; | |||
for (final Iterator<?> i = uidl.getChildIterator(); i.hasNext();) { | |||
childUidl = (UIDL) i.next(); | |||
for (final Object child : uidl) { | |||
childUidl = (UIDL) child; | |||
if ("actions".equals(childUidl.getTag())) { | |||
updateActionMap(childUidl); | |||
continue; | |||
@@ -213,7 +214,7 @@ public class TreeConnector extends AbstractLegacyComponentConnector | |||
VConsole.error(e); | |||
} | |||
renderChildNodes(rootNode, (Iterator) uidl.getChildIterator(), | |||
renderChildNodes(rootNode, (Iterator) uidl.iterator(), | |||
levelProperty + 1); | |||
} | |||
} | |||
@@ -224,9 +225,8 @@ public class TreeConnector extends AbstractLegacyComponentConnector | |||
* @param uidl | |||
*/ | |||
private void updateActionMap(UIDL uidl) { | |||
final Iterator<?> it = uidl.getChildIterator(); | |||
while (it.hasNext()) { | |||
final UIDL action = (UIDL) it.next(); | |||
for (final Object child : uidl) { | |||
final UIDL action = (UIDL) child; | |||
final String key = action.getStringAttribute("key"); | |||
final String caption = action | |||
.getStringAttribute(TreeConstants.ATTRIBUTE_ACTION_CAPTION); | |||
@@ -265,7 +265,7 @@ public class TreeConnector extends AbstractLegacyComponentConnector | |||
if (uidl.getChildCount() == 0) { | |||
treeNode.childNodeContainer.setVisible(false); | |||
} else { | |||
renderChildNodes(treeNode, (Iterator) uidl.getChildIterator(), | |||
renderChildNodes(treeNode, (Iterator) uidl.iterator(), | |||
level + 1); | |||
treeNode.childrenLoaded = true; | |||
} |