/** * Lists IDs of the properties in the item. * * @return Collection of property IDs. */ public Collection<?> getItemPropertyIds() { List<Object> itemPropertyIds = new ArrayList<Object>(); for (String itemKey : itemKeys) { Item item = items.get(itemKey); for (Object propertyId : item.getItemPropertyIds()) { itemPropertyIds.add(propertyId); } } return itemPropertyIds; }
/** * Constructor * @param item Item * @param itemStore Item store */ public ItemPropertyValueChangeListener(Item item, ItemStore<Item> itemStore) { super(); this.item = new WeakReference<>(item); this.itemStore = itemStore; if (item != null) { // add value change listener to track property modifications Collection<?> itemPropertyIds = item.getItemPropertyIds(); if (itemPropertyIds != null) { trackedItemProperties = new HashSet<>(itemPropertyIds.size()); for (Object itemPropertyId : itemPropertyIds) { Property<?> itemProperty = item.getItemProperty(itemPropertyId); if (itemProperty instanceof ValueChangeNotifier) { ((ValueChangeNotifier) itemProperty).addValueChangeListener(this); trackedItemProperties.add(new WeakReference<>(itemProperty)); } } } } }
for (final Object propertyId : item.getItemPropertyIds()) { final Property property = item.getItemProperty(propertyId); if (property instanceof ValueChangeNotifier) { itemCache.remove(firstIndex); for (final Object propertyId : firstItem.getItemPropertyIds()) { final Property property = firstItem.getItemProperty(propertyId); if (property instanceof ValueChangeNotifier) {
/** * Removes item at given index by adding it to the removed list. Change can * be committed or discarded with respective methods. * * @param index of the item to be removed. */ @Override public void removeItem(final int index) { final Item item = getItem(index); if (item.getItemProperty(PROPERTY_ID_ITEM_STATUS) != null) { item.getItemProperty(PROPERTY_ID_ITEM_STATUS).setReadOnly(false); item.getItemProperty(PROPERTY_ID_ITEM_STATUS).setValue(QueryItemStatus.Removed); item.getItemProperty(PROPERTY_ID_ITEM_STATUS).setReadOnly(true); } for (final Object propertyId : item.getItemPropertyIds()) { final Property property = item.getItemProperty(propertyId); property.setReadOnly(true); } removedItems.add(item); }