@Override public boolean drop(final List<?> list, final Display<?> display) { if (dragAndDropService == null) return false; check(list, display); if (list == null) return true; // trivial case // dropping an empty list trivially succeeds if (list.size() == 0) return true; // use the drag-and-drop service to handle each item separately boolean success = false; for (final Object item : list) { if (dragAndDropService.supports(item, display)) { final boolean result = dragAndDropService.drop(item, display); if (result) success = true; } } return success; }
@Override public boolean supports(final List<?> list, final Display<?> display) { if (dragAndDropService == null) return false; if (!super.supports(list, display)) return false; // empty lists are trivially compatible if (list.size() == 0) return true; // the list is deemed compatible if at least one item is compatible for (final Object item : list) { if (dragAndDropService.supports(item, display)) return true; } return false; }