**********************************************************************/
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() {
+
+ }
}