protected <E extends Entity> void removeItems(RemoveBuilder<E> builder, List<E> selectedItems) { FrameOwner origin = builder.getOrigin(); ScreenData screenData = UiControllerUtils.getScreenData(origin); CollectionContainer<E> container = getCollectionContainer(builder); commitIfNeeded(selectedItems, container, screenData); if (selectedItems.size() == 1) { container.getMutableItems().remove(selectedItems.get(0)); } else { container.getMutableItems().removeAll(selectedItems); } focusListComponent(builder); }
protected <E extends Entity> void performAction(RemoveBuilder<E> builder, List<E> selectedItems) { if (builder.getBeforeActionPerformedHandler() != null) { BeforeActionPerformedEvent<E> event = new BeforeActionPerformedEvent<>(builder.getOrigin(), selectedItems); builder.getBeforeActionPerformedHandler().accept(event); if (event.isActionPrevented()) { // do not perform action return; } } if (builder.getOperation() == Operation.EXCLUDE) { excludeItems(builder, selectedItems); } else { removeItems(builder, selectedItems); } if (builder.getAfterActionPerformedHandler() != null) { AfterActionPerformedEvent<E> event = new AfterActionPerformedEvent<>(builder.origin, selectedItems); builder.getAfterActionPerformedHandler().accept(event); } }
@SuppressWarnings("CodeBlock2Expr") protected <E extends Entity> void performActionWithConfirmation(RemoveBuilder<E> builder, List<E> selectedItems) { ScreenContext screenContext = getScreenContext(builder.getOrigin()); Dialogs dialogs = screenContext.getDialogs(); String title = builder.getConfirmationTitle() != null ? builder.getConfirmationTitle() : messages.getMainMessage("dialogs.Confirmation"); String message = builder.getConfirmationTitle() != null ? builder.getConfirmationTitle() : messages.getMainMessage("dialogs.Confirmation.Remove"); dialogs.createOptionDialog() .withCaption(title) .withMessage(message) .withActions( new DialogAction(DialogAction.Type.YES).withHandler(e -> { performAction(builder, selectedItems); }), new DialogAction(DialogAction.Type.NO).withHandler(e -> { focusListComponent(builder); if (builder.getActionCancelledHandler() != null) { ActionCancelledEvent<E> event = new ActionCancelledEvent<>(builder.getOrigin(), selectedItems); builder.getActionCancelledHandler().accept(event); } }) ) .show(); }