Fixed partitioning bug causing an assertion exception and failing
[phpeclipse.git] / net.sourceforge.phpeclipse / src / net / sourceforge / phpeclipse / views / PHPConsole.java
index cfceb5e..a858f5c 100644 (file)
@@ -17,6 +17,7 @@ import java.io.InputStream;
 
 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;
@@ -61,7 +62,7 @@ public class PHPConsole extends ViewPart {
     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() {
@@ -113,31 +114,36 @@ public class PHPConsole extends ViewPart {
     //  viewer.setDocument(document);
   }
 
-  /**
-   * Prints out the string represented by the string buffer
-   */
-  public static void write(String output) {
-    try {
-      IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
-      PHPConsole console = (PHPConsole) page.findView(PHPConsole.CONSOLE_ID);
+  public static PHPConsole getInstance() {
+    IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
+    PHPConsole console = (PHPConsole) page.findView(PHPConsole.CONSOLE_ID);
 
-      if (console != null) {
-        console.appendOutputText(output);
-      } else if (PHPeclipsePlugin.getDefault().getPreferenceStore().getBoolean(PHPeclipsePlugin.SHOW_OUTPUT_IN_CONSOLE) == true) {
+    if (PHPeclipsePlugin.getDefault().getPreferenceStore().getBoolean(PHPeclipsePlugin.SHOW_OUTPUT_IN_CONSOLE) == true) {
+
+      try {
         page.showView(PHPConsole.CONSOLE_ID);
-        console = (PHPConsole) page.findView(PHPConsole.CONSOLE_ID);
-        console.setOutputText(output);
+        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));
       }
-    } 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);
   }
 
   /**