summaryrefslogtreecommitdiffstats
path: root/server/src/com/vaadin/data/util
diff options
context:
space:
mode:
authorJohn Ahlroos <john@vaadin.com>2014-04-24 13:27:57 +0300
committerLeif Åstrand <leif@vaadin.com>2014-04-25 06:28:11 +0000
commit91fa89a9a384d64a953996efa6d6f42eff1f4c8a (patch)
tree408e8fbee4a554fbd100b4e3ef3923596f04af29 /server/src/com/vaadin/data/util
parent387603a6712a68c05fdb154824fe950b2df9c451 (diff)
parent0a5eeeca649676432a4166255a4aee0028a3adcc (diff)
downloadvaadin-framework-91fa89a9a384d64a953996efa6d6f42eff1f4c8a.tar.gz
vaadin-framework-91fa89a9a384d64a953996efa6d6f42eff1f4c8a.zip
Merge remote-tracking branch 'origin/master' into grid
Change-Id: I596407a5d5c28c6ec3fb27d443e6bf143bddee6c
Diffstat (limited to 'server/src/com/vaadin/data/util')
-rw-r--r--server/src/com/vaadin/data/util/AbstractBeanContainer.java20
-rw-r--r--server/src/com/vaadin/data/util/AbstractInMemoryContainer.java149
-rw-r--r--server/src/com/vaadin/data/util/IndexedContainer.java7
3 files changed, 18 insertions, 158 deletions
diff --git a/server/src/com/vaadin/data/util/AbstractBeanContainer.java b/server/src/com/vaadin/data/util/AbstractBeanContainer.java
index d94588bdc9..b19cdd980c 100644
--- a/server/src/com/vaadin/data/util/AbstractBeanContainer.java
+++ b/server/src/com/vaadin/data/util/AbstractBeanContainer.java
@@ -222,7 +222,6 @@ public abstract class AbstractBeanContainer<IDTYPE, BEANTYPE> extends
@Override
public boolean removeAllItems() {
int origSize = size();
- IDTYPE firstItem = getFirstVisibleItem();
internalRemoveAllItems();
@@ -235,7 +234,7 @@ public abstract class AbstractBeanContainer<IDTYPE, BEANTYPE> extends
// fire event only if the visible view changed, regardless of whether
// filtered out items were removed or not
if (origSize != 0) {
- fireItemsRemoved(0, firstItem, origSize);
+ fireItemSetChange();
}
return true;
@@ -680,8 +679,6 @@ public abstract class AbstractBeanContainer<IDTYPE, BEANTYPE> extends
protected void addAll(Collection<? extends BEANTYPE> collection)
throws IllegalStateException, IllegalArgumentException {
boolean modified = false;
- int origSize = size();
-
for (BEANTYPE bean : collection) {
// TODO skipping invalid beans - should not allow them in javadoc?
if (bean == null
@@ -702,22 +699,13 @@ public abstract class AbstractBeanContainer<IDTYPE, BEANTYPE> extends
if (modified) {
// Filter the contents when all items have been added
if (isFiltered()) {
- doFilterContainer(!getFilters().isEmpty());
- }
- if (visibleNewItemsWasAdded(origSize)) {
- // fire event about added items
- int firstPosition = origSize;
- IDTYPE firstItemId = getVisibleItemIds().get(firstPosition);
- int affectedItems = size() - origSize;
- fireItemsAdded(firstPosition, firstItemId, affectedItems);
+ filterAll();
+ } else {
+ fireItemSetChange();
}
}
}
- private boolean visibleNewItemsWasAdded(int origSize) {
- return size() > origSize;
- }
-
/**
* Use the bean resolver to get the identifier for a bean.
*
diff --git a/server/src/com/vaadin/data/util/AbstractInMemoryContainer.java b/server/src/com/vaadin/data/util/AbstractInMemoryContainer.java
index cae9f30fc9..84304431bc 100644
--- a/server/src/com/vaadin/data/util/AbstractInMemoryContainer.java
+++ b/server/src/com/vaadin/data/util/AbstractInMemoryContainer.java
@@ -15,10 +15,8 @@
*/
package com.vaadin.data.util;
-import java.io.Serializable;
import java.util.Collection;
import java.util.Collections;
-import java.util.EventObject;
import java.util.HashSet;
import java.util.Iterator;
import java.util.LinkedList;
@@ -148,83 +146,6 @@ public abstract class AbstractInMemoryContainer<ITEMIDTYPE, PROPERTYIDCLASS, ITE
}
}
- private static abstract class BaseItemAddOrRemoveEvent extends EventObject
- implements Serializable {
- protected Object itemId;
- protected int index;
- protected int count;
-
- public BaseItemAddOrRemoveEvent(Container source, Object itemId,
- int index, int count) {
- super(source);
- this.itemId = itemId;
- this.index = index;
- this.count = count;
- }
-
- public Container getContainer() {
- return (Container) getSource();
- }
-
- public Object getFirstItemId() {
- return itemId;
- }
-
- public int getFirstIndex() {
- return index;
- }
-
- public int getAffectedItemsCount() {
- return count;
- }
- }
-
- /**
- * An <code>Event</code> object specifying information about the added
- * items.
- *
- * <p>
- * This class provides information about the first added item and the number
- * of added items.
- * </p>
- */
- protected static class BaseItemAddEvent extends BaseItemAddOrRemoveEvent
- implements Container.Indexed.ItemAddEvent {
-
- public BaseItemAddEvent(Container source, Object itemId, int index,
- int count) {
- super(source, itemId, index, count);
- }
-
- @Override
- public int getAddedItemsCount() {
- return getAffectedItemsCount();
- }
- }
-
- /**
- * An <code>Event</code> object specifying information about the removed
- * items.
- *
- * <p>
- * This class provides information about the first removed item and the
- * number of removed items.
- * </p>
- */
- protected static class BaseItemRemoveEvent extends BaseItemAddOrRemoveEvent
- implements Container.Indexed.ItemRemoveEvent {
-
- public BaseItemRemoveEvent(Container source, Object itemId, int index,
- int count) {
- super(source, itemId, index, count);
- }
-
- @Override
- public int getRemovedItemsCount() {
- return getAffectedItemsCount();
- }
- }
-
/**
* Get an item even if filtered out.
*
@@ -977,69 +898,36 @@ public abstract class AbstractInMemoryContainer<ITEMIDTYPE, PROPERTYIDCLASS, ITE
* Notify item set change listeners that an item has been added to the
* container.
*
+ * Unless subclasses specify otherwise, the default notification indicates a
+ * full refresh.
+ *
* @param postion
- * position of the added item in the view
+ * position of the added item in the view (if visible)
* @param itemId
* id of the added item
* @param item
* the added item
*/
protected void fireItemAdded(int position, ITEMIDTYPE itemId, ITEMCLASS item) {
- fireItemsAdded(position, itemId, 1);
- }
-
- /**
- * Notify item set change listeners that items has been added to the
- * container.
- *
- * @param firstPosition
- * position of the first visible added item in the view
- * @param firstItemId
- * id of the first visible added item
- * @param numberOfItems
- * the number of visible added items
- */
- protected void fireItemsAdded(int firstPosition, ITEMIDTYPE firstItemId,
- int numberOfItems) {
- BaseItemAddEvent addEvent = new BaseItemAddEvent(this, firstItemId,
- firstPosition, numberOfItems);
- fireItemSetChange(addEvent);
+ fireItemSetChange();
}
/**
* Notify item set change listeners that an item has been removed from the
* container.
*
- * @param position
- * position of the removed item in the view prior to removal
+ * Unless subclasses specify otherwise, the default notification indicates a
+ * full refresh.
*
+ * @param postion
+ * position of the removed item in the view prior to removal (if
+ * was visible)
* @param itemId
* id of the removed item, of type {@link Object} to satisfy
* {@link Container#removeItem(Object)} API
*/
protected void fireItemRemoved(int position, Object itemId) {
- fireItemsRemoved(position, itemId, 1);
- }
-
- /**
- * Notify item set change listeners that items has been removed from the
- * container.
- *
- * @param firstPosition
- * position of the first visible removed item in the view prior
- * to removal
- * @param firstItemId
- * id of the first visible removed item, of type {@link Object}
- * to satisfy {@link Container#removeItem(Object)} API
- * @param numberOfItems
- * the number of removed visible items
- *
- */
- protected void fireItemsRemoved(int firstPosition, Object firstItemId,
- int numberOfItems) {
- BaseItemRemoveEvent removeEvent = new BaseItemRemoveEvent(this,
- firstItemId, firstPosition, numberOfItems);
- fireItemSetChange(removeEvent);
+ fireItemSetChange();
}
// visible and filtered item identifier lists
@@ -1058,21 +946,6 @@ public abstract class AbstractInMemoryContainer<ITEMIDTYPE, PROPERTYIDCLASS, ITE
}
/**
- * Returns the item id of the first visible item after filtering. 'Null' is
- * returned if there is no visible items.
- *
- * For internal use only.
- *
- * @return item id of the first visible item
- */
- protected ITEMIDTYPE getFirstVisibleItem() {
- if (!getVisibleItemIds().isEmpty()) {
- return getVisibleItemIds().get(0);
- }
- return null;
- }
-
- /**
* Returns true is the container has active filters.
*
* @return true if the container is currently filtered
diff --git a/server/src/com/vaadin/data/util/IndexedContainer.java b/server/src/com/vaadin/data/util/IndexedContainer.java
index 5d20919208..d7bf70caf6 100644
--- a/server/src/com/vaadin/data/util/IndexedContainer.java
+++ b/server/src/com/vaadin/data/util/IndexedContainer.java
@@ -226,7 +226,6 @@ public class IndexedContainer extends
@Override
public boolean removeAllItems() {
int origSize = size();
- Object firstItem = getFirstVisibleItem();
internalRemoveAllItems();
@@ -236,7 +235,7 @@ public class IndexedContainer extends
// filtered out items were removed or not
if (origSize != 0) {
// Sends a change event
- fireItemsRemoved(0, firstItem, origSize);
+ fireItemSetChange();
}
return true;
@@ -621,7 +620,8 @@ public class IndexedContainer extends
@Override
protected void fireItemAdded(int position, Object itemId, Item item) {
if (position >= 0) {
- super.fireItemAdded(position, itemId, item);
+ fireItemSetChange(new IndexedContainer.ItemSetChangeEvent(this,
+ position));
}
}
@@ -1211,5 +1211,4 @@ public class IndexedContainer extends
public Collection<Filter> getContainerFilters() {
return super.getContainerFilters();
}
-
}