package com.sap.ide.refactoring.op.move; import java.util.Arrays; import java.util.Collection; import org.eclipse.core.runtime.IProgressMonitor; import com.sap.ide.refactoring.core.AbstractRefactoringCommand; import com.sap.ide.refactoring.core.textual.RefactoringEditorFacade; import com.sap.ide.refactoring.model.move.MovableElement; import com.sap.ide.refactoring.model.move.MovableElementTarget; import com.sap.tc.moin.repository.PRI; import com.sap.tc.moin.repository.commands.PartitionOperation; import com.sap.tc.moin.repository.commands.PartitionOperation.Operation; public class MoveCommand extends AbstractRefactoringCommand { private final MovableElement elementToMove; private final MovableElementTarget target; protected MoveCommand(RefactoringEditorFacade facade, MovableElement elementToMove, MovableElementTarget target) { super(facade.getEditorConnection(), "Move ModelElement"); this.elementToMove = elementToMove; this.target = target; } @Override protected void performRefactoring(IProgressMonitor pm) { pm.beginTask("Moving... (including reference re-evaluations)", 1); try { target.movetoHere(); } finally { pm.done(); } } @Override public Collection<PartitionOperation> getAffectedPartitions() { PRI targetPri = target.getWrappedModelElement().get___Partition().getPri(); PRI sourcePri = elementToMove.getWrappedModelElement().get___Partition().getPri(); return Arrays.asList(new PartitionOperation(Operation.EDIT, targetPri), new PartitionOperation(Operation.EDIT, sourcePri)); } }