@Override protected void fireItemAdded(int position, Object itemId, Item item) { if (position >= 0) { super.fireItemAdded(position, itemId, item); } }
/** * Add an item at the end of the container, and perform filtering if * necessary. An event is fired if the filtered view changes. * * @param newItemId * @param item * new item to add * @param filter * true to perform filtering and send event after adding the * item, false to skip these operations for batch inserts - if * false, caller needs to make sure these operations are * performed at the end of the batch * @return item added or null if no item was added */ protected ITEMCLASS internalAddItemAtEnd(ITEMIDTYPE newItemId, ITEMCLASS item, boolean filter) { ITEMCLASS newItem = internalAddAt(getAllItemIds().size(), newItemId, item); if (newItem != null && filter) { // TODO filter only this item, use fireItemAdded() filterAll(); if (!isFiltered()) { // TODO hack: does not detect change in filterAll() in this case fireItemAdded(indexOfId(newItemId), newItemId, item); } } return newItem; }
if (!isFiltered()) { fireItemAdded(indexOfId(newItemId), newItemId, item);