code: private void handleDropSitemapEntry(
          final CmsSitemapTreeItem sitemapEntry,
          final I_CmsDropTarget target,
          CmsClientSitemapEntry parent) {
  
          if (isChangedPosition(sitemapEntry, target, true)) {
              // moving a tree entry around
              final CmsClientSitemapEntry entry = sitemapEntry.getSitemapEntry();
              m_controller.ensureUniqueName(parent, entry.getName(), new I_CmsSimpleCallback<String>() {
  
                  public void execute(String uniqueName) {
  
                      if (!uniqueName.equals(entry.getName()) && isChangedPosition(sitemapEntry, target, false)) {
                          m_controller.editAndChangeName(
                              entry,
                              uniqueName,
                              Collections.<CmsPropertyModification> emptyList(),
                              entry.isNew(),
                              CmsReloadMode.none);
                          m_controller.move(entry, m_insertPath + uniqueName + "/", m_insertIndex);
                      } else {
                          m_controller.move(entry, m_insertPath + entry.getName() + "/", m_insertIndex);
                      }
                  }
              });
          } else {
              sitemapEntry.resetEntry();
          }
      }
docs: Handles the drop for a sitemap item which was dragged to a different position.<p>
  
  @param sitemapEntry the dropped item
  @param target the drop target
  @param parent the parent sitemap entry