use of com.haulmont.cuba.web.widgets.client.addons.dragdroplayouts.ui.DragCaptionInfo in project cuba by cuba-platform.
the class DDUtil method onBeforeClientResponse.
public static void onBeforeClientResponse(HasComponents layout, DragAndDropAwareState state) {
DDLayoutState dragAndDropState = state.getDragAndDropState();
Iterator<Component> componentIterator = layout.iterator();
dragAndDropState.draggable = new ArrayList<>();
dragAndDropState.referenceImageComponents = new HashMap<>();
dragAndDropState.nonGrabbable = new ArrayList<>();
dragAndDropState.dragCaptions = new HashMap<>();
if (layout instanceof AbstractClientConnector) {
for (DragCaptionInfo dci : dragAndDropState.dragCaptions.values()) {
if (dci.iconKey != null) {
((AbstractClientConnector) layout).setConnectorResource(dci.iconKey, null);
}
}
}
KeyMapper<Resource> keyMapper = new KeyMapper<>();
while (componentIterator.hasNext()) {
Component c = componentIterator.next();
if (layout instanceof DragFilterSupport && ((DragFilterSupport) layout).getDragFilter().isDraggable(c)) {
dragAndDropState.draggable.add(c);
}
if (layout instanceof DragGrabFilterSupport) {
DragGrabFilter dragGrabFilter = ((DragGrabFilterSupport) layout).getDragGrabFilter();
if (dragGrabFilter != null) {
addNonGrabbedComponents(dragAndDropState.nonGrabbable, c, dragGrabFilter);
}
}
if (layout instanceof HasDragCaptionProvider) {
DragCaptionProvider dragCaptionProvider = ((HasDragCaptionProvider) layout).getDragCaptionProvider();
if (dragCaptionProvider != null) {
DragCaption dragCaption = dragCaptionProvider.getDragCaption(c);
if (dragCaption != null) {
String dragIconKey = null;
if (dragCaption.getIcon() != null && layout instanceof AbstractClientConnector) {
dragIconKey = keyMapper.key(dragCaption.getIcon());
((AbstractClientConnector) layout).setConnectorResource(dragIconKey, dragCaption.getIcon());
}
DragCaptionInfo dci = new DragCaptionInfo();
dci.caption = dragCaption.getCaption();
dci.contentMode = dragCaption.getContentMode();
dci.iconKey = dragIconKey;
dragAndDropState.dragCaptions.put(c, dci);
}
}
}
if (layout instanceof DragImageReferenceSupport) {
DragImageProvider provider = ((DragImageReferenceSupport) layout).getDragImageProvider();
if (provider != null) {
Component dragImage = provider.getDragImage(c);
if (dragImage != null) {
dragAndDropState.referenceImageComponents.put(c, dragImage);
}
}
}
}
}
Aggregations