http://www.eclipse.org/legal/cpl-v10.html
Contributors:
- IBM Corporation - Initial implementation
- Klaus Hartlage - www.eclipseproject.de
+ IBM Corporation - Initial implementation
+ Klaus Hartlage - www.eclipseproject.de
**********************************************************************/
package net.sourceforge.phpeclipse.actions;
-import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
-import java.io.InputStreamReader;
import java.text.MessageFormat;
+import net.sourceforge.phpdt.externaltools.launchConfigurations.ExternalToolsUtil;
import net.sourceforge.phpeclipse.PHPeclipsePlugin;
import net.sourceforge.phpeclipse.views.PHPConsole;
-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;
public class PHPStartApacheAction implements IWorkbenchWindowActionDelegate {
protected IWorkbenchWindow activeWindow = null;
documentRoot = documentRoot.replace('\\', '/');
String[] arguments = { documentRoot };
MessageFormat form = new MessageFormat(store.getString(PHPeclipsePlugin.APACHE_START_PREF));
- execute(form.format(arguments), "Start Apache: ");
+ execute(
+ "apache_start",
+ store.getString(PHPeclipsePlugin.APACHE_RUN_PREF),
+ form.format(arguments),
+ store.getBoolean(PHPeclipsePlugin.APACHE_START_BACKGROUND));
}
-// public static void execute(String command, String consoleMessage) {
-// // MessageDialog.openInformation(activeWindow.getShell(), "Exec command: ", command);
-// try {
-// PHPConsole console = PHPConsole.getInstance();
-// console.write(consoleMessage + command + "\n");
-// Runtime runtime = Runtime.getRuntime();
-//
-// // runs the command
-// Process p = runtime.exec(command);
-//
-// if (PHPeclipsePlugin.getDefault().getPreferenceStore().getBoolean(PHPeclipsePlugin.SHOW_OUTPUT_IN_CONSOLE) == true) {
-//
-// OutputThread out = new OutputThread(p.getInputStream(), console);
-// OutputThread err = new OutputThread(p.getErrorStream(), console);
-// out.start();
-// err.start();
-//
-// }
-//
-// } catch (IOException e) {
-//
-// System.err.println("Problem");
-// e.printStackTrace();
-//
-// }
-//
-// }
-
- public static String execute(String command, String consoleMessage) {
- // MessageDialog.openInformation(activeWindow.getShell(), "Exec command: ", command);
- try {
- PHPConsole console = PHPConsole.getInstance();
- console.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();
-
- // get the string from Stream
- String consoleOutput = PHPConsole.getStringFromStream(stream);
-
- // prints out the information
- console.write(consoleOutput);
- return consoleOutput;
-
- } catch (IOException e) {
-
- System.err.println("Problem");
- e.printStackTrace();
-
+ // public static void execute(String command, String consoleMessage) {
+ // // MessageDialog.openInformation(activeWindow.getShell(), "Exec command: ", command);
+ // try {
+ // PHPConsole console = PHPConsole.getInstance();
+ // console.write(consoleMessage + command + "\n");
+ // Runtime runtime = Runtime.getRuntime();
+ //
+ // // runs the command
+ // Process p = runtime.exec(command);
+ //
+ // if (PHPeclipsePlugin.getDefault().getPreferenceStore().getBoolean(PHPeclipsePlugin.SHOW_OUTPUT_IN_CONSOLE) == true) {
+ //
+ // OutputThread out = new OutputThread(p.getInputStream(), console);
+ // OutputThread err = new OutputThread(p.getErrorStream(), console);
+ // out.start();
+ // err.start();
+ //
+ // }
+ //
+ // } catch (IOException e) {
+ //
+ // System.err.println("Problem");
+ // e.printStackTrace();
+ //
+ // }
+ //
+ // }
+
+ /**
+ * Executes an external progam and saves the LaunchConfiguration under external tools
+ * @param command external tools command name
+ * @param executable executable path i.e.c:\apache\apache.exe
+ * @param arguments arguments for this configuration
+ * @param background run this configuration in background mode
+ */
+ public static void execute(String command, String executable, String arguments, boolean background) {
+ PHPConsole console = PHPConsole.getInstance();
+ String consoleMessage;
+ if (background) {
+ consoleMessage = "run in background mode-" + command + ": " + executable + " " + arguments;
+ } else {
+ consoleMessage = "run in foreground mode-" + command + ": " + executable + " " + arguments;
}
- return "";
+ console.write(consoleMessage + "\n");
+
+ ExternalToolsUtil.execute(command, executable, arguments, background);
+ // MessageDialog.openInformation(activeWindow.getShell(), "Exec command: ", command);
+ // try {
+ // PHPConsole console = PHPConsole.getInstance();
+ // console.write(consoleMessage + command + "\n");
+ //
+ // ExternalToolsUtil.execute()
+ // 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();
+ //
+ // // get the string from Stream
+ // String consoleOutput = PHPConsole.getStringFromStream(stream);
+ //
+ // // prints out the information
+ // console.write(consoleOutput);
+ // return consoleOutput;
+ //
+ // } catch (IOException e) {
+ //
+ // System.err.println("Problem");
+ // e.printStackTrace();
+ //
+ // }
+ // return "";
}
public static String getParserOutput(String command, String consoleMessage) {
// MessageDialog.openInformation(activeWindow.getShell(), "Exec command: ", command);
try {
PHPConsole console = PHPConsole.getInstance();
- console.write(consoleMessage + command + "\n");
+ if (console != null) {
+ console.write(consoleMessage + command + "\n");
+ }
+
Runtime runtime = Runtime.getRuntime();
// runs the command
String consoleOutput = PHPConsole.getStringFromStream(stream);
// prints out the information
- console.write(consoleOutput);
+ if (console != null) {
+ console.write(consoleOutput);
+ }
return consoleOutput;
} catch (IOException e) {
}
-// static class OutputThread extends Thread {
-// InputStream fInputStream;
-// PHPConsole console;
-//
-// OutputThread(InputStream inputStream, PHPConsole console) {
-// this.fInputStream = inputStream;
-// this.console = console;
-// }
-//
-// public void run() {
-// try {
-// BufferedReader bin = new BufferedReader(new InputStreamReader(fInputStream));
-//
-// String bufferRow;
-// while ((bufferRow = bin.readLine()) != null) {
-//
-// // prints out the information
-// console.write( bufferRow );
-//
-// }
-// bin.close();
-//
-// } catch (IOException e) {
-// MessageDialog.openError(null, "Error in output", e.toString());
-// } finally {
-//
-// }
-// }
-// }
+ // static class OutputThread extends Thread {
+ // InputStream fInputStream;
+ // PHPConsole console;
+ //
+ // OutputThread(InputStream inputStream, PHPConsole console) {
+ // this.fInputStream = inputStream;
+ // this.console = console;
+ // }
+ //
+ // public void run() {
+ // try {
+ // BufferedReader bin = new BufferedReader(new InputStreamReader(fInputStream));
+ //
+ // String bufferRow;
+ // while ((bufferRow = bin.readLine()) != null) {
+ //
+ // // prints out the information
+ // console.write( bufferRow );
+ //
+ // }
+ // bin.close();
+ //
+ // } catch (IOException e) {
+ // MessageDialog.openError(null, "Error in output", e.toString());
+ // } finally {
+ //
+ // }
+ // }
+ // }
}