Added xampp start and stop action
[phpeclipse.git] / net.sourceforge.phpeclipse / src / net / sourceforge / phpeclipse / actions / PHPStartXAMPPAction.java
diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/actions/PHPStartXAMPPAction.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/actions/PHPStartXAMPPAction.java
new file mode 100644 (file)
index 0000000..e3dcfff
--- /dev/null
@@ -0,0 +1,90 @@
+/**********************************************************************
+Copyright (c) 2000, 2002 IBM Corp. and others.
+All rights reserved. This program and the accompanying materials
+are made available under the terms of the Common Public License v1.0
+which accompanies this distribution, and is available at
+http://www.eclipse.org/legal/cpl-v10.html
+
+Contributors:
+               IBM Corporation - Initial implementation
+               www.phpeclipse.de
+**********************************************************************/
+package net.sourceforge.phpeclipse.actions;
+
+import java.io.File;
+
+import net.sourceforge.phpdt.externaltools.launchConfigurations.ExternalToolsUtil;
+import net.sourceforge.phpeclipse.PHPConsole;
+import net.sourceforge.phpeclipse.PHPeclipsePlugin;
+
+import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.preference.IPreferenceStore;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.IWorkbenchWindowActionDelegate;
+
+public class PHPStartXAMPPAction implements IWorkbenchWindowActionDelegate {
+  protected IWorkbenchWindow activeWindow = null;
+
+  public void run(IAction action) {
+    final IPreferenceStore store =
+      PHPeclipsePlugin.getDefault().getPreferenceStore();
+    String executable = store.getString(PHPeclipsePlugin.XAMPP_START_PREF);
+    String workingDirectory = null;
+    if (executable!=null && executable.length()>0) {
+      int index = executable.lastIndexOf(File.separatorChar);
+      if (index>0) {
+        workingDirectory = executable.substring(0, index);
+      }
+    }
+    execute(
+      "xampp_start",
+      executable,
+      workingDirectory,
+      true);
+  }
+
+  /**
+        * 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 background run this configuration in background mode
+        */
+  public static void execute(
+    String command,
+    String executable,
+    String workingDirectory,
+    boolean background) {
+    PHPConsole console = new PHPConsole();
+    String consoleMessage;
+    if (background) {
+      consoleMessage =
+        "run in background mode-"
+          + command
+          + ": "
+          + executable;
+    } else {
+      consoleMessage =
+        "run in foreground mode-"
+          + command
+          + ": "
+          + executable;
+    }
+    console.println(consoleMessage);
+
+    ExternalToolsUtil.execute(command, executable, workingDirectory, null, background);
+  }
+  
+  public void selectionChanged(IAction action, ISelection selection) {
+
+  }
+
+  public void init(IWorkbenchWindow window) {
+    this.activeWindow = window;
+  }
+
+  public void dispose() {
+
+  }
+
+}