List of usage examples for com.vaadin.shared.ui.dd VerticalDropLocation MIDDLE
VerticalDropLocation MIDDLE
To view the source code for com.vaadin.shared.ui.dd VerticalDropLocation MIDDLE.
Click Source Link
From source file:com.foc.vaadin.gui.layouts.FVVertical_WYSIWYG_DropHandler.java
License:Apache License
@Override protected void handleComponentReordering(DragAndDropEvent event) { // Component re-ordering LayoutBoundTransferable transferable = (LayoutBoundTransferable) event.getTransferable(); VerticalLayoutTargetDetails details = (VerticalLayoutTargetDetails) event.getTargetDetails(); AbstractOrderedLayout layout = (AbstractOrderedLayout) details.getTarget(); Component comp = transferable.getComponent(); int idx = (details).getOverIndex(); // Detach/*from w w w .j a v a 2s .c om*/ if (comp != null && layout != null) layout.removeComponent(comp); idx--; // Increase index if component is dropped after or above a previous // component VerticalDropLocation loc = details.getDropLocation(); if (loc == VerticalDropLocation.MIDDLE || loc == VerticalDropLocation.BOTTOM) { idx++; } // Add component if (layout != null) { if (idx >= 0) { layout.addComponent(comp, idx); } else { layout.addComponent(comp); } } if (comp instanceof FVLayout) { ((FVLayout) comp).setDragDrop(true); } // Add component alignment if given if (dropAlignment != null && layout != null) { layout.setComponentAlignment(comp, dropAlignment); } }
From source file:com.foc.vaadin.gui.layouts.FVVertical_WYSIWYG_DropHandler.java
License:Apache License
@Override protected void handleDropFromLayout(DragAndDropEvent event) { LayoutBoundTransferable transferable = (LayoutBoundTransferable) event.getTransferable(); VerticalLayoutTargetDetails details = (VerticalLayoutTargetDetails) event.getTargetDetails(); AbstractOrderedLayout layout = (AbstractOrderedLayout) details.getTarget(); Component source = event.getTransferable().getSourceComponent(); int idx = (details).getOverIndex(); Component comp = transferable.getComponent(); // Check that we are not dragging an outer layout into an inner // layout//from w w w. ja v a 2 s . c o m Component parent = layout.getParent(); while (parent != null) { if (parent == comp) { return; } parent = parent.getParent(); } // If source is an instance of a component container then remove // it // from there, // the component cannot have two parents. ComponentContainer sourceLayout = null; if (source instanceof ComponentContainer) { sourceLayout = (ComponentContainer) source; sourceLayout.removeComponent(comp); } // Increase index if component is dropped after or above a // previous // component VerticalDropLocation loc = (details).getDropLocation(); if (loc == VerticalDropLocation.MIDDLE || loc == VerticalDropLocation.BOTTOM) { idx++; } // Add component if (idx >= 0) { layout.addComponent(comp, idx); } else { layout.addComponent(comp); } // Add component alignment if given if (dropAlignment != null) { layout.setComponentAlignment(comp, dropAlignment); } }
From source file:com.haulmont.cuba.web.gui.components.WebFilterHelper.java
License:Apache License
@Override public void initConditionsDragAndDrop(final Tree tree, final ConditionsTree conditions) { final com.vaadin.ui.Tree vTree = tree.unwrap(com.vaadin.ui.Tree.class); vTree.setDragMode(com.vaadin.ui.Tree.TreeDragMode.NODE); vTree.setDropHandler(new DropHandler() { @Override/* w w w. jav a 2s. c o m*/ public void drop(DragAndDropEvent event) { Transferable t = event.getTransferable(); if (t.getSourceComponent() != vTree) return; com.vaadin.ui.Tree.TreeTargetDetails target = (com.vaadin.ui.Tree.TreeTargetDetails) event .getTargetDetails(); VerticalDropLocation location = target.getDropLocation(); Object sourceItemId = t.getData("itemId"); Object targetItemId = target.getItemIdOver(); if (targetItemId == null) return; CollectionDatasource datasource = tree.getDatasource(); AbstractCondition sourceCondition = (AbstractCondition) datasource.getItem(sourceItemId); AbstractCondition targetCondition = (AbstractCondition) datasource.getItem(targetItemId); Node<AbstractCondition> sourceNode = conditions.getNode(sourceCondition); Node<AbstractCondition> targetNode = conditions.getNode(targetCondition); if (isAncestorOf(targetNode, sourceNode)) return; boolean moveToTheSameParent = Objects.equals(sourceNode.getParent(), targetNode.getParent()); if (location == VerticalDropLocation.MIDDLE) { if (sourceNode.getParent() == null) { conditions.getRootNodes().remove(sourceNode); } else { sourceNode.getParent().getChildren().remove(sourceNode); } targetNode.addChild(sourceNode); refreshConditionsDs(); tree.expand(targetCondition.getId()); } else { List<Node<AbstractCondition>> siblings; if (targetNode.getParent() == null) siblings = conditions.getRootNodes(); else siblings = targetNode.getParent().getChildren(); int targetIndex = siblings.indexOf(targetNode); if (location == VerticalDropLocation.BOTTOM) targetIndex++; int sourceNodeIndex; if (sourceNode.getParent() == null) { sourceNodeIndex = conditions.getRootNodes().indexOf(sourceNode); conditions.getRootNodes().remove(sourceNode); } else { sourceNodeIndex = sourceNode.getParent().getChildren().indexOf(sourceNode); sourceNode.getParent().getChildren().remove(sourceNode); } //decrease drop position index if dragging from top to bottom inside the same parent node if (moveToTheSameParent && (sourceNodeIndex < targetIndex)) targetIndex--; if (targetNode.getParent() == null) { sourceNode.parent = null; conditions.getRootNodes().add(targetIndex, sourceNode); } else { targetNode.getParent().insertChildAt(targetIndex, sourceNode); } refreshConditionsDs(); } } protected boolean isAncestorOf(Node childNode, Node possibleParentNode) { while (childNode.getParent() != null) { if (childNode.getParent().equals(possibleParentNode)) return true; childNode = childNode.getParent(); } return false; } protected void refreshConditionsDs() { tree.getDatasource().refresh(Collections.singletonMap("conditions", conditions)); } @Override public AcceptCriterion getAcceptCriterion() { return new Or(new AbstractSelect.TargetItemIs(vTree, getGroupConditionIds().toArray()), new Not(AbstractSelect.VerticalLocationIs.MIDDLE)); } protected List<UUID> getGroupConditionIds() { List<UUID> groupConditions = new ArrayList<>(); List<AbstractCondition> list = conditions.toConditionsList(); for (AbstractCondition condition : list) { if (condition instanceof GroupCondition) groupConditions.add(condition.getId()); } return groupConditions; } }); }
From source file:com.haulmont.cuba.web.widgets.addons.dragdroplayouts.drophandlers.DefaultFormLayoutDropHandler.java
License:Apache License
@Override protected void handleComponentReordering(DragAndDropEvent event) { LayoutBoundTransferable transferable = (LayoutBoundTransferable) event.getTransferable(); FormLayoutTargetDetails details = (FormLayoutTargetDetails) event.getTargetDetails(); DDFormLayout layout = (DDFormLayout) details.getTarget(); Component comp = transferable.getComponent(); int idx = details.getOverIndex(); int oldIdx = layout.getComponentIndex(comp); if (idx == oldIdx) { // Dropping on myself return;/*from www .java2 s . c om*/ } // Detach layout.removeComponent(comp); if (idx > 0 && idx > oldIdx) { idx--; } // Increase index if component is dropped after or above a previous // component VerticalDropLocation loc = details.getDropLocation(); if (loc == VerticalDropLocation.MIDDLE || loc == VerticalDropLocation.BOTTOM) { idx++; } // Add component if (idx >= 0) { layout.addComponent(comp, idx); } else { layout.addComponent(comp); } // Add component alignment if given if (dropAlignment != null) { layout.setComponentAlignment(comp, dropAlignment); } }
From source file:com.haulmont.cuba.web.widgets.addons.dragdroplayouts.drophandlers.DefaultFormLayoutDropHandler.java
License:Apache License
@Override protected void handleDropFromLayout(DragAndDropEvent event) { LayoutBoundTransferable transferable = (LayoutBoundTransferable) event.getTransferable(); FormLayoutTargetDetails details = (FormLayoutTargetDetails) event.getTargetDetails(); AbstractOrderedLayout layout = (AbstractOrderedLayout) details.getTarget(); Component source = event.getTransferable().getSourceComponent(); int idx = details.getOverIndex(); Component comp = transferable.getComponent(); // Check that we are not dragging an outer layout into an inner // layout//from w ww. j a v a 2s.co m Component parent = layout.getParent(); while (parent != null) { if (parent == comp) { return; } parent = parent.getParent(); } // Detach from old source if (source instanceof ComponentContainer) { ((ComponentContainer) source).removeComponent(comp); } else if (source instanceof SingleComponentContainer) { ((SingleComponentContainer) source).setContent(null); } // Increase index if component is dropped after or above a // previous // component VerticalDropLocation loc = (details).getDropLocation(); if (loc == VerticalDropLocation.MIDDLE || loc == VerticalDropLocation.BOTTOM) { idx++; } // Add component if (idx >= 0) { layout.addComponent(comp, idx); } else { layout.addComponent(comp); } // Add component alignment if given if (dropAlignment != null) { layout.setComponentAlignment(comp, dropAlignment); } }
From source file:com.haulmont.cuba.web.widgets.addons.dragdroplayouts.drophandlers.DefaultFormLayoutDropHandler.java
License:Apache License
@Override protected void handleHTML5Drop(DragAndDropEvent event) { FormLayoutTargetDetails details = (FormLayoutTargetDetails) event.getTargetDetails(); int idx = details.getOverIndex(); AbstractOrderedLayout layout = (AbstractOrderedLayout) details.getTarget(); // Increase index if component is dropped after or above a // previous component VerticalDropLocation loc = details.getDropLocation(); if (loc == VerticalDropLocation.MIDDLE || loc == VerticalDropLocation.BOTTOM) { idx++;/*from w ww . j ava2 s . c o m*/ } // Add component if (idx >= 0) { layout.addComponent(resolveComponentFromHTML5Drop(event), idx); } else { layout.addComponent(resolveComponentFromHTML5Drop(event)); } // Add component alignment if given if (dropAlignment != null) { layout.setComponentAlignment(resolveComponentFromHTML5Drop(event), dropAlignment); } }
From source file:com.haulmont.cuba.web.widgets.addons.dragdroplayouts.drophandlers.DefaultVerticalLayoutDropHandler.java
License:Apache License
/** * Called when a component changed location within the layout * //from w ww . ja va 2s . c o m * @param event * The drag and drop event */ @Override protected void handleComponentReordering(DragAndDropEvent event) { // Component re-ordering LayoutBoundTransferable transferable = (LayoutBoundTransferable) event.getTransferable(); VerticalLayoutTargetDetails details = (VerticalLayoutTargetDetails) event.getTargetDetails(); AbstractOrderedLayout layout = (AbstractOrderedLayout) details.getTarget(); Component comp = transferable.getComponent(); int idx = details.getOverIndex(); int oldIndex = layout.getComponentIndex(comp); if (idx == oldIndex) { // Index did not change return; } // Detach layout.removeComponent(comp); // Account for detachment if new index is bigger then old index if (idx > oldIndex) { idx--; } // Increase index if component is dropped after or above a previous // component VerticalDropLocation loc = details.getDropLocation(); if (loc == VerticalDropLocation.MIDDLE || loc == VerticalDropLocation.BOTTOM) { idx++; } // Add component if (idx >= 0) { layout.addComponent(comp, idx); } else { layout.addComponent(comp); } // Add component alignment if given if (dropAlignment != null) { layout.setComponentAlignment(comp, dropAlignment); } }
From source file:com.haulmont.cuba.web.widgets.addons.dragdroplayouts.drophandlers.DefaultVerticalLayoutDropHandler.java
License:Apache License
/** * Handle a drop from another layout//from w w w . j a va 2 s. co m * * @param event * The drag and drop event */ @Override protected void handleDropFromLayout(DragAndDropEvent event) { LayoutBoundTransferable transferable = (LayoutBoundTransferable) event.getTransferable(); VerticalLayoutTargetDetails details = (VerticalLayoutTargetDetails) event.getTargetDetails(); AbstractOrderedLayout layout = (AbstractOrderedLayout) details.getTarget(); Component source = event.getTransferable().getSourceComponent(); int idx = (details).getOverIndex(); Component comp = transferable.getComponent(); // Check that we are not dragging an outer layout into an inner // layout Component parent = layout.getParent(); while (parent != null) { if (parent == comp) { return; } parent = parent.getParent(); } // Detach from old source if (source instanceof ComponentContainer) { ((ComponentContainer) source).removeComponent(comp); } else if (source instanceof SingleComponentContainer) { ((SingleComponentContainer) source).setContent(null); } // Increase index if component is dropped after or above a // previous // component VerticalDropLocation loc = (details).getDropLocation(); if (loc == VerticalDropLocation.MIDDLE || loc == VerticalDropLocation.BOTTOM) { idx++; } // Add component if (idx >= 0) { layout.addComponent(comp, idx); } else { layout.addComponent(comp); } // Add component alignment if given if (dropAlignment != null) { layout.setComponentAlignment(comp, dropAlignment); } }
From source file:com.haulmont.cuba.web.widgets.addons.dragdroplayouts.drophandlers.DefaultVerticalLayoutDropHandler.java
License:Apache License
@Override protected void handleHTML5Drop(DragAndDropEvent event) { VerticalLayoutTargetDetails details = (VerticalLayoutTargetDetails) event.getTargetDetails(); AbstractOrderedLayout layout = (AbstractOrderedLayout) details.getTarget(); int idx = (details).getOverIndex(); // Increase index if component is dropped after or above a // previous// w w w .jav a 2 s. co m // component VerticalDropLocation loc = (details).getDropLocation(); if (loc == VerticalDropLocation.MIDDLE || loc == VerticalDropLocation.BOTTOM) { idx++; } Component comp = resolveComponentFromHTML5Drop(event); // Add component if (idx >= 0) { layout.addComponent(comp, idx); } else { layout.addComponent(comp); } // Add component alignment if given if (dropAlignment != null) { layout.setComponentAlignment(comp, dropAlignment); } }
From source file:com.haulmont.cuba.web.widgets.client.addons.dragdroplayouts.ui.accordion.VDDAccordion.java
License:Apache License
/** * Emphasisizes a container element//from w w w .j a v a2 s.co m * * @param element */ protected void emphasis(Element element, VDragEvent event) { // Find the tab StackItem tab = WidgetUtil.findWidget(element, StackItem.class); if (tab != null && getElement().isOrHasChild(tab.getElement()) && currentlyEmphasised != tab) { VerticalDropLocation location = getDropLocation(tab, event); if (location == VerticalDropLocation.MIDDLE) { if (tab.isOpen()) { tab.addStyleName(CLASSNAME_OVER); } else { tab.getWidget(0).addStyleName(CLASSNAME_OVER); } } else if (!spacer.isAttached()) { if (location == VerticalDropLocation.TOP) { insertSpacer(spacer, getElement(), getWidgetIndex(tab)); tab.setHeight((tab.getOffsetHeight() - spacer.getOffsetHeight()) + "px"); } else if (location == VerticalDropLocation.BOTTOM) { insertSpacer(spacer, getElement(), getWidgetIndex(tab) + 1); int newHeight = tab.getOffsetHeight() - spacer.getOffsetHeight(); if (getWidgetIndex(spacer) == getWidgetCount() - 1) { newHeight -= spacer.getOffsetHeight(); } if (newHeight >= 0) { tab.setHeight(newHeight + "px"); } } } currentlyEmphasised = tab; } }