protected Command getCommand() {
		CompoundCommand command = new CompoundCommand();
		command.setDebugLabel("Drag Object Tracker");//$NON-NLS-1$

		Iterator iter = getOperationSet().iterator();

		Request request = getTargetRequest();

		if (isCloneActive())
			request.setType(REQ_CLONE);
		else if (isMove())
			request.setType(REQ_MOVE);
		else
			request.setType(REQ_ORPHAN);

		if (!isCloneActive()) {
			while (iter.hasNext()) {
				EditPart editPart = (EditPart) iter.next();
				command.add(editPart.getCommand(request));
			}
		}

		if (!isMove() || isCloneActive()) {
			if (!isCloneActive())
				request.setType(REQ_ADD);

			if (getTargetEditPart() == null)
				command.add(UnexecutableCommand.INSTANCE);
			else
				command.add(getTargetEditPart().getCommand(getTargetRequest()));
		}

		return command.unwrap();
	}