Removed UI.
[phpeclipse.git] / net.sourceforge.phpeclipse / src / net / sourceforge / phpeclipse / phpeditor / PHPEditor.java
diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/phpeditor/PHPEditor.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/phpeditor/PHPEditor.java
deleted file mode 100644 (file)
index adcf53d..0000000
+++ /dev/null
@@ -1,387 +0,0 @@
-package net.sourceforge.phpeclipse.phpeditor;
-
-/**********************************************************************
-Copyright (c) 2000, 2002 IBM Corp. and others.
-All rights reserved. This program and the accompanying materials
-are made available under the terms of the Common Public License v1.0
-which accompanies this distribution, and is available at
-http://www.eclipse.org/legal/cpl-v10.html
-
-Contributors:
-    IBM Corporation - Initial implementation
-    Klaus Hartlage - www.eclipseproject.de
-**********************************************************************/
-import net.sourceforge.phpeclipse.IPreferenceConstants;
-import net.sourceforge.phpeclipse.PHPeclipsePlugin;
-import net.sourceforge.phpeclipse.phpeditor.php.PHPCodeScanner;
-import net.sourceforge.phpeclipse.phpeditor.php.PHPWordExtractor;
-import net.sourceforge.phpeclipse.phpeditor.util.PHPColorProvider;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.help.IHelp;
-import org.eclipse.help.IHelpResource;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.preference.PreferenceConverter;
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.ITextOperationTarget;
-import org.eclipse.jface.text.ITextSelection;
-import org.eclipse.jface.text.source.AnnotationRulerColumn;
-import org.eclipse.jface.text.source.CompositeRuler;
-import org.eclipse.jface.text.source.ISourceViewer;
-import org.eclipse.jface.text.source.IVerticalRuler;
-import org.eclipse.jface.text.source.IVerticalRulerColumn;
-import org.eclipse.jface.text.source.LineNumberRulerColumn;
-import org.eclipse.jface.util.IPropertyChangeListener;
-import org.eclipse.jface.util.PropertyChangeEvent;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.RGB;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.editors.text.TextEditor;
-import org.eclipse.ui.help.WorkbenchHelp;
-import org.eclipse.ui.texteditor.DefaultRangeIndicator;
-import org.eclipse.ui.texteditor.ITextEditorActionConstants;
-import org.eclipse.ui.texteditor.TextOperationAction;
-import org.eclipse.ui.views.contentoutline.IContentOutlinePage;
-/**
- * PHP specific text editor.
- */
-public class PHPEditor extends TextEditor {
-
-  protected PHPActionGroup actionGroup;
-  /** The outline page */
-  private PHPContentOutlinePage fOutlinePage;
-  private IPreferenceStore phpPrefStore;
-
-  /** The line number ruler column */
-  private LineNumberRulerColumn fLineNumberRulerColumn;
-
-  /**
-   * Default constructor.
-   */
-  public PHPEditor() {
-    super();
-  }
-
-  public PHPContentOutlinePage getfOutlinePage() {
-    return fOutlinePage; 
-  }
-  /** The <code>JavaEditor</code> implementation of this 
-   * <code>AbstractTextEditor</code> method extend the 
-   * actions to add those specific to the receiver
-   */
-  protected void createActions() {
-    super.createActions();
-    setAction(
-      "ContentAssistProposal",
-      new TextOperationAction(
-        PHPEditorMessages.getResourceBundle(),
-        "ContentAssistProposal.",
-        this,
-        ISourceViewer.CONTENTASSIST_PROPOSALS));
-    setAction(
-      "ContentAssistTip",
-      new TextOperationAction(
-        PHPEditorMessages.getResourceBundle(),
-        "ContentAssistTip.",
-        this,
-        ISourceViewer.CONTENTASSIST_CONTEXT_INFORMATION));
-
-    Action action = new TextOperationAction(PHPEditorMessages.getResourceBundle(), "Comment.", this, ITextOperationTarget.PREFIX);
-    action.setActionDefinitionId(PHPEditorActionDefinitionIds.COMMENT);
-    setAction("Comment", action);
-
-    action = new TextOperationAction(PHPEditorMessages.getResourceBundle(), "Uncomment.", this, ITextOperationTarget.STRIP_PREFIX);
-    action.setActionDefinitionId(PHPEditorActionDefinitionIds.UNCOMMENT);
-    setAction("Uncomment", action);
-
-    actionGroup = new PHPActionGroup(this, ITextEditorActionConstants.GROUP_EDIT);
-
-  }
-
-  /** The <code>JavaEditor</code> implementation of this 
-   * <code>AbstractTextEditor</code> method performs any extra 
-   * disposal actions required by the java editor.
-   */
-  public void dispose() {
-    PHPEditorEnvironment.disconnect(this);
-    if (fOutlinePage != null)
-      fOutlinePage.setInput(null);
-    super.dispose();
-  }
-
-  /** The <code>PHPEditor</code> implementation of this 
-   * <code>AbstractTextEditor</code> method performs any extra 
-   * revert behavior required by the php editor.
-   */
-  public void doRevertToSaved() {
-    super.doRevertToSaved();
-    if (fOutlinePage != null)
-      fOutlinePage.update();
-  }
-
-  /** The <code>PHPEditor</code> implementation of this 
-   * <code>AbstractTextEditor</code> method performs any extra 
-   * save behavior required by the php editor.
-   */
-  public void doSave(IProgressMonitor monitor) {
-    super.doSave(monitor);
-    // compile or not, according to the user preferences
-    IPreferenceStore store = phpPrefStore;
-    if (store.getBoolean(PHPeclipsePlugin.PHP_PARSE_ON_SAVE)) {
-      IAction a = PHPParserAction.getInstance();
-      if (a != null)
-        a.run();
-    }
-    if (fOutlinePage != null)
-      fOutlinePage.update();
-  }
-
-  /** The <code>PHPEditor</code> implementation of this 
-   * <code>AbstractTextEditor</code> method performs any extra 
-   * save as behavior required by the php editor.
-   */
-  public void doSaveAs() {
-    super.doSaveAs();
-    if (fOutlinePage != null)
-      fOutlinePage.update();
-  }
-
-  /** The <code>PHPEditor</code> implementation of this 
-   * <code>AbstractTextEditor</code> method performs sets the 
-   * input of the outline page after AbstractTextEditor has set input.
-   */
-  public void doSetInput(IEditorInput input) throws CoreException {
-    super.doSetInput(input);
-    if (fOutlinePage != null)
-      fOutlinePage.setInput(input);
-  }
-
-  /** The <code>JavaEditor</code> implementation of this 
-   * <code>AbstractTextEditor</code> method adds any 
-   * JavaEditor specific entries.
-   */
-  public void editorContextMenuAboutToShow(MenuManager menu) {
-    super.editorContextMenuAboutToShow(menu);
-    //  addAction(menu, "ContentAssistProposal"); //$NON-NLS-1$
-    //  addAction(menu, "ContentAssistTip"); //$NON-NLS-1$
-    actionGroup.fillContextMenu(menu);
-  }
-
-  /** The <code>JavaEditor</code> implementation of this 
-   * <code>AbstractTextEditor</code> method performs gets
-   * the java content outline page if request is for a an 
-   * outline page.
-   */
-  public Object getAdapter(Class required) {
-    if (IContentOutlinePage.class.equals(required)) {
-      if (fOutlinePage == null) {
-        fOutlinePage = new PHPContentOutlinePage(getDocumentProvider(), this);
-        if (getEditorInput() != null)
-          fOutlinePage.setInput(getEditorInput());
-      }
-      return fOutlinePage;
-    }
-    return super.getAdapter(required);
-  }
-
-  public void openContextHelp() {
-    IDocument doc = this.getDocumentProvider().getDocument(this.getEditorInput());
-    ITextSelection selection = (ITextSelection) this.getSelectionProvider().getSelection();
-    int pos = selection.getOffset();
-    String word = getFunctionName(doc, pos);
-    openContextHelp(word);
-  }
-
-  private void openContextHelp(String word) {
-    open(word);
-  }
-
-  public static void open(String word) {
-    IHelp help = WorkbenchHelp.getHelpSupport();
-    if (help != null) {
-      IHelpResource helpResource = new PHPFunctionHelpResource(word);
-      WorkbenchHelp.getHelpSupport().displayHelpResource(helpResource);
-    } else {
-      //   showMessage(shell, dialogTitle, ActionMessages.getString("Open help not available"), false); //$NON-NLS-1$
-    }
-  }
-
-  private String getFunctionName(IDocument doc, int pos) {
-    Point word = PHPWordExtractor.findWord(doc, pos);
-    if (word != null) {
-      try {
-        return doc.get(word.x, word.y).replace('_', '-');
-      } catch (BadLocationException e) {
-      }
-    }
-    return "";
-  }
-
-  /*
-     * @see AbstractTextEditor#handlePreferenceStoreChanged(PropertyChangeEvent)
-     */
-  protected void handlePreferenceStoreChanged(PropertyChangeEvent event) {
-
-    try {
-
-      ISourceViewer sourceViewer = getSourceViewer();
-      if (sourceViewer == null)
-        return;
-
-      String property = event.getProperty();
-
-      //      if (JavaSourceViewerConfiguration.PREFERENCE_TAB_WIDTH.equals(property)) {
-      //        Object value= event.getNewValue();
-      //        if (value instanceof Integer) {
-      //          sourceViewer.getTextWidget().setTabs(((Integer) value).intValue());
-      //        } else if (value instanceof String) {
-      //          sourceViewer.getTextWidget().setTabs(Integer.parseInt((String) value));
-      //        }
-      //        return;
-      //      }
-
-      if (IPreferenceConstants.LINE_NUMBER_RULER.equals(property)) {
-        if (isLineNumberRulerVisible())
-          showLineNumberRuler();
-        else
-          hideLineNumberRuler();
-        return;
-      }
-
-      if (fLineNumberRulerColumn != null
-        && (IPreferenceConstants.LINE_NUMBER_COLOR.equals(property)
-          || PREFERENCE_COLOR_BACKGROUND_SYSTEM_DEFAULT.equals(property)
-          || PREFERENCE_COLOR_BACKGROUND.equals(property))) {
-
-        initializeLineNumberRulerColumn(fLineNumberRulerColumn);
-      }
-
-    } finally {
-      super.handlePreferenceStoreChanged(event);
-    }
-  }
-  /**
-   * Shows the line number ruler column.
-   */
-  private void showLineNumberRuler() {
-    IVerticalRuler v = getVerticalRuler();
-    if (v instanceof CompositeRuler) {
-      CompositeRuler c = (CompositeRuler) v;
-      c.addDecorator(1, createLineNumberRulerColumn());
-    }
-  }
-
-  /**
-  * Return whether the line number ruler column should be 
-  * visible according to the preference store settings.
-  * @return <code>true</code> if the line numbers should be visible
-  */
-  private boolean isLineNumberRulerVisible() {
-    // IPreferenceStore store= getPreferenceStore();
-    return phpPrefStore.getBoolean(IPreferenceConstants.LINE_NUMBER_RULER);
-  }
-  /**
-   * Hides the line number ruler column.
-   */
-  private void hideLineNumberRuler() {
-    IVerticalRuler v = getVerticalRuler();
-    if (v instanceof CompositeRuler) {
-      CompositeRuler c = (CompositeRuler) v;
-      c.removeDecorator(1);
-    }
-  }
-
-  /**
-  * Initializes the given line number ruler column from the preference store.
-  * @param rulerColumn the ruler column to be initialized
-  */
-  protected void initializeLineNumberRulerColumn(LineNumberRulerColumn rulerColumn) {
-    //   JavaTextTools textTools= JavaPlugin.getDefault().getJavaTextTools();
-    PHPColorProvider manager = PHPEditorEnvironment.getPHPColorProvider();
-
-    if (phpPrefStore != null) {
-
-      RGB rgb = null;
-      // foreground color
-      if (phpPrefStore.contains(IPreferenceConstants.LINE_NUMBER_COLOR)) {
-        if (phpPrefStore.isDefault(IPreferenceConstants.LINE_NUMBER_COLOR))
-          rgb = PreferenceConverter.getDefaultColor(phpPrefStore, IPreferenceConstants.LINE_NUMBER_COLOR);
-        else
-          rgb = PreferenceConverter.getColor(phpPrefStore, IPreferenceConstants.LINE_NUMBER_COLOR);
-      }
-      rulerColumn.setForeground(manager.getColor(rgb));
-
-      rgb = null;
-      // background color
-      if (!phpPrefStore.getBoolean(IPreferenceConstants.PREFERENCE_COLOR_BACKGROUND_SYSTEM_DEFAULT)) {
-        if (phpPrefStore.contains(IPreferenceConstants.PREFERENCE_COLOR_BACKGROUND)) {
-          if (phpPrefStore.isDefault(IPreferenceConstants.PREFERENCE_COLOR_BACKGROUND))
-            rgb = PreferenceConverter.getDefaultColor(phpPrefStore, IPreferenceConstants.PREFERENCE_COLOR_BACKGROUND);
-          else
-            rgb = PreferenceConverter.getColor(phpPrefStore, IPreferenceConstants.PREFERENCE_COLOR_BACKGROUND);
-        }
-        rulerColumn.setBackground(manager.getColor(rgb));
-      }
-
-    }
-  }
-
-  /**
-   * Creates a new line number ruler column that is appropriately initialized.
-   */
-  protected IVerticalRulerColumn createLineNumberRulerColumn() {
-    fLineNumberRulerColumn = new LineNumberRulerColumn();
-    initializeLineNumberRulerColumn(fLineNumberRulerColumn);
-    return fLineNumberRulerColumn;
-  }
-
-  /*
-   * @see AbstractTextEditor#createVerticalRuler()
-   */
-  protected IVerticalRuler createVerticalRuler() {
-    CompositeRuler ruler = new CompositeRuler();
-    ruler.addDecorator(0, new AnnotationRulerColumn(VERTICAL_RULER_WIDTH));
-    if (isLineNumberRulerVisible())
-      ruler.addDecorator(1, createLineNumberRulerColumn());
-    return ruler;
-  }
-
-  /* (non-Javadoc)
-   * Method declared on AbstractTextEditor
-   */
-  protected void initializeEditor() {
-    PHPEditorEnvironment.connect(this);
-
-    setSourceViewerConfiguration(new PHPSourceViewerConfiguration());
-    setRangeIndicator(new DefaultRangeIndicator());
-    setEditorContextMenuId("#PHPEditorContext"); //$NON-NLS-1$
-    setRulerContextMenuId("#PHPRulerContext"); //$NON-NLS-1$
-    // setDocumentProvider(PHPeclipsePlugin.getCompilationUnitDocumentProvider());
-    phpPrefStore = PHPeclipsePlugin.getDefault().getPreferenceStore();
-
-    phpPrefStore.addPropertyChangeListener(new IPropertyChangeListener() {
-      public void propertyChange(PropertyChangeEvent event) {
-        PHPCodeScanner scanner = PHPEditorEnvironment.getPHPCodeScanner();
-        if (scanner != null) {
-          scanner.updateToken(PHPEditorEnvironment.getPHPColorProvider());
-        }
-        if (getSourceViewer() != null) {
-          getSourceViewer().invalidateTextPresentation();
-        }
-
-        String property = event.getProperty();
-        if (IPreferenceConstants.LINE_NUMBER_RULER.equals(property)) {
-          if (isLineNumberRulerVisible())
-            showLineNumberRuler();
-          else
-            hideLineNumberRuler();
-          return;
-        }
-      }
-    });
-  }
-}