void (DnDEvent aEvent) { Object attached = aEvent.getAttachedObject(); if (attached instanceof ShelvedChangeListDragBean) { ShelvedChangeListDragBean dragBean = (ShelvedChangeListDragBean)attached; ChangesBrowserNode<?> dropRootNode = getDropRootNode(myTree, aEvent); LocalChangeList targetChangeList; if (dropRootNode != null) { targetChangeList = TreeUtil.getUserObject(LocalChangeList.class, dropRootNode); } else { ShelvedChangeList changeList = ContainerUtil.getFirstItem(dragBean.getShelvedChangelists()); String suggestedName = changeList != null ? changeList.getName() : VcsBundle.message("changes.new.changelist"); String listName = ChangeListUtil.createNameForChangeList(myProject, suggestedName); targetChangeList = ChangeListManager.getInstance(myProject).addChangeList(listName, null); } unshelveSilentlyWithDnd(myProject, dragBean, targetChangeList, !isCopyAction(aEvent)); } else if (attached instanceof ChangeListDragBean) { final ChangeListDragBean dragBean = (ChangeListDragBean)attached; final ChangesBrowserNode<?> changesBrowserNode = dragBean.getTargetNode(); if (changesBrowserNode != null) { changesBrowserNode.acceptDrop(new DefaultChangeListOwner(myProject), dragBean); } } }