@Override public Object getId(T item) { return dataProvider.getId(item); }
@Override public void destroyData(T item) { Object itemId = getDataProvider().getId(item); if (resourceKeyMap.containsKey(itemId)) { setResource(resourceKeyMap.get(itemId), null); resourceKeyMap.remove(itemId); } }
@Override public boolean isSelected(T item) { DataProvider<T, ?> dataProvider = internalGetDataProvider(); Object id = dataProvider.getId(item); return selection.stream().map(dataProvider::getId).anyMatch(id::equals); }
/** * Returns whether the given item is currently selected. * * @param item * the item to check, not null * @return {@code true} if the item is selected, {@code false} otherwise */ public boolean isSelected(T item) { if (Objects.equals(selectedItem, item)) { return true; } if (item == null || selectedItem == null) { return false; } return Objects.equals(getDataProvider().getId(selectedItem), getDataProvider().getId(item)); }
@Override public boolean isSelected(T item) { // Quick comparison of objects directly if (Objects.equals(item, selectedItem)) { return true; } // Id based check return item != null && selectedItem != null && getGrid().getDataProvider().getId(selectedItem) .equals(getGrid().getDataProvider().getId(item)); } }
private Resource getItemIcon(T item) { Resource icon = getItemIconGenerator().apply(item); if (icon == null || !(icon instanceof ConnectorResource)) { return icon; } Object itemId = getDataProvider().getId(item); if (!resourceKeyMap.containsKey(itemId)) { resourceKeyMap.put(itemId, "icon" + (counter++)); } setResource(resourceKeyMap.get(itemId), icon); return icon; } });
@Override public void destroyData(T item) { removeComponent(getGrid().getDataProvider().getId(item)); }
/** * Informs the DataProvider that a data object has been updated. * * @param data * updated data object; not {@code null} */ public void refresh(T data) { Objects.requireNonNull(data, "DataCommunicator can not refresh null object"); Object id = getDataProvider().getId(data); // ActiveDataHandler has always the latest data through KeyMapper. Map<Object, T> activeData = getActiveDataHandler().getActiveData(); if (activeData.containsKey(id)) { // Item is currently available at the client-side if (updatedData.isEmpty()) { markAsDirty(); } updatedData.add(activeData.get(id)); } }
Object id = dataProvider.getId(item); Optional<T> toRemove = removedItems.stream() .filter(i -> dataProvider.getId(i).equals(id)).findFirst(); toRemove.ifPresent(i -> removedItems.remove(i)); return toRemove.isPresent(); .map(dataProvider::getId).collect(Collectors.toSet()); set.removeIf( item -> removedItemIds.contains(dataProvider.getId(item))); addedItems.stream().filter( item -> !selectionContainsId(dataProvider.getId(item))) .forEach(set::add);
@Override public boolean isSelected(T item) { return isAllSelected() || selectionContainsId(getGrid().getDataProvider().getId(item)); }
@SuppressWarnings("unchecked") private <P> JsonValue generateRendererValue(T item, ValueProvider<V, P> presentationProvider, Connector renderer) { P presentationValue = presentationProvider .apply(valueProvider.apply(item)); // Make Grid track components. if (renderer instanceof ComponentRenderer && presentationValue instanceof Component) { addComponent(getGrid().getDataProvider().getId(item), (Component) presentationValue); } return ((Renderer<P>) renderer).encode(presentationValue); }
@Override public void generateData(T item, JsonObject jsonObject) { String caption = getItemCaptionGenerator().apply(item); if (caption == null) { caption = ""; } jsonObject.put(DataCommunicatorConstants.NAME, caption); String style = itemStyleGenerator.apply(item); if (style != null) { jsonObject.put(ComboBoxConstants.STYLE, style); } Resource icon = getItemIcon(item); if (icon != null) { String iconKey = resourceKeyMap .get(getDataProvider().getId(item)); String iconUrl = ResourceReference .create(icon, ComboBox.this, iconKey).getURL(); jsonObject.put(ComboBoxConstants.ICON, iconUrl); } }
@Override public boolean isSelected(V item) { V selectedItem = getSelectedItem().orElse(null); if (customValueEquals != null) { if (customValueEquals.apply(selectedItem, item)) { return true; } } else { if (Objects.equals(selectedItem, item)) { return true; } } if (item == null || selectedItem == null) { return false; } return Objects.equals(getDataProvider().getId(selectedItem), getDataProvider().getId(item)); }