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.InputStreamReader;
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;
-import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.preference.IPreferenceStore;
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.ui.IWorkbenchWindow;
import org.eclipse.ui.IWorkbenchWindowActionDelegate;
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(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(
+ "apache_start",
+ store.getString(PHPeclipsePlugin.APACHE_RUN_PREF),
+ form.format(arguments),
+ store.getBoolean(PHPeclipsePlugin.APACHE_START_BACKGROUND));
+ }
+
+ /**
+ * 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;
+ }
+ console.write(consoleMessage + "\n");
+
+ ExternalToolsUtil.execute(command, executable, arguments, background);
+ }
+
+ public void selectionChanged(IAction action, ISelection selection) {
+
+ }
+
+ public void init(IWorkbenchWindow window) {
+ this.activeWindow = window;
+ }
+
+ public void dispose() {
+
+ }
+
}