diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/com/vaadin/data/util/AbstractInMemoryContainer.java | 2 | ||||
-rw-r--r-- | src/com/vaadin/data/util/IndexedContainer.java | 18 | ||||
-rw-r--r-- | src/com/vaadin/terminal/gwt/client/ui/VUpload.java | 2 |
3 files changed, 17 insertions, 5 deletions
diff --git a/src/com/vaadin/data/util/AbstractInMemoryContainer.java b/src/com/vaadin/data/util/AbstractInMemoryContainer.java index d3e981231f..75983d1e4f 100644 --- a/src/com/vaadin/data/util/AbstractInMemoryContainer.java +++ b/src/com/vaadin/data/util/AbstractInMemoryContainer.java @@ -725,7 +725,7 @@ public abstract class AbstractInMemoryContainer<ITEMIDTYPE, PROPERTYIDCLASS, ITE getAllItemIds().indexOf(previousItemId) + 1, newItemId, item); } - if (newItem != null) { + if (newItem != null && filter) { // TODO filter only this item, use fireItemAdded() filterAll(); if (!isFiltered()) { diff --git a/src/com/vaadin/data/util/IndexedContainer.java b/src/com/vaadin/data/util/IndexedContainer.java index 7fbb1e9128..2f45def4f1 100644 --- a/src/com/vaadin/data/util/IndexedContainer.java +++ b/src/com/vaadin/data/util/IndexedContainer.java @@ -106,8 +106,11 @@ public class IndexedContainer extends this(); if (items != null) { for (final Iterator<?> i = itemIds.iterator(); i.hasNext();) { - this.addItem(i.next()); + Object itemId = i.next(); + internalAddItemAtEnd(itemId, new IndexedContainerItem(itemId), + false); } + filterAll(); } } @@ -246,8 +249,17 @@ public class IndexedContainer extends */ @Override public Item addItem(Object itemId) { - return internalAddItemAtEnd(itemId, new IndexedContainerItem(itemId), - true); + Item item = internalAddItemAtEnd(itemId, new IndexedContainerItem( + itemId), false); + if (!isFiltered()) { + // always the last item + fireItemAdded(size() - 1, itemId, item); + } else if (passesFilters(itemId)) { + getFilteredItemIds().add(itemId); + // always the last item + fireItemAdded(size() - 1, itemId, item); + } + return item; } /** diff --git a/src/com/vaadin/terminal/gwt/client/ui/VUpload.java b/src/com/vaadin/terminal/gwt/client/ui/VUpload.java index a49450e086..25fd1d7604 100644 --- a/src/com/vaadin/terminal/gwt/client/ui/VUpload.java +++ b/src/com/vaadin/terminal/gwt/client/ui/VUpload.java @@ -157,7 +157,7 @@ public class VUpload extends SimplePanel implements Paintable { return; } if (uidl.hasAttribute("forceSubmit")) { - element.submit(); + submit(); return; } setImmediate(uidl.getBooleanAttribute("immediate")); |