use of com.vaadin.ui.SingleComponentContainer in project cuba by cuba-platform.
the class DefaultFormLayoutDropHandler method handleDropFromLayout.
/*
* (non-Javadoc)
*
* @see
* com.haulmont.cuba.web.widgets.addons.dragdroplayouts.drophandlers.AbstractDefaultLayoutDropHandler
* #handleDropFromLayout(com.vaadin.event.dd.DragAndDropEvent)
*/
@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
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);
}
}
use of com.vaadin.ui.SingleComponentContainer in project cuba by cuba-platform.
the class DefaultPanelDropHandler method handleDropFromLayout.
@Override
protected void handleDropFromLayout(DragAndDropEvent event) {
LayoutBoundTransferable transferable = (LayoutBoundTransferable) event.getTransferable();
PanelTargetDetails details = (PanelTargetDetails) event.getTargetDetails();
Component component = transferable.getComponent();
DDPanel panel = (DDPanel) details.getTarget();
// Detach from old source
Component source = transferable.getSourceComponent();
if (source instanceof ComponentContainer) {
((ComponentContainer) source).removeComponent(component);
} else if (source instanceof SingleComponentContainer) {
((SingleComponentContainer) source).setContent(null);
}
// Attach to new source
panel.setContent(component);
}
use of com.vaadin.ui.SingleComponentContainer in project cuba by cuba-platform.
the class DefaultVerticalLayoutDropHandler method handleDropFromLayout.
/**
* Handle a drop from another layout
*
* @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);
}
}
use of com.vaadin.ui.SingleComponentContainer in project cuba by cuba-platform.
the class DefaultVerticalLayoutDropHandler method handleDropFromLayout.
/**
* Handle a drop from another layout
*
* @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);
}
}
use of com.vaadin.ui.SingleComponentContainer in project cuba by cuba-platform.
the class DefaultTabSheetDropHandler method handleDropFromLayout.
@Override
protected void handleDropFromLayout(DragAndDropEvent event) {
LayoutBoundTransferable transferable = (LayoutBoundTransferable) event.getTransferable();
TabSheetTargetDetails details = (TabSheetTargetDetails) event.getTargetDetails();
DDTabSheet tabSheet = (DDTabSheet) details.getTarget();
Component c = transferable.getComponent();
HorizontalDropLocation location = details.getDropLocation();
int idx = details.getOverIndex();
ComponentContainer source = (ComponentContainer) transferable.getSourceComponent();
// Detach from old source
if (source instanceof ComponentContainer) {
((ComponentContainer) source).removeComponent(c);
} else if (source instanceof SingleComponentContainer) {
((SingleComponentContainer) source).setContent(null);
}
if (location == HorizontalDropLocation.LEFT) {
tabSheet.addTab(c, idx);
} else if (location == HorizontalDropLocation.RIGHT) {
tabSheet.addTab(c, idx + 1);
}
}
Aggregations