@Override
    public void drop(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);
      }
    }
@Override
    public void drop(DropTargetDropEvent dtde)