error messages for extract method
authorMaxim.Medvedev <maxim.medvedev@jetbrains.com>
Wed, 1 Feb 2012 08:36:07 +0000 (12:36 +0400)
committerMaxim.Medvedev <maxim.medvedev@jetbrains.com>
Wed, 1 Feb 2012 12:00:25 +0000 (16:00 +0400)
plugins/groovy/src/org/jetbrains/plugins/groovy/refactoring/extract/method/GroovyExtractMethodHandler.java
plugins/groovy/test/org/jetbrains/plugins/groovy/refactoring/extract/method/ExtractMethodTest.java

index 4522d2df76661a97f09eea7843f9160589c6d157..5b0bcf500e2caa79be2da8b4df4145844e5ac6b6 100644 (file)
@@ -26,7 +26,9 @@ import com.intellij.openapi.editor.SelectionModel;
 import com.intellij.openapi.project.Project;
 import com.intellij.psi.*;
 import com.intellij.psi.tree.IElementType;
+import com.intellij.refactoring.HelpID;
 import com.intellij.refactoring.RefactoringActionHandler;
+import com.intellij.refactoring.util.CommonRefactoringUtil;
 import com.intellij.util.IncorrectOperationException;
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.Nullable;
@@ -53,13 +55,12 @@ import java.util.ArrayList;
  */
 public class GroovyExtractMethodHandler extends ExtractHandlerBase implements RefactoringActionHandler {
   protected static String REFACTORING_NAME = GroovyRefactoringBundle.message("extract.method.title");
-  private String myInvokeResult = "ok";
 
   public void invoke(@NotNull Project project, Editor editor, PsiFile file, DataContext dataContext) {
     invoke(project, editor, file);
   }
 
-  void invoke(Project project, Editor editor, PsiFile file) {
+  void invoke(Project project, Editor editor, PsiFile file) throws CommonRefactoringUtil.RefactoringErrorHintException {
     editor.getScrollingModel().scrollToCaret(ScrollType.MAKE_VISIBLE);
     // select editor text fragment
     final SelectionModel model = editor.getSelectionModel();
@@ -71,7 +72,7 @@ public class GroovyExtractMethodHandler extends ExtractHandlerBase implements Re
       invokeOnEditor(project, editor, file, model.getSelectionStart(), model.getSelectionEnd());
     }
     catch (ExtractException e) {
-      myInvokeResult = e.getMessage();
+      CommonRefactoringUtil.showErrorHint(project, editor, e.getMessage(), REFACTORING_NAME, HelpID.EXTRACT_METHOD);
     }
   }
 
@@ -140,10 +141,6 @@ public class GroovyExtractMethodHandler extends ExtractHandlerBase implements Re
     // does nothing
   }
 
-  public String getInvokeResult() {
-    return myInvokeResult;
-  }
-
   @Nullable
   private static PsiElement calculateAnchorToInsertBefore(GrMemberOwner owner, PsiElement startElement) {
     while (startElement != null && !isEnclosingDefinition(owner, startElement)) {
index 8cf703b51cd8ce1dfc4bf3deb8ad8ff31c478e7b..7ac87f59b676413e91493bd24a8a7e39419a1a6c 100644 (file)
@@ -18,6 +18,7 @@ package org.jetbrains.plugins.groovy.refactoring.extract.method;
 
 import com.intellij.openapi.util.text.StringUtil;
 import com.intellij.psi.impl.source.PostprocessReformattingAspect;
+import com.intellij.refactoring.util.CommonRefactoringUtil;
 import org.jetbrains.plugins.groovy.GroovyFileType;
 import org.jetbrains.plugins.groovy.LightGroovyTestCase;
 import org.jetbrains.plugins.groovy.util.TestUtils;
@@ -35,8 +36,13 @@ public class ExtractMethodTest extends LightGroovyTestCase {
 
   private void doAntiTest(String errorMessage) throws Exception {
     GroovyExtractMethodHandler handler = configureFromText(readInput().get(0));
-    handler.invoke(getProject(), myFixture.getEditor(), myFixture.getFile());
-    assertEquals(errorMessage, handler.getInvokeResult());
+    try {
+      handler.invoke(getProject(), myFixture.getEditor(), myFixture.getFile());
+      assertTrue(false);
+    }
+    catch (CommonRefactoringUtil.RefactoringErrorHintException e) {
+      assertEquals(errorMessage, e.getLocalizedMessage());
+    }
   }
 
   private List<String> readInput() {