From b209f223825b4c950f75498f430a0284cd5d96b2 Mon Sep 17 00:00:00 2001
From: khartlage <khartlage>
Date: Sun, 4 May 2003 19:37:33 +0000
Subject: [PATCH 1/1] add some actions to phpconsole

---
 net.sourceforge.phpeclipse/icons/obj16/clear.gif   |  Bin 0 -> 162 bytes
 net.sourceforge.phpeclipse/plugin.xml              |    6 +-
 .../sourceforge/phpdt/internal/ui/PHPUiImages.java |  116 +++++--
 .../phpeclipse/resourcesview/PHPProject.java       |   11 +-
 .../sourceforge/phpeclipse/views/PHPConsole.java   |  325 ++++++++++++--------
 5 files changed, 294 insertions(+), 164 deletions(-)
 create mode 100644 net.sourceforge.phpeclipse/icons/obj16/clear.gif

diff --git a/net.sourceforge.phpeclipse/icons/obj16/clear.gif b/net.sourceforge.phpeclipse/icons/obj16/clear.gif
new file mode 100644
index 0000000000000000000000000000000000000000..5cdb88f89fac214808e201448ec522e509ceb337
GIT binary patch
literal 162
zcmZ?wbhEHb6krfwc+9|X|Ni{?`uO?t>-X=UfB*je|NsB*2eRhRZ)j)$vN3_;PZmZ7
z27U$|1|R^L!NB7G;iTtkQ>E95OBGx_cs$a17J8J$TX7w4-L)iftCkMGjlRORQ|%56
w3~Y@NPhCv->KspPsPH*8%l$=eLP^y2y*wK}^UPrGn2}g(q2M*Qf`!2v0Iirzp#T5?

literal 0
HcmV?d00001

diff --git a/net.sourceforge.phpeclipse/plugin.xml b/net.sourceforge.phpeclipse/plugin.xml
index 94fce9a..884496a 100644
--- a/net.sourceforge.phpeclipse/plugin.xml
+++ b/net.sourceforge.phpeclipse/plugin.xml
@@ -147,13 +147,13 @@ Temporarily replaced until errors can be ironed out...
             objectClass="org.eclipse.core.resources.IProject"
             name="%propertyPagePHPProject.name"
             class="net.sourceforge.phpeclipse.preferences.PHPProjectPropertyPage"
-            id="net.sourceforge.phpeclipse.preferences.PropertyPagePHPProject">
+            id="net.sourceforge.phpeclipse.preferences.PHPProjectPropertyPage">
          <filter
                name="nature"
                value="net.sourceforge.phpeclipse.phpnature">
          </filter>
       </page>
-      <page
+  <!--    <page
             objectClass="net.sourceforge.phpeclipse.resourcesview.PHPProject"
             name="%propertyPagePHPProject.name"
             class="net.sourceforge.phpeclipse.preferences.PHPProjectPropertyPage"
@@ -162,7 +162,7 @@ Temporarily replaced until errors can be ironed out...
                name="nature"
                value="net.sourceforge.phpeclipse.phpnature">
          </filter>
-      </page>
+      </page> -->
    </extension>
 <!--   <extension
          point="org.eclipse.ui.views">
diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/ui/PHPUiImages.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/ui/PHPUiImages.java
index 11fbe8e..b858d0b 100644
--- a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/ui/PHPUiImages.java
+++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/ui/PHPUiImages.java
@@ -12,15 +12,22 @@ import org.eclipse.swt.graphics.Image;
 
 public class PHPUiImages {
 
-	protected static final String NAME_PREFIX = "net.sourceforge.phpdt.internal.ui.";
+	protected static final String NAME_PREFIX =
+		"net.sourceforge.phpdt.internal.ui.";
 	protected static final int NAME_PREFIX_LENGTH = NAME_PREFIX.length();
-  
+
 	protected static URL iconBaseURL;
 
 	static {
 		String pathSuffix = "icons/";
 		try {
-			iconBaseURL = new URL(PHPeclipsePlugin.getDefault().getDescriptor().getInstallURL(), pathSuffix);
+			iconBaseURL =
+				new URL(
+					PHPeclipsePlugin
+						.getDefault()
+						.getDescriptor()
+						.getInstallURL(),
+					pathSuffix);
 		} catch (MalformedURLException e) {
 			PHPeclipsePlugin.log(e);
 		}
@@ -32,31 +39,50 @@ public class PHPUiImages {
 	protected static final String OVR_PREFIX = "ovr16";
 	protected static final String CTOOL_PREFIX = "ctool16";
 
-  public static final String IMG_CLASS = NAME_PREFIX + "class_obj.gif";
-  public static final String IMG_BUILTIN = NAME_PREFIX + "builtin_obj.gif";
-  public static final String IMG_FUN = NAME_PREFIX + "fun_obj.gif";
-  public static final String IMG_INC = NAME_PREFIX + "impc_obj.gif";
-  public static final String IMG_VAR = NAME_PREFIX + "var_obj.gif";
+	public static final String IMG_CLASS = NAME_PREFIX + "class_obj.gif";
+	public static final String IMG_BUILTIN = NAME_PREFIX + "builtin_obj.gif";
+	public static final String IMG_FUN = NAME_PREFIX + "fun_obj.gif";
+	public static final String IMG_INC = NAME_PREFIX + "impc_obj.gif";
+	public static final String IMG_VAR = NAME_PREFIX + "var_obj.gif";
 	public static final String IMG_OBJS_ERROR = NAME_PREFIX + "error_obj.gif";
-	public static final String IMG_OBJS_WARNING = NAME_PREFIX + "warning_obj.gif";
+	public static final String IMG_OBJS_WARNING =
+		NAME_PREFIX + "warning_obj.gif";
 	public static final String IMG_OBJS_INFO = NAME_PREFIX + "info_obj.gif";
-	public static final String IMG_CTOOLS_PHP_PAGE = NAME_PREFIX + "php_page.gif";
+	public static final String IMG_CTOOLS_PHP_PAGE =
+		NAME_PREFIX + "php_page.gif";
 	public static final String IMG_CTOOLS_PHP = NAME_PREFIX + "php.gif";
-  
-  public static final String IMG_OBJS_TEMPLATE= NAME_PREFIX + "template_obj.gif";   
-
-  public static final ImageDescriptor DESC_CLASS = createManaged(OBJ_PREFIX, IMG_CLASS);
-  public static final ImageDescriptor DESC_BUILTIN = createManaged(OBJ_PREFIX, IMG_BUILTIN);
-  public static final ImageDescriptor DESC_FUN = createManaged(OBJ_PREFIX, IMG_FUN);
-  public static final ImageDescriptor DESC_INC = createManaged(OBJ_PREFIX, IMG_INC);
-	public static final ImageDescriptor DESC_VAR = createManaged(OBJ_PREFIX, IMG_VAR);
-  public static final ImageDescriptor DESC_OBJS_ERROR = createManaged(OBJ_PREFIX, IMG_OBJS_ERROR);
-	public static final ImageDescriptor DESC_OBJS_WARNING = createManaged(OBJ_PREFIX, IMG_OBJS_WARNING);
-	public static final ImageDescriptor DESC_OBJS_INFO = createManaged(OBJ_PREFIX, IMG_OBJS_INFO);
-	public static final ImageDescriptor DESC_CTOOL_PHP_PAGE = createManaged(CTOOL_PREFIX, IMG_CTOOLS_PHP_PAGE);
-	public static final ImageDescriptor DESC_CTOOL_PHP = createManaged(CTOOL_PREFIX, IMG_CTOOLS_PHP);
-
-  public static final ImageDescriptor DESC_OBJS_TEMPLATE= createManaged(OBJ_PREFIX, IMG_OBJS_TEMPLATE);
+
+	public static final String IMG_OBJS_TEMPLATE =
+		NAME_PREFIX + "template_obj.gif";
+
+	public static final String IMG_CLEAR = NAME_PREFIX + "clear.gif"; 
+	
+	public static final ImageDescriptor DESC_CLASS =
+		createManaged(OBJ_PREFIX, IMG_CLASS);
+	public static final ImageDescriptor DESC_BUILTIN =
+		createManaged(OBJ_PREFIX, IMG_BUILTIN);
+	public static final ImageDescriptor DESC_FUN =
+		createManaged(OBJ_PREFIX, IMG_FUN);
+	public static final ImageDescriptor DESC_INC =
+		createManaged(OBJ_PREFIX, IMG_INC);
+	public static final ImageDescriptor DESC_VAR =
+		createManaged(OBJ_PREFIX, IMG_VAR);
+	public static final ImageDescriptor DESC_OBJS_ERROR =
+		createManaged(OBJ_PREFIX, IMG_OBJS_ERROR);
+	public static final ImageDescriptor DESC_OBJS_WARNING =
+		createManaged(OBJ_PREFIX, IMG_OBJS_WARNING);
+	public static final ImageDescriptor DESC_OBJS_INFO =
+		createManaged(OBJ_PREFIX, IMG_OBJS_INFO);
+	public static final ImageDescriptor DESC_CTOOL_PHP_PAGE =
+		createManaged(CTOOL_PREFIX, IMG_CTOOLS_PHP_PAGE);
+	public static final ImageDescriptor DESC_CTOOL_PHP =
+		createManaged(CTOOL_PREFIX, IMG_CTOOLS_PHP);
+
+	public static final ImageDescriptor DESC_OBJS_TEMPLATE =
+		createManaged(OBJ_PREFIX, IMG_OBJS_TEMPLATE);
+		
+	public static final ImageDescriptor DESC_CLEAR =
+			createManaged(OBJ_PREFIX, IMG_CLEAR);
 
 	/**
 	 * Returns the image managed under the given key in this registry.
@@ -72,7 +98,9 @@ public class PHPUiImages {
 	 * Sets the three image descriptors for enabled, disabled, and hovered to an action. The actions
 	 * are retrieved from the *tool16 folders.
 	 */
-	public static void setToolImageDescriptors(IAction action, String iconName) {
+	public static void setToolImageDescriptors(
+		IAction action,
+		String iconName) {
 		setImageDescriptors(action, "tool16", iconName);
 	}
 
@@ -80,7 +108,9 @@ public class PHPUiImages {
 	 * Sets the three image descriptors for enabled, disabled, and hovered to an action. The actions
 	 * are retrieved from the *lcl16 folders.
 	 */
-	public static void setLocalImageDescriptors(IAction action, String iconName) {
+	public static void setLocalImageDescriptors(
+		IAction action,
+		String iconName) {
 		setImageDescriptors(action, "lcl16", iconName);
 	}
 
@@ -90,26 +120,41 @@ public class PHPUiImages {
 
 	//---- Helper methods to access icons on the file system --------------------------------------
 
-	protected static void setImageDescriptors(IAction action, String type, String relPath) {
+	protected static void setImageDescriptors(
+		IAction action,
+		String type,
+		String relPath) {
 
 		try {
-			ImageDescriptor id = ImageDescriptor.createFromURL(makeIconFileURL("d" + type, relPath));
+			ImageDescriptor id =
+				ImageDescriptor.createFromURL(
+					makeIconFileURL("d" + type, relPath));
 			if (id != null)
 				action.setDisabledImageDescriptor(id);
-		} catch (MalformedURLException e) {}
+		} catch (MalformedURLException e) {
+		}
 
 		try {
-			ImageDescriptor id = ImageDescriptor.createFromURL(makeIconFileURL("c" + type, relPath));
+			ImageDescriptor id =
+				ImageDescriptor.createFromURL(
+					makeIconFileURL("c" + type, relPath));
 			if (id != null)
 				action.setHoverImageDescriptor(id);
-		} catch (MalformedURLException e) {}
+		} catch (MalformedURLException e) {
+		}
 
 		action.setImageDescriptor(create("e" + type, relPath));
 	}
 
-	protected static ImageDescriptor createManaged(String prefix, String name) {
+	protected static ImageDescriptor createManaged(
+		String prefix,
+		String name) {
 		try {
-			ImageDescriptor result = ImageDescriptor.createFromURL(makeIconFileURL(prefix, name.substring(NAME_PREFIX_LENGTH)));
+			ImageDescriptor result =
+				ImageDescriptor.createFromURL(
+					makeIconFileURL(
+						prefix,
+						name.substring(NAME_PREFIX_LENGTH)));
 			IMAGE_REGISTRY.put(name, result);
 			return result;
 		} catch (MalformedURLException e) {
@@ -125,7 +170,8 @@ public class PHPUiImages {
 		}
 	}
 
-	protected static URL makeIconFileURL(String prefix, String name) throws MalformedURLException {
+	protected static URL makeIconFileURL(String prefix, String name)
+		throws MalformedURLException {
 		if (iconBaseURL == null)
 			throw new MalformedURLException();
 
diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/resourcesview/PHPProject.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/resourcesview/PHPProject.java
index 7cff514..e903be5 100644
--- a/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/resourcesview/PHPProject.java
+++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/resourcesview/PHPProject.java
@@ -26,7 +26,7 @@ import org.xml.sax.SAXException;
 import org.xml.sax.XMLReader;
 
 public class PHPProject implements IProjectNature, PHPElement {
-	protected IProject project;
+	protected IProject fProject;
 	protected List loadPathEntries;
 	protected boolean scratched;
 
@@ -37,7 +37,7 @@ public class PHPProject implements IProjectNature, PHPElement {
 	public void deconfigure() throws CoreException {}
 
 	public IProject getProject() {
-		return project;
+		return fProject;
 	}
 
 	protected IProject getProject(String name) {
@@ -45,7 +45,7 @@ public class PHPProject implements IProjectNature, PHPElement {
 	}
 
 	public void setProject(IProject aProject) {
-		project = aProject;
+		fProject = aProject;
 	}
 
 	public void addLoadPathEntry(IProject anotherPHPProject) {
@@ -137,7 +137,7 @@ public class PHPProject implements IProjectNature, PHPElement {
 	}
 
 	protected IFile getLoadPathEntriesFile() {
-		return project.getFile(".loadpath");
+		return fProject.getFile(".loadpath");
 	}
 
 	public void save() throws CoreException {
@@ -167,8 +167,9 @@ public class PHPProject implements IProjectNature, PHPElement {
 		buffer.append("</loadpath>");
 		return buffer.toString();
 	}
+	
 	public IResource getUnderlyingResource() {
-		return project;
+		return fProject;
 	}
 
 }
diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/views/PHPConsole.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/views/PHPConsole.java
index f1c6e9a..e2e1395 100644
--- a/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/views/PHPConsole.java
+++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/views/PHPConsole.java
@@ -15,12 +15,18 @@ Contributors:
 import java.io.IOException;
 import java.io.InputStream;
 
+import net.sourceforge.phpdt.internal.ui.PHPUiImages;
 import net.sourceforge.phpeclipse.PHPeclipsePlugin;
 import net.sourceforge.phpeclipse.actions.PHPActionMessages;
 
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.Status;
 import org.eclipse.jface.action.Action;
+import org.eclipse.jface.action.IMenuListener;
+import org.eclipse.jface.action.IMenuManager;
+import org.eclipse.jface.action.IToolBarManager;
+import org.eclipse.jface.action.MenuManager;
+import org.eclipse.jface.action.Separator;
 import org.eclipse.jface.resource.JFaceResources;
 import org.eclipse.jface.text.BadLocationException;
 import org.eclipse.jface.text.Document;
@@ -29,6 +35,7 @@ import org.eclipse.swt.SWT;
 import org.eclipse.swt.custom.StyledText;
 import org.eclipse.swt.layout.GridData;
 import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Menu;
 import org.eclipse.ui.IActionBars;
 import org.eclipse.ui.IWorkbenchActionConstants;
 import org.eclipse.ui.IWorkbenchPage;
@@ -42,126 +49,202 @@ import org.eclipse.ui.part.ViewPart;
  */
 public class PHPConsole extends ViewPart {
 
-  public static final String CONSOLE_ID = "net.sourceforge.phpeclipse.views.phpconsoleview";
-
-  private TextViewer viewer = null;
-  private Document document = null;
-
-  /**
-   * The constructor.
-   */
-  public PHPConsole() {
-  }
-
-  /**
-   * Insert the method's description here.
-   * @see ViewPart#createPartControl
-   */
-  public void createPartControl(Composite parent) {
-    viewer = new TextViewer(parent, SWT.WRAP | SWT.V_SCROLL | SWT.H_SCROLL);
-    GridData viewerData = new GridData(GridData.FILL_BOTH);
-    viewer.getControl().setLayoutData(viewerData);
-    viewer.setEditable(false);
-
-    StyledText widget = viewer.getTextWidget();
-    widget.setFont(JFaceResources.getFontRegistry().get(JFaceResources.TEXT_FONT));
-    Action cutAction = new Action() {
-      public void run() {
-        viewer.getTextWidget().cut();
-      }
-    };
-    Action copyAction = new Action() {
-      public void run() {
-        viewer.getTextWidget().copy();
-      }
-    };
-    Action pasteAction = new Action() {
-      public void run() {
-        viewer.getTextWidget().paste();
-      }
-    };
-
-    IActionBars bars = this.getViewSite().getActionBars();
-    bars.setGlobalActionHandler(IWorkbenchActionConstants.CUT, cutAction);
-    bars.setGlobalActionHandler(IWorkbenchActionConstants.COPY, copyAction);
-    bars.setGlobalActionHandler(IWorkbenchActionConstants.PASTE, pasteAction);
-  }
-
-  /**
-   * Insert the method's description here.
-   * @see ViewPart#setFocus
-   */
-  public void setFocus() {
-  }
-
-  /**
-   * Set the text for the viewer
-   */
-  public void setOutputText(String text) {
-    document = new Document(text);
-    viewer.setDocument(document);
-  }
-
-  public void appendOutputText(String text) {
-    try {
-      if (document == null) {
-        document = new Document(text);
-        viewer.setDocument(document);
-      } else {
-        document.replace(document.getLength(), 0, text);
-      }
-    } catch (BadLocationException e) {
-    }
-    //  viewer.setDocument(document);
-  }
-
-  public static PHPConsole getInstance() {
-    IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
-    PHPConsole console = (PHPConsole) page.findView(PHPConsole.CONSOLE_ID);
-
-    if (PHPeclipsePlugin.getDefault().getPreferenceStore().getBoolean(PHPeclipsePlugin.SHOW_OUTPUT_IN_CONSOLE) == true) {
-
-      try {
-        page.showView(PHPConsole.CONSOLE_ID);
-        if (console == null) {
-          console = (PHPConsole) page.findView(PHPConsole.CONSOLE_ID);
-        }
-      } catch (PartInitException e) {
-        PHPeclipsePlugin.getDefault().getLog().log(
-          new Status(
-            IStatus.ERROR,
-            PHPeclipsePlugin.getPluginId(),
-            0,
-            PHPActionMessages.getString("PHPStartApacheAction.consoleViewOpeningProblem"),
-            e));
-      }
-
-    }
-    return console;
-  }
-
-  /**
-   * Prints out the string represented by the string buffer
-   */
-  public synchronized void write(String output) {
-    appendOutputText(output);
-  }
-
-  /**
-   * Creates a string buffer from the given input stream
-   */
-  public static String getStringFromStream(InputStream stream) throws IOException {
-    StringBuffer buffer = new StringBuffer();
-    byte[] b = new byte[100];
-    int finished = 0;
-    while (finished != -1) {
-      finished = stream.read(b);
-      if (finished != -1) {
-        String current = new String(b, 0, finished);
-        buffer.append(current);
-      }
-    }
-    return buffer.toString();
-  }
+	public static final String CONSOLE_ID =
+		"net.sourceforge.phpeclipse.views.phpconsoleview";
+
+	private TextViewer viewer = null;
+	private Document document = null;
+	private StyledText widget;
+	private Action cutAction = new Action() {
+		public void run() {
+			viewer.getTextWidget().cut();
+		}
+	};
+	private Action copyAction = new Action() {
+		public void run() {
+			widget.copy();
+		}
+	};
+	private Action pasteAction = new Action() {
+		public void run() {
+			viewer.getTextWidget().paste();
+		}
+	};
+	private Action selectAllAction = new Action() {
+		public void run() {
+			widget.selectAll();
+		}
+	};
+	private Action clearAction = new Action() {
+		public void run() {
+			widget.setText("");
+		}
+	};
+	/**
+	 * The constructor.
+	 */
+	public PHPConsole() {
+	}
+
+	/**
+	 * Insert the method's description here.
+	 * @see ViewPart#createPartControl
+	 */
+	public void createPartControl(Composite parent) {
+		viewer = new TextViewer(parent, SWT.WRAP | SWT.V_SCROLL | SWT.H_SCROLL);
+		GridData viewerData = new GridData(GridData.FILL_BOTH);
+		viewer.getControl().setLayoutData(viewerData);
+		viewer.setEditable(true);
+
+		widget = viewer.getTextWidget();
+		widget.setFont(
+			JFaceResources.getFontRegistry().get(JFaceResources.TEXT_FONT));
+
+		cutAction.setText("Cut");
+		copyAction.setText("Copy");
+		pasteAction.setText("Paste");
+		selectAllAction.setText("Select All");
+		clearAction.setText("Clear PHP Console");
+		clearAction.setImageDescriptor(PHPUiImages.DESC_CLEAR);
+        clearAction.setToolTipText("Clear PHP Console");
+				
+		IActionBars bars = this.getViewSite().getActionBars();
+		bars.setGlobalActionHandler(IWorkbenchActionConstants.CUT, cutAction);
+		bars.setGlobalActionHandler(IWorkbenchActionConstants.COPY, copyAction);
+		bars.setGlobalActionHandler(
+			IWorkbenchActionConstants.PASTE,
+			pasteAction);
+
+		hookContextMenu();
+		//	hookDoubleClickAction();
+		contributeToActionBars();
+		
+		
+	}
+
+	private void hookContextMenu() {
+		MenuManager menuMgr = new MenuManager("#PopupMenu");
+		menuMgr.setRemoveAllWhenShown(true);
+		menuMgr.addMenuListener(new IMenuListener() {
+			public void menuAboutToShow(IMenuManager manager) {
+				PHPConsole.this.fillContextMenu(manager);
+			}
+		});
+		Menu menu = menuMgr.createContextMenu(viewer.getControl());
+		viewer.getControl().setMenu(menu);
+		getSite().registerContextMenu(menuMgr, viewer);
+	}
+
+	private void contributeToActionBars() {
+		IActionBars bars = getViewSite().getActionBars();
+		fillLocalPullDown(bars.getMenuManager());
+		fillLocalToolBar(bars.getToolBarManager());
+	}
+
+	private void fillLocalPullDown(IMenuManager manager) {
+		manager.add(cutAction);
+		manager.add(copyAction);
+		manager.add(pasteAction);
+		manager.add(selectAllAction);
+	}
+	
+	private void fillContextMenu(IMenuManager manager) {
+		manager.add(cutAction);
+		manager.add(copyAction);
+		manager.add(pasteAction);
+		manager.add(selectAllAction);
+		// Other plug-ins can contribute there actions here
+		manager.add(new Separator("Additions"));
+	}
+	
+	private void fillLocalToolBar(IToolBarManager manager) {
+		manager.add(clearAction);
+	}
+	/**
+	 * Insert the method's description here.
+	 * @see ViewPart#setFocus
+	 */
+	public void setFocus() {
+	}
+
+	/**
+	 * Set the text for the viewer
+	 */
+	public void setOutputText(String text) {
+		document = new Document(text);
+		viewer.setDocument(document);
+	}
+
+	public void appendOutputText(String text) {
+		try {
+			if (document == null) {
+				document = new Document(text);
+				viewer.setDocument(document);
+			} else {
+				document.replace(document.getLength(), 0, text);
+			}
+		} catch (BadLocationException e) {
+		}
+		//  viewer.setDocument(document);
+	}
+
+	public static PHPConsole getInstance() {
+		IWorkbenchPage page =
+			PlatformUI
+				.getWorkbench()
+				.getActiveWorkbenchWindow()
+				.getActivePage();
+		PHPConsole console = (PHPConsole) page.findView(PHPConsole.CONSOLE_ID);
+
+		if (PHPeclipsePlugin
+			.getDefault()
+			.getPreferenceStore()
+			.getBoolean(PHPeclipsePlugin.SHOW_OUTPUT_IN_CONSOLE)
+			== true) {
+
+			try {
+				page.showView(PHPConsole.CONSOLE_ID);
+				if (console == null) {
+					console = (PHPConsole) page.findView(PHPConsole.CONSOLE_ID);
+				}
+			} catch (PartInitException e) {
+				PHPeclipsePlugin.getDefault().getLog().log(
+					new Status(
+						IStatus.ERROR,
+						PHPeclipsePlugin.getPluginId(),
+						0,
+						PHPActionMessages.getString(
+							"PHPStartApacheAction.consoleViewOpeningProblem"),
+						e));
+			}
+
+		}
+		return console;
+	}
+
+	/**
+	 * Prints out the string represented by the string buffer
+	 */
+	public synchronized void write(String output) {
+		appendOutputText(output);
+	}
+
+	/**
+	 * Creates a string buffer from the given input stream
+	 */
+	public static String getStringFromStream(InputStream stream)
+		throws IOException {
+		StringBuffer buffer = new StringBuffer();
+		byte[] b = new byte[100];
+		int finished = 0;
+		while (finished != -1) {
+			finished = stream.read(b);
+			if (finished != -1) {
+				String current = new String(b, 0, finished);
+				buffer.append(current);
+			}
+		}
+		return buffer.toString();
+	}
 
 }
-- 
1.7.1