X-Git-Url: http://git.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 7f69883..8a6b5e2 100644 --- a/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/actions/PHPStartApacheAction.java +++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/actions/PHPStartApacheAction.java @@ -11,52 +11,78 @@ Contributors: **********************************************************************/ 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() { + + } }