@Override
	public void mouseReleased(MouseEvent e) {
		if (isDragging) {
			//System.out.println("DND Mouse Released: " + e.paramString());
			
			// Handle the drop
			currentRenderer.button.updateIcon();
			
			if (targetNode != null) {
				if (!targetNode.isAncestorSelected()) {
					if (componentType == ICON) {
						moveAsOlderSibling();
					} else if (componentType == TEXT) {
						moveAsFirstChild();
					}
				} else if (targetNode.isSelected() && !targetNode.isFirstChild() && (componentType == TEXT)) {
					OutlineLayoutManager layout = targetNode.getTree().getDocument().panel.layout;
					OutlinerCellRendererImpl renderer = layout.getUIComponent(targetNode.prevSibling());
					if (renderer != null) {
						renderer.button.updateIcon();
					}
					
					targetNode = targetNode.prevSibling();
					moveAsFirstChild();
				}
			}
			
			// Terminate Drag and Drop
			reset();
		}
	}