void (DropTargetDropEvent dtde) { try { final DraggedComponentList dcl = DraggedComponentList.fromTransferable(dtde.getTransferable()); ComponentItem componentItem = SimpleTransferable.getData(dtde.getTransferable(), ComponentItem.class); if (dcl != null || componentItem != null) { final TreePath path = getPathForLocation((int) dtde.getLocation().getX(), (int) dtde.getLocation().getY()); final RadComponent targetComponent = getComponentFromPath(path); if (!myEditor.ensureEditable()) return; if (targetComponent instanceof RadContainer) { final ComponentDropLocation dropLocation = ((RadContainer)targetComponent).getDropLocation(null); if (dcl != null) { if (!FormEditingUtil.isDropOnChild(dcl, dropLocation)) { RadComponent[] components = dcl.getComponents().toArray(RadComponent.EMPTY_ARRAY); RadContainer[] originalParents = dcl.getOriginalParents(); final GridConstraints[] originalConstraints = dcl.getOriginalConstraints(); for(int i=0; i<components.length; i++) { originalParents [i].removeComponent(components [i]); } dropLocation.processDrop(myEditor, components, null, dcl); for (int i = 0; i < originalConstraints.length; i++) { if (originalParents[i].getLayoutManager().isGrid()) { FormEditingUtil.deleteEmptyGridCells(originalParents[i], originalConstraints[i]); } } } } else { new InsertComponentProcessor(myEditor).processComponentInsert(componentItem, dropLocation); } } myEditor.refreshAndSave(true); } setDropTargetComponent(null); } catch (Exception e) { LOG.error(e); } }