Improved auto completion
[phpeclipse.git] / net.sourceforge.phpeclipse / src / net / sourceforge / phpdt / internal / ui / text / template / TemplateProposal.java
index 5178caa..c97c29a 100644 (file)
@@ -9,10 +9,13 @@ import net.sourceforge.phpdt.internal.corext.template.TemplateBuffer;
 import net.sourceforge.phpdt.internal.corext.template.TemplateContext;
 import net.sourceforge.phpdt.internal.corext.template.TemplateMessages;
 import net.sourceforge.phpdt.internal.corext.template.TemplatePosition;
-import net.sourceforge.phpeclipse.PHPeclipsePlugin;
-import org.eclipse.core.runtime.CoreException;
 import net.sourceforge.phpdt.internal.corext.template.java.CompilationUnitContext;
 import net.sourceforge.phpdt.internal.corext.template.java.JavaTemplateMessages;
+import net.sourceforge.phpdt.internal.ui.text.java.IJavaCompletionProposal;
+import net.sourceforge.phpeclipse.PHPeclipsePlugin;
+import org.eclipse.core.runtime.CoreException;
+import net.sourceforge.phpdt.internal.ui.text.link.LinkedPositionManager;
+import net.sourceforge.phpdt.internal.ui.text.link.LinkedPositionUI;
 import org.eclipse.jface.dialogs.MessageDialog;
 import org.eclipse.jface.text.BadLocationException;
 import org.eclipse.jface.text.IDocument;
@@ -22,8 +25,6 @@ import org.eclipse.jface.text.contentassist.IContextInformation;
 import org.eclipse.swt.graphics.Image;
 import org.eclipse.swt.graphics.Point;
 import org.eclipse.swt.widgets.Shell;
-//import org.eclipse.jdt.internal.ui.JavaPlugin;
-import net.sourceforge.phpdt.internal.ui.text.java.IJavaCompletionProposal;
 //import org.eclipse.jdt.internal.ui.text.link.LinkedPositionManager;
 //import org.eclipse.jdt.internal.ui.text.link.LinkedPositionUI;
 //import org.eclipse.jdt.internal.ui.util.ExceptionHandler;
@@ -36,12 +37,12 @@ public class TemplateProposal implements IJavaCompletionProposal {
        private final Template fTemplate;
        private final TemplateContext fContext;
        private final ITextViewer fViewer;
-//     private final Image fImage;
+       private final Image fImage;
        private final IRegion fRegion;
 
        private TemplateBuffer fTemplateBuffer;
        private String fOldText;
-//     private IRegion fSelectedRegion; // initialized by apply()
+       private IRegion fSelectedRegion; // initialized by apply()
                
        /**
         * Creates a template proposal with a template and its context.
@@ -49,7 +50,7 @@ public class TemplateProposal implements IJavaCompletionProposal {
         * @param context   the context in which the template was requested.
         * @param image     the icon of the proposal.
         */     
-       public TemplateProposal(Template template, TemplateContext context, IRegion region, ITextViewer viewer){ //, Image image) {
+       public TemplateProposal(Template template, TemplateContext context, IRegion region, ITextViewer viewer, Image image) {
 //             Assert.isNotNull(template);
 //             Assert.isNotNull(context);
 //             Assert.isNotNull(region);
@@ -58,7 +59,7 @@ public class TemplateProposal implements IJavaCompletionProposal {
                fTemplate= template;
                fContext= context;
                fViewer= viewer;
-//             fImage= image;
+               fImage= image;
                fRegion= region;
        }
 
@@ -78,7 +79,7 @@ public class TemplateProposal implements IJavaCompletionProposal {
                        document.replace(start, end - start, templateString);   
 
                        // translate positions
-       //              LinkedPositionManager manager= new LinkedPositionManager(document);
+                       LinkedPositionManager manager= new LinkedPositionManager(document);
                        TemplatePosition[] variables= fTemplateBuffer.getVariables();
                        for (int i= 0; i != variables.length; i++) {
                                TemplatePosition variable= variables[i];
@@ -89,15 +90,15 @@ public class TemplateProposal implements IJavaCompletionProposal {
                                int[] offsets= variable.getOffsets();
                                int length= variable.getLength();
                                
-//                             for (int j= 0; j != offsets.length; j++)
-//                                     manager.addPosition(offsets[j] + start, length);
+                               for (int j= 0; j != offsets.length; j++)
+                                       manager.addPosition(offsets[j] + start, length);
                        }
                        
-//                     LinkedPositionUI editor= new LinkedPositionUI(fViewer, manager);
-//                     editor.setFinalCaretOffset(getCaretOffset(fTemplateBuffer) + start);
-//                     editor.enter();
+                       LinkedPositionUI editor= new LinkedPositionUI(fViewer, manager);
+                       editor.setFinalCaretOffset(getCaretOffset(fTemplateBuffer) + start);
+                       editor.enter();
 
-//                     fSelectedRegion= editor.getSelectedRegion();
+                       fSelectedRegion= editor.getSelectedRegion();
                        
                } catch (BadLocationException e) {
                        PHPeclipsePlugin.log(e);        
@@ -124,8 +125,8 @@ public class TemplateProposal implements IJavaCompletionProposal {
         * @see ICompletionProposal#getSelection(IDocument)
         */
        public Point getSelection(IDocument document) {
-//             return new Point(fSelectedRegion.getOffset(), fSelectedRegion.getLength());
-         return null;
+               return new Point(fSelectedRegion.getOffset(), fSelectedRegion.getLength());
+//       return null;
   }
 
        /*
@@ -155,8 +156,7 @@ public class TemplateProposal implements IJavaCompletionProposal {
         * @see ICompletionProposal#getImage()
         */
        public Image getImage() {
-//             return fImage;
-     return null;
+               return fImage;
        }
 
        /*