aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/com/vaadin/data/util/AbstractInMemoryContainer.java2
-rw-r--r--src/com/vaadin/data/util/IndexedContainer.java18
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/VUpload.java2
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"));