refactoring
authorEugene Kudelevsky <Eugene.Kudelevsky@jetbrains.com>
Thu, 8 Apr 2010 16:37:26 +0000 (20:37 +0400)
committerEugene Kudelevsky <Eugene.Kudelevsky@jetbrains.com>
Thu, 8 Apr 2010 16:37:26 +0000 (20:37 +0400)
platform/lang-impl/src/com/intellij/codeInsight/template/CustomTemplateCallback.java
xml/impl/src/com/intellij/codeInsight/template/zencoding/XmlZenCodingInterpreter.java

index eb19c68411d1164943634dbf8a58f2c2909c5da8..50693ba4d0bcfc000d6aa193d8e91725ff14d695 100644 (file)
@@ -19,19 +19,23 @@ import com.intellij.codeInsight.template.impl.TemplateImpl;
 import com.intellij.codeInsight.template.impl.TemplateManagerImpl;
 import com.intellij.codeInsight.template.impl.TemplateSettings;
 import com.intellij.openapi.application.ApplicationManager;
+import com.intellij.openapi.editor.Document;
 import com.intellij.openapi.editor.Editor;
 import com.intellij.openapi.editor.RangeMarker;
 import com.intellij.openapi.editor.ScrollType;
 import com.intellij.openapi.fileTypes.FileType;
 import com.intellij.openapi.project.Project;
+import com.intellij.psi.PsiDocumentManager;
 import com.intellij.psi.PsiFile;
 import com.intellij.psi.codeStyle.CodeStyleManager;
 import com.intellij.util.containers.HashMap;
-import com.intellij.util.containers.HashSet;
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.Nullable;
 
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+import java.util.Map;
 
 /**
  * @author Eugene.Kudelevsky
@@ -91,25 +95,6 @@ public class CustomTemplateCallback {
     return result;
   }
 
-  public boolean templateContainsVars(@NotNull String key, String... varNames) {
-    List<TemplateImpl> templates = getMatchingTemplates(key);
-    templates = filterApplicableCandidates(templates);
-    if (templates.size() == 0) {
-      return false;
-    }
-    TemplateImpl template = templates.get(0);
-    Set<String> varSet = new HashSet<String>();
-    for (int i = 0; i < template.getVariableCount(); i++) {
-      varSet.add(template.getVariableNameAt(i));
-    }
-    for (String varName : varNames) {
-      if (!varSet.contains(varName)) {
-        return false;
-      }
-    }
-    return true;
-  }
-
   /**
    * @param key
    * @param predefinedVarValues
@@ -118,7 +103,6 @@ public class CustomTemplateCallback {
   public boolean startTemplate(@NotNull String key,
                                Map<String, String> predefinedVarValues,
                                @Nullable TemplateInvokationListener listener) {
-    //int caretOffset = myEditor.getCaretModel().getOffset();
     List<TemplateImpl> templates = getMatchingTemplates(key);
     templates = filterApplicableCandidates(templates);
     if (templates.size() > 0) {
@@ -248,4 +232,14 @@ public class CustomTemplateCallback {
   public Project getProject() {
     return myProject;
   }
+
+  public void moveToOffset(int offset) {
+    myEditor.getCaretModel().moveToOffset(offset);
+  }
+
+  public void insertString(int offset, String text) {
+    Document document = myEditor.getDocument();
+    document.insertString(offset, text);
+    PsiDocumentManager.getInstance(myProject).commitDocument(document);
+  }
 }
index 2502424eb1b43e1a11d8ca760454b88fe01305fa..ba17fc7599475697fb0b9d258c8ea4c17d87d2e1 100644 (file)
@@ -22,7 +22,6 @@ import com.intellij.lang.ASTNode;
 import com.intellij.openapi.application.ApplicationManager;
 import com.intellij.openapi.diagnostic.Logger;
 import com.intellij.openapi.editor.Document;
-import com.intellij.openapi.editor.Editor;
 import com.intellij.openapi.fileEditor.FileDocumentManager;
 import com.intellij.openapi.project.Project;
 import com.intellij.openapi.util.Pair;
@@ -84,7 +83,6 @@ class XmlZenCodingInterpreter {
   private void gotoChild(Object templateBoundsKey) {
     int startOfTemplate = myCallback.getStartOfTemplate(templateBoundsKey);
     int endOfTemplate = myCallback.getEndOfTemplate(templateBoundsKey);
-    Editor editor = myCallback.getEditor();
     int offset = myCallback.getOffset();
 
     PsiFile file = myCallback.getFile();
@@ -106,7 +104,7 @@ class XmlZenCodingInterpreter {
 
     if (newOffset >= 0) {
       myCallback.fixEndOffset();
-      editor.getCaretModel().moveToOffset(newOffset);
+      myCallback.moveToOffset(newOffset);
     }
   }
 
@@ -275,10 +273,8 @@ class XmlZenCodingInterpreter {
   }
 
   private static void insertText(CustomTemplateCallback callback, String text) {
-    Editor editor = callback.getEditor();
-    int offset = editor.getCaretModel().getOffset();
-    editor.getDocument().insertString(offset, text);
-    PsiDocumentManager.getInstance(callback.getProject()).commitAllDocuments();
+    int offset = callback.getOffset();
+    callback.insertString(offset, text);
   }
 
   private boolean invokeTemplateAndProcessTail(final TemplateToken templateToken,