use of com.haulmont.cuba.web.widgets.addons.dragdroplayouts.DDAccordion in project cuba by cuba-platform.
the class DefaultAccordionDropHandler method handleComponentReordering.
/**
* Called when tabs are being rearranged
*
* @param event
* A drag and drop event
*/
@Override
protected void handleComponentReordering(DragAndDropEvent event) {
AccordionTargetDetails details = (AccordionTargetDetails) event.getTargetDetails();
DDAccordion acc = (DDAccordion) details.getTarget();
VerticalDropLocation location = details.getDropLocation();
LayoutBoundTransferable transferable = (LayoutBoundTransferable) event.getTransferable();
Component c = transferable.getComponent();
int idx = details.getOverIndex();
Tab tab = acc.getTab(c);
if (location == VerticalDropLocation.TOP) {
// Left of previous tab
int originalIndex = acc.getTabPosition(tab);
if (originalIndex > idx) {
acc.setTabPosition(tab, idx);
} else if (idx - 1 >= 0) {
acc.setTabPosition(tab, idx - 1);
}
} else if (location == VerticalDropLocation.BOTTOM) {
// Right of previous tab
int originalIndex = acc.getTabPosition(tab);
if (originalIndex > idx) {
acc.setTabPosition(tab, idx + 1);
} else {
acc.setTabPosition(tab, idx);
}
}
}
use of com.haulmont.cuba.web.widgets.addons.dragdroplayouts.DDAccordion in project cuba by cuba-platform.
the class DefaultAccordionDropHandler method handleDropFromLayout.
/**
* Adds a new tab from the drop
*
* @param event
* The drag and drop event
*/
@Override
protected void handleDropFromLayout(DragAndDropEvent event) {
LayoutBoundTransferable transferable = (LayoutBoundTransferable) event.getTransferable();
// Get the target details
AccordionTargetDetails details = (AccordionTargetDetails) event.getTargetDetails();
DDAccordion acc = (DDAccordion) details.getTarget();
Component c = transferable.getComponent();
int idx = details.getOverIndex();
VerticalDropLocation location = details.getDropLocation();
// Detach from old source
Component source = transferable.getSourceComponent();
if (source instanceof ComponentContainer) {
((ComponentContainer) source).removeComponent(c);
} else if (source instanceof SingleComponentContainer) {
((SingleComponentContainer) source).setContent(null);
}
if (location == VerticalDropLocation.TOP) {
acc.addTab(c, idx);
} else if (location == VerticalDropLocation.BOTTOM) {
acc.addTab(c, idx + 1);
} else {
acc.addTab(c);
}
}
use of com.haulmont.cuba.web.widgets.addons.dragdroplayouts.DDAccordion in project cuba by cuba-platform.
the class DefaultAccordionDropHandler method handleHTML5Drop.
@Override
protected void handleHTML5Drop(DragAndDropEvent event) {
AccordionTargetDetails details = (AccordionTargetDetails) event.getTargetDetails();
VerticalDropLocation location = details.getDropLocation();
DDAccordion acc = (DDAccordion) details.getTarget();
int idx = details.getOverIndex();
Component c = resolveComponentFromHTML5Drop(event);
c.setCaption(resolveCaptionFromHTML5Drop(event));
if (location == VerticalDropLocation.TOP) {
acc.addTab(c, idx);
} else if (location == VerticalDropLocation.BOTTOM) {
acc.addTab(c, idx + 1);
} else {
acc.addTab(c);
}
}
Aggregations