X-Git-Url: http://secure.phpeclipse.com diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/actions/PHPStartApacheAction.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/actions/PHPStartApacheAction.java index 997768b..5d47f96 100644 --- a/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/actions/PHPStartApacheAction.java +++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/actions/PHPStartApacheAction.java @@ -6,16 +6,16 @@ which accompanies this distribution, and is available at http://www.eclipse.org/legal/cpl-v10.html Contributors: - IBM Corporation - Initial implementation - Klaus Hartlage - www.eclipseproject.de + IBM Corporation - Initial implementation + www.phpeclipse.de **********************************************************************/ package net.sourceforge.phpeclipse.actions; -import java.io.IOException; -import java.io.InputStream; import java.text.MessageFormat; +import net.sourceforge.phpdt.externaltools.launchConfigurations.ExternalToolsUtil; import net.sourceforge.phpeclipse.PHPeclipsePlugin; +import net.sourceforge.phpeclipse.ui.WebUI; import net.sourceforge.phpeclipse.views.PHPConsole; import org.eclipse.jface.action.IAction; @@ -28,43 +28,57 @@ 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); + final IPreferenceStore store = + PHPeclipsePlugin.getDefault().getPreferenceStore(); + String documentRoot = store.getString(WebUI.PHP_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: "); + MessageFormat form = + new MessageFormat(store.getString(PHPeclipsePlugin.APACHE_START_PREF)); + execute( + "apache_start", + store.getString(PHPeclipsePlugin.APACHE_RUN_PREF), + form.format(arguments), + store.getBoolean(PHPeclipsePlugin.APACHE_START_BACKGROUND)); } - public static String 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(); - - // get the string from Stream - String consoleOutput = PHPConsole.getStringFromStream(stream); - - // prints out the information - PHPConsole.write(consoleOutput); - return consoleOutput; - - } 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); + } + public void selectionChanged(IAction action, ISelection selection) { } @@ -76,4 +90,5 @@ public class PHPStartApacheAction implements IWorkbenchWindowActionDelegate { public void dispose() { } + }