/* * (c) Copyright IBM Corp. 2000, 2001. * All Rights Reserved. */ package net.sourceforge.phpdt.internal.ui.text.template; import net.sourceforge.phpdt.internal.corext.template.TemplateMessages; import net.sourceforge.phpdt.internal.ui.text.java.IPHPCompletionProposal; import net.sourceforge.phpeclipse.PHPeclipsePlugin; import org.eclipse.core.runtime.CoreException; import org.eclipse.jface.dialogs.MessageDialog; 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.swt.graphics.Point; import org.eclipse.swt.widgets.Shell; //import net.sourceforge.phpdt.internal.ui.text.link.LinkedPositionManager; //import net.sourceforge.phpdt.internal.ui.text.link.LinkedPositionUI; //import net.sourceforge.phpdt.internal.ui.util.ExceptionHandler; /** * A PHP identifier proposal. */ public abstract class AbstractProposal implements IPHPCompletionProposal { protected IRegion fSelectedRegion; // initialized by apply() protected final ITextViewer fViewer; public AbstractProposal(ITextViewer viewer) { fViewer = viewer; } protected static String textToHTML(String string) { StringBuffer buffer = new StringBuffer(string.length()); buffer.append("
"); //$NON-NLS-1$

    for (int i = 0; i != string.length(); i++) {
      char ch = string.charAt(i);

      switch (ch) {
        case '&' :
          buffer.append("&"); //$NON-NLS-1$
          break;

        case '<' :
          buffer.append("<"); //$NON-NLS-1$
          break;

        case '>' :
          buffer.append(">"); //$NON-NLS-1$
          break;

        case '\t' :
          buffer.append("    "); //$NON-NLS-1$
          break;

        case '\n' :
          buffer.append("
"); //$NON-NLS-1$ break; default : buffer.append(ch); break; } } buffer.append("
"); //$NON-NLS-1$ return buffer.toString(); } /* * @see ICompletionProposal#getSelection(IDocument) */ public Point getSelection(IDocument document) { return new Point(fSelectedRegion.getOffset(), fSelectedRegion.getLength()); } protected void handleException(CoreException e) { Shell shell = fViewer.getTextWidget().getShell(); PHPeclipsePlugin.log(e); // ExceptionHandler.handle(e, shell, ObfuscatorMessages.getString("TemplateEvaluator.error.title"), null); //$NON-NLS-1$ } protected void openErrorDialog(BadLocationException e) { Shell shell = fViewer.getTextWidget().getShell(); MessageDialog.openError(shell, TemplateMessages.getString("TemplateEvaluator.error.title"), e.getMessage()); //$NON-NLS-1$ } }