public void drop(DropTargetDropEvent dtde) {
		System.out.println("drop()!");
		if (dtde.getSource() != dropTarget) {
			System.out.println("rejecting for bad source ("
					+ dtde.getSource().getClass().getName() + ")");
			dtde.rejectDrop();
			return;
		}
		Point dropPoint = dtde.getLocation();
		int index = locationToIndex(dropPoint);
		System.out.println("drop index is " + index);
		boolean dropped = false;
		try {
			if ((index == -1) || (index == draggedIndex)) {
				System.out.println("dropped onto self");
				dtde.rejectDrop();
				return;
			}
			dtde.acceptDrop(DnDConstants.ACTION_MOVE);
			System.out.println("accepted");
			Object dragged = dtde.getTransferable().getTransferData(
					localObjectFlavor);
			// move items - note that indicies for insert will
			// change if [removed] source was before target
			System.out.println("drop " + draggedIndex + " to " + index);
			boolean sourceBeforeTarget = (draggedIndex < index);
			System.out.println("source is" + (sourceBeforeTarget ? "" : " not")
					+ " before target");
			System.out.println("insert at "
					+ (sourceBeforeTarget ? index - 1 : index));
			// model.anadirImagen(view.list.getModel().getSize());
			model.deleteImage(draggedIndex);
			model.addImage((sourceBeforeTarget ? index - 1 : index),
					(BufferedImage) dragged);
			model.refresh(this);

			// Reordenamos la lista de rois
			RoiManager rm = RoiManager.getInstance();
			if (rm != null) {
				rm.runCommand("reorder", draggedIndex, index);
			}
			dropped = true;
		} catch (Exception e) {
			e.printStackTrace();
		}
		dtde.dropComplete(dropped);
	}