Added auto activation for HTML characters (i.e. <&#) in the Preference Page
[phpeclipse.git] / net.sourceforge.phpeclipse / src / net / sourceforge / phpdt / internal / ui / text / template / TemplateEngine.java
index d14b31e..f315c61 100644 (file)
@@ -6,22 +6,20 @@ package net.sourceforge.phpdt.internal.ui.text.template;
 
 import java.util.ArrayList;
 
+import net.sourceforge.phpdt.internal.corext.template.ContextType;
+import net.sourceforge.phpdt.internal.corext.template.DocumentTemplateContext;
+import net.sourceforge.phpdt.internal.corext.template.Template;
+import net.sourceforge.phpdt.internal.corext.template.Templates;
+import net.sourceforge.phpdt.internal.corext.template.php.CompilationUnitContextType;
+import net.sourceforge.phpdt.internal.ui.PHPUiImages;
+import net.sourceforge.phpdt.internal.ui.text.java.IPHPCompletionProposal;
+
+import org.eclipse.jface.text.BadLocationException;
 import org.eclipse.jface.text.IDocument;
 import org.eclipse.jface.text.IRegion;
 import org.eclipse.jface.text.ITextViewer;
 import org.eclipse.jface.text.Region;
-
-//import org.eclipse.jdt.core.ICompilationUnit;
-//import org.eclipse.jdt.core.JavaModelException;
-
-//import org.eclipse.jdt.internal.corext.Assert;
-import net.sourceforge.phpdt.internal.corext.template.ContextType;
-import net.sourceforge.phpdt.internal.corext.template.Template;
-import net.sourceforge.phpdt.internal.corext.template.Templates;
-import net.sourceforge.phpdt.internal.corext.template.java.CompilationUnitContext;
-import net.sourceforge.phpdt.internal.corext.template.java.CompilationUnitContextType;
-//import org.eclipse.jdt.internal.ui.JavaPluginImages;
-import net.sourceforge.phpdt.internal.ui.text.java.IJavaCompletionProposal;
+import org.eclipse.swt.graphics.Point;
 //import org.eclipse.jdt.internal.ui.text.link.LinkedPositionManager;
 
 public class TemplateEngine {
@@ -53,8 +51,8 @@ public class TemplateEngine {
        /**
         * Returns the array of matching templates.
         */
-       public IJavaCompletionProposal[] getResults() {
-               return (IJavaCompletionProposal[]) fProposals.toArray(new IJavaCompletionProposal[fProposals.size()]);
+       public IPHPCompletionProposal[] getResults() {
+               return (IPHPCompletionProposal[]) fProposals.toArray(new IPHPCompletionProposal[fProposals.size()]);
        }
 
        /**
@@ -76,9 +74,18 @@ public class TemplateEngine {
 
                if (!(fContextType instanceof CompilationUnitContextType))
                        return;
-               
-               ((CompilationUnitContextType) fContextType).setContextParameters(document, completionPosition);//mpilationUnit);
-               CompilationUnitContext context= (CompilationUnitContext) fContextType.createContext();
+                       
+    Point selection= viewer.getSelectedRange();
+    // remember selected text
+    String selectedText= null;
+    if (selection.y != 0) {
+      try {
+        selectedText= document.get(selection.x, selection.y);
+      } catch (BadLocationException e) {}
+    }
+    
+               ((CompilationUnitContextType) fContextType).setContextParameters(document, completionPosition, selection.y);//mpilationUnit);
+               DocumentTemplateContext context= (DocumentTemplateContext) fContextType.createContext();
                int start= context.getStart();
                int end= context.getEnd();
                IRegion region= new Region(start, end - start);
@@ -86,7 +93,7 @@ public class TemplateEngine {
                Template[] templates= Templates.getInstance().getTemplates();
                for (int i= 0; i != templates.length; i++)
                        if (context.canEvaluate(templates[i]))
-                               fProposals.add(new TemplateProposal(templates[i], context, region, viewer)); //luginImages.get(JavaPluginImages.IMG_OBJS_TEMPLATE)));
+                               fProposals.add(new TemplateProposal(templates[i], context, region, viewer, PHPUiImages.get(PHPUiImages.IMG_OBJS_TEMPLATE))); 
        }
 
 }