@Override public Collection<?> getItemIds() { if (tableItems.getState() == BindingState.INACTIVE) { return Collections.emptyList(); } return getCachedItemIds(); }
@Override public int size() { if (tableItems.getState() == BindingState.INACTIVE) { return 0; } return tableItems.size(); }
@Override public Collection<?> getItemIds() { if (tableItems.getState() == BindingState.INACTIVE) { return Collections.emptyList(); } return tableItems.getItemIds(); }
@Override public E getSingleSelected() { TableItems<E> tableItems = getItems(); if (tableItems == null || tableItems.getState() == BindingState.INACTIVE) { return null; } Set selected = getSelectedItemIds(); return selected == null || selected.isEmpty() ? null : tableItems.getItem(selected.iterator().next()); }
@SuppressWarnings("unchecked") @Override public Set<E> getSelected() { TableItems<E> tableItems = getItems(); if (tableItems == null || tableItems.getState() == BindingState.INACTIVE) { return Collections.emptySet(); } Set<Object> itemIds = getSelectedItemIds(); if (itemIds != null) { if (itemIds.size() == 1) { E item = tableItems.getItem(itemIds.iterator().next()); return Collections.singleton(item); } Set res = new LinkedHashSet<>(); for (Object id : itemIds) { Entity item = tableItems.getItem(id); if (item != null) res.add(item); } return res; } else { return Collections.emptySet(); } }
@SuppressWarnings("unchecked") @Override public void setSelected(Collection<E> items) { TableItems<E> tableItems = getItems(); if (tableItems == null || tableItems.getState() == BindingState.INACTIVE) { throw new IllegalStateException("TableItems is not active"); } if (items.isEmpty()) { setSelectedIds(Collections.emptyList()); } else if (items.size() == 1) { E item = items.iterator().next(); if (tableItems.getItem(item.getId()) == null) { throw new IllegalArgumentException("Datasource doesn't contain item to select: " + item); } setSelectedIds(Collections.singletonList(item.getId())); } else { Set itemIds = new HashSet(); for (Entity item : items) { if (tableItems.getItem(item.getId()) == null) { throw new IllegalArgumentException("Datasource doesn't contain item to select: " + item); } itemIds.add(item.getId()); } setSelectedIds(itemIds); } }
@Override public void tableSourceItemSetChanged(TableItems.ItemSetChangeEvent<E> event) { // replacement for collectionChangeSelectionListener // #PL-2035, reload selection from ds Set<Object> selectedItemIds = getSelectedItemIds(); if (selectedItemIds == null) { selectedItemIds = Collections.emptySet(); } Set<Object> newSelection = new HashSet<>(); TableItems<E> tableItems = event.getSource(); for (Object entityId : selectedItemIds) { if (tableItems.getItem(entityId) != null) { newSelection.add(entityId); } } if (tableItems.getState() == BindingState.ACTIVE && tableItems instanceof EntityTableItems) { EntityTableItems entityTableSource = (EntityTableItems) tableItems; if (entityTableSource.getSelectedItem() != null) { newSelection.add(entityTableSource.getSelectedItem().getId()); } } if (newSelection.isEmpty()) { setSelected((E) null); } else { setSelectedIds(newSelection); } refreshActionsState(); }
TableItems<E> tableItems = getItems(); if (tableItems == null || tableItems.getState() == BindingState.INACTIVE) { return null;