package org.erlide.wrangler.refactoring.core.internal; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.OperationCanceledException; import org.eclipse.ltk.core.refactoring.RefactoringStatus; import org.erlide.wrangler.refactoring.backend.IRefactoringRpcMessage; import org.erlide.wrangler.refactoring.backend.internal.WranglerBackendManager; import org.erlide.wrangler.refactoring.core.SimpleOneStepWranglerRefactoring; import org.erlide.wrangler.refactoring.selection.IErlMemberSelection; import org.erlide.wrangler.refactoring.selection.IErlSelection; import org.erlide.wrangler.refactoring.util.GlobalParameters; public class IntroduceNewVariableRefactoring extends SimpleOneStepWranglerRefactoring { @Override public IRefactoringRpcMessage run(final IErlSelection selection) { final IErlMemberSelection sel = (IErlMemberSelection) selection; return WranglerBackendManager.getRefactoringBackend().call( "intro_new_var_eclipse", "sxxsxi", sel.getFilePath(), sel.getSelectionRange().getStartPos(), sel.getSelectionRange().getEndPos(), userInput, sel.getSearchPath(), GlobalParameters.getTabWidth()); } @Override public RefactoringStatus checkInitialConditions(final IProgressMonitor pm) throws CoreException, OperationCanceledException { final IErlSelection sel = GlobalParameters.getWranglerSelection(); if (sel instanceof IErlMemberSelection) { return new RefactoringStatus(); } return RefactoringStatus.createFatalErrorStatus("Please select an expression!"); } @Override public String getName() { return "Introduce new variable"; } }