first PHP parser version (doesn't work actually)
[phpeclipse.git] / net.sourceforge.phpeclipse / src / net / sourceforge / phpeclipse / actions / PHPStartApacheAction.java
index 7f69883..8a6b5e2 100644 (file)
@@ -11,52 +11,78 @@ Contributors:
 **********************************************************************/
 package net.sourceforge.phpeclipse.actions;
 
-import java.io.BufferedReader;
 import java.io.IOException;
-import java.io.InputStreamReader;
+import java.io.InputStream;
 import java.text.MessageFormat;
 
 import net.sourceforge.phpeclipse.PHPeclipsePlugin;
+import net.sourceforge.phpeclipse.views.PHPConsole;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
 import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.dialogs.MessageDialog;
 import org.eclipse.jface.preference.IPreferenceStore;
 import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.ui.IWorkbenchPage;
 import org.eclipse.ui.IWorkbenchWindow;
 import org.eclipse.ui.IWorkbenchWindowActionDelegate;
+import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.PlatformUI;
+import sun.security.krb5.internal.crypto.e;
 
 public class PHPStartApacheAction implements IWorkbenchWindowActionDelegate {
-       protected IWorkbenchWindow activeWindow = null;
-
-       public void run(IAction action) {
-               final IPreferenceStore store = PHPeclipsePlugin.getDefault().getPreferenceStore();
-               String documentRoot = store.getString(PHPeclipsePlugin.DOCUMENTROOT_PREF);
-               // replace backslash with slash in the DocumentRoot under Windows
-               documentRoot = documentRoot.replace('\\', '/');
-               String[] arguments = { documentRoot };
-               MessageFormat form = new MessageFormat(store.getString(PHPeclipsePlugin.APACHE_START_PREF));
-               execute(form.format(arguments));
-       }
-
-       public void execute(String command) {
-//             MessageDialog.openInformation(activeWindow.getShell(), "Exec command: ", command);
-               try {
-                       Runtime runtime = Runtime.getRuntime();
-                       //      Process process = runtime.exec(new String[] { "c:\\apache\\apache.exe" });
-                       Process process = runtime.exec(command);
-               } catch (IOException e) {
-                       MessageDialog.openInformation(activeWindow.getShell(), "IOException: ", e.getMessage());
-               }
-       }
-
-       public void selectionChanged(IAction action, ISelection selection) {
-
-       }
-
-       public void init(IWorkbenchWindow window) {
-               this.activeWindow = window;
-       }
-
-       public void dispose() {
-
-       }
+  protected IWorkbenchWindow activeWindow = null;
+
+  public void run(IAction action) {
+    final IPreferenceStore store = PHPeclipsePlugin.getDefault().getPreferenceStore();
+    String documentRoot = store.getString(PHPeclipsePlugin.DOCUMENTROOT_PREF);
+    // replace backslash with slash in the DocumentRoot under Windows
+    documentRoot = documentRoot.replace('\\', '/');
+    String[] arguments = { documentRoot };
+    MessageFormat form = new MessageFormat(store.getString(PHPeclipsePlugin.APACHE_START_PREF));
+    execute(form.format(arguments), "Start Apache: ");
+  }
+
+  public void execute(String command, String consoleMessage) {
+    //         MessageDialog.openInformation(activeWindow.getShell(), "Exec command: ", command);
+    try {
+      PHPConsole.write(consoleMessage+command+"\n");
+      Runtime runtime = Runtime.getRuntime();
+
+          // runs the command
+      Process p = runtime.exec(command);
+
+      // gets the input stream to have the post-compile-time information
+      InputStream stream = p.getInputStream();
+
+      // and get the string from it
+      String compilerOutput = PHPConsole.getStringFromStream(stream);
+
+      // prints out the information
+      PHPConsole.write(compilerOutput);
+
+      // parse the buffer to find the errors and create markers
+    //  createMarkers(compilerOutput, fileToCompile);
+
+    } catch (IOException e) {
+      // @todo should throw the exception again
+      System.err.println("Problem");
+      e.printStackTrace();
+//    } catch (CoreException e) {
+//      e.printStackTrace();
+//      // @todo do something here !
+    }
+  }
+
+  public void selectionChanged(IAction action, ISelection selection) {
+
+  }
+
+  public void init(IWorkbenchWindow window) {
+    this.activeWindow = window;
+  }
+
+  public void dispose() {
+
+  }
 }