Example usage for com.vaadin.event.dd.acceptcriteria And And

List of usage examples for com.vaadin.event.dd.acceptcriteria And And

Introduction

In this page you can find the example usage for com.vaadin.event.dd.acceptcriteria And And.

Prototype

public And(ClientSideCriterion... criteria) 

Source Link

Usage

From source file:com.haulmont.cuba.web.app.accessgroup.AccessGroupCompanion.java

License:Apache License

@Override
public void initDragAndDrop(Table<User> usersTable, Tree<Group> groupsTree,
        Consumer<UserGroupChangedEvent> userGroupChangedHandler) {
    com.vaadin.ui.Table vTable = usersTable.unwrap(com.vaadin.ui.Table.class);
    vTable.setDragMode(com.vaadin.ui.Table.TableDragMode.MULTIROW);

    CubaTree vTree = groupsTree.unwrap(CubaTree.class);
    vTree.setDragMode(com.vaadin.ui.Tree.TreeDragMode.NODE);
    vTree.setDropHandler(new DropHandler() {
        @Override//from w  ww .  j a  v a2  s. co m
        public void drop(DragAndDropEvent dropEvent) {
            DataBoundTransferable transferable = (DataBoundTransferable) dropEvent.getTransferable();

            AbstractSelect.AbstractSelectTargetDetails dropData = ((AbstractSelect.AbstractSelectTargetDetails) dropEvent
                    .getTargetDetails());

            Component sourceComponent = transferable.getSourceComponent();

            List<User> users = null;
            if (sourceComponent instanceof com.vaadin.ui.Table) {
                users = new ArrayList<>(usersTable.getSelected());
            }

            if (users == null) {
                return;
            }

            if (users.isEmpty()) {
                User user = convertToEntity(vTable.getItem(transferable.getItemId()), User.class);
                users.add(user);
            }

            final Object targetItemId = dropData.getItemIdOver();
            if (targetItemId == null) {
                return;
            }
            Group group = convertToEntity(vTree.getItem(targetItemId), Group.class);
            if (group == null) {
                return;
            }

            userGroupChangedHandler.accept(new UserGroupChangedEvent(groupsTree, users, group));
        }

        @Override
        public AcceptCriterion getAcceptCriterion() {
            return new And(AbstractSelect.AcceptItem.ALL);
        }
    });
}

From source file:com.rdonasco.security.group.controllers.GroupEditorViewController.java

License:Apache License

private void configureRoleCapabilityTable() {
    Table roleCapabilitiesTable = getControlledView().getGroupRolesTable();
    roleCapabilitiesTable.setSelectable(true);
    roleCapabilitiesTable.setContainerDataSource(groupRolesContainer);
    roleCapabilitiesTable.setVisibleColumns(EDITABLE_COLUMNS);
    roleCapabilitiesTable.setColumnHeaders(EDITABLE_HEADERS);
    roleCapabilitiesTable.setCellStyleGenerator(CELL_STYLE_GENERATOR);
    groupRolesDropHandler = new DropHandler() {
        private static final long serialVersionUID = 1L;

        @Override/*from w ww .ja v  a2 s . c  o m*/
        public void drop(DragAndDropEvent dropEvent) {
            try {
                final DataBoundTransferable transferredData = (DataBoundTransferable) dropEvent
                        .getTransferable();
                final Container sourceContainer = transferredData.getSourceContainer();
                if (transferredData.getItemId() instanceof RoleItemVO) {
                    sessionSecurityChecker.checkCapabilityTo(ActionConstants.ADD,
                            GroupConstants.RESOURCE_GROUP_ROLES);
                    LOG.log(Level.FINE, "drop allowed at group role panel");
                    final RoleItemVO roleItemVO = (RoleItemVO) transferredData.getItemId();
                    addDroppedRoleItemVO(roleItemVO);
                    for (Object object : sourceContainer.getItemIds()) {
                        if (getAvailableRolesTableSource().isSelected(object)) {
                            addDroppedRoleItemVO((RoleItemVO) object);
                        }
                    }

                } else {
                    LOG.log(Level.FINE, "invalid data dropped in group role panel");
                }
            } catch (Exception e) {
                exceptionPopupProvider.popUpErrorException(e);
            }
        }

        @Override
        public AcceptCriterion getAcceptCriterion() {
            ClientSideCriterion sourceCriterion = new SourceIs(getAvailableRolesTableSource());
            return new And(sourceCriterion);
        }

        private void addDroppedRoleItemVO(final RoleItemVO roleItemVO) {
            final GroupRoleItemVO newGroupRoleItemVO = createGroupRoleItemVO(roleItemVO.getRoleVO());
            BeanItem<GroupRoleItemVO> addedItem = groupRolesContainer.addItem(newGroupRoleItemVO);
            LOG.log(Level.FINE, "addedItem = {0}", addedItem);
        }
    };
    getControlledView().getGroupRolesTable().setDropHandler(groupRolesDropHandler);
}