@Override public void onEnter(DragContext context) { super.onEnter(context); PortletChrome portletWidget = (PortletChrome) context.selectedWidgets.get(0); PortletSlot slot = portletWidget.getAssociatedSlot(); if (panel != slot.getParent()) { PortalLayoutConnector originalConnector = ((PortalLayoutConnector) Util.findConnectorFor(slot.getParent())); originalConnector.setOutcomingPortletCandidate(portletWidget); portalConnector.setIncomingPortletCandidate(portletWidget); } configurePostionerSlot(context, slot); }
protected void configurePostionerSlot(DragContext context, PortletSlot slot) { positionerSlot = slot; int targetIndex = DOMUtil.findIntersect( panel, new CoordinateLocation(context.mouseX, context.mouseY), getLocationWidgetComparator()); panel.insert(positionerSlot, targetIndex); positionerSlot.addStyleName("v-portallayout-positioner"); }
@Override public void onDrop(DragContext context) { super.onDrop(context); PortletChrome portletWidget = (PortletChrome) context.selectedWidgets.get(0); if (positionerSlot != null) { positionerSlot.setWidget(portletWidget); } Widget contentWidget = portletWidget.getContentWidget(); ComponentConnector contentConnector = Util.findConnectorFor(contentWidget); PortalLayoutConnector originalConnector = (PortalLayoutConnector) contentConnector.getParent(); if (originalConnector != portalConnector) { portalConnector.propagateHierarchyChangesToServer(); originalConnector.propagateHierarchyChangesToServer(); } else { portalConnector.updatePortletPositionOnServer(contentConnector); } }