}
// Sends a change event
- fireContentsChange();
+ fireContentsChange(-1);
return true;
}
}
// Sends the event
- fireContentsChange();
+ fireContentsChange(itemIds.size() - 1);
return item;
}
filteredItemIds.remove(itemId);
}
- fireContentsChange();
+ fireContentsChange(-1);
return true;
}
if (filteredItemIds != null) {
updateContainerFiltering();
} else {
- fireContentsChange();
+ fireContentsChange(index);
}
return getItem(newItemId);
* @VERSION@
* @since 3.0
*/
- private class ItemSetChangeEvent extends EventObject implements
+ public class ItemSetChangeEvent extends EventObject implements
Container.ItemSetChangeEvent {
/**
* Serial generated by eclipse.
*/
private static final long serialVersionUID = 3832616279386372147L;
+ private int addedItemIndex;
- private ItemSetChangeEvent(IndexedContainer source) {
+ private ItemSetChangeEvent(IndexedContainer source, int addedItemIndex) {
super(source);
+ this.addedItemIndex = addedItemIndex;
}
/**
return (Container) getSource();
}
+ /**
+ * Iff one item is added, gives its index.
+ *
+ * @return -1 if either multiple items are changed or some other change
+ * than add is done.
+ */
+ public int getAddedItemIndex() {
+ return addedItemIndex;
+ }
+
}
/**
/**
* Sends Item set change event to all registered interested listeners.
+ *
+ * @param addedItemIndex
+ * index of new item if change event was an item addition
*/
- private void fireContentsChange() {
+ private void fireContentsChange(int addedItemIndex) {
if (itemSetChangeListeners != null) {
final Object[] l = itemSetChangeListeners.toArray();
final Container.ItemSetChangeEvent event = new IndexedContainer.ItemSetChangeEvent(
- this);
+ this, addedItemIndex);
for (int i = 0; i < l.length; i++) {
((Container.ItemSetChangeListener) l[i])
.containerItemSetChange(event);
if (filteredItemIds != null) {
updateContainerFiltering();
} else {
- fireContentsChange();
+ fireContentsChange(-1);
}
// Remove temporary references
filteredItemIds = null;
if (filters != null) {
filters = null;
- fireContentsChange();
+ fireContentsChange(-1);
}
return;
}
}
}
- fireContentsChange();
+ fireContentsChange(-1);
}
private boolean passesFilters(Item item) {