final Iterator newIt = uidlWidgets.iterator();
final Iterator newUidl = uidl.getChildIterator();
+ final ArrayList paintedWidgets = new ArrayList();
+
Widget oldChild = null;
while (newIt.hasNext()) {
final Widget child = (Widget) newIt.next();
while (oldIt.hasNext()) {
oldChild = (Widget) oldIt.next();
// now oldChild is an instance of Paintable
- if (uidlWidgets.contains(oldChild)) {
+ if (paintedWidgets.contains(oldChild)) {
+ continue;
+ } else if (uidlWidgets.contains(oldChild)) {
break;
} else {
removePaintable((Paintable) oldChild);
insert(child, index);
}
((Paintable) child).updateFromUIDL(childUidl, client);
+ paintedWidgets.add(child);
}
// remove possibly remaining old Paintable object which were not updated
while (oldIt.hasNext()) {