@Override public boolean removeAllItems() { disableContentsChangeEvents(); try { final boolean success = super.removeAllItems(); if (success) { roots.clear(); parent.clear(); children.clear(); noChildrenAllowed.clear(); if (filteredRoots != null) { filteredRoots = null; } if (filteredChildren != null) { filteredChildren = null; } if (filteredParent != null) { filteredParent = null; } } return success; } finally { enableAndFireContentsChangeEvents(); } }
/** * Removes the Item identified by given itemId and all its children. * * @see #removeItem(Object) * @param itemId * the identifier of the Item to be removed * @return true if the operation succeeded */ public boolean removeItemRecursively(Object itemId) { disableContentsChangeEvents(); try { return removeItemRecursively(this, itemId); } finally { enableAndFireContentsChangeEvents(); } }
@Override public Item addItem(Object itemId) { disableContentsChangeEvents(); try { final Item item = super.addItem(itemId); if (item == null) { return null; } roots.add(itemId); if (filteredRoots != null) { if (passesFilters(itemId)) { filteredRoots.add(itemId); } } return item; } finally { enableAndFireContentsChangeEvents(); } }
@Override public Object addItem() { disableContentsChangeEvents(); try { final Object itemId = super.addItem(); if (itemId == null) { return null; } if (!roots.contains(itemId)) { roots.add(itemId); if (filteredRoots != null) { if (passesFilters(itemId)) { filteredRoots.add(itemId); } } } return itemId; } finally { enableAndFireContentsChangeEvents(); } }