Author: koen.aers(a)jboss.com
Date: 2011-07-07 08:02:51 -0400 (Thu, 07 Jul 2011)
New Revision: 32694
Added:
trunk/forge/plugins/org.jboss.tools.forge.ui/src/org/jboss/tools/forge/ui/
trunk/forge/plugins/org.jboss.tools.forge.ui/src/org/jboss/tools/forge/ui/console/
Removed:
trunk/forge/plugins/org.jboss.tools.forge.ui/src/org/jboss/tools/forge/launching/
Modified:
trunk/forge/plugins/org.jboss.tools.forge.core/src/org/jboss/tools/forge/core/process/ForgeAbstractRuntime.java
trunk/forge/plugins/org.jboss.tools.forge.ui/src/org/jboss/tools/forge/ForgeUIPlugin.java
trunk/forge/plugins/org.jboss.tools.forge.ui/src/org/jboss/tools/forge/action/StartDelegate.java
trunk/forge/plugins/org.jboss.tools.forge.ui/src/org/jboss/tools/forge/action/StopDelegate.java
trunk/forge/plugins/org.jboss.tools.forge.ui/src/org/jboss/tools/forge/preferences/ForgeInstallationLabelProvider.java
trunk/forge/plugins/org.jboss.tools.forge.ui/src/org/jboss/tools/forge/preferences/ForgeInstallationsPreferencePage.java
trunk/forge/plugins/org.jboss.tools.forge.ui/src/org/jboss/tools/forge/preferences/ForgeIntallationLabelProvider.java
trunk/forge/plugins/org.jboss.tools.forge.ui/src/org/jboss/tools/forge/view/ConsolePage.java
trunk/forge/plugins/org.jboss.tools.forge.ui/src/org/jboss/tools/forge/view/ConsoleView.java
Log:
use the new 'core' stuff from the 'ui' plugin; delete the old ForgeRuntime
and helpers
Modified:
trunk/forge/plugins/org.jboss.tools.forge.core/src/org/jboss/tools/forge/core/process/ForgeAbstractRuntime.java
===================================================================
---
trunk/forge/plugins/org.jboss.tools.forge.core/src/org/jboss/tools/forge/core/process/ForgeAbstractRuntime.java 2011-07-07
10:33:31 UTC (rev 32693)
+++
trunk/forge/plugins/org.jboss.tools.forge.core/src/org/jboss/tools/forge/core/process/ForgeAbstractRuntime.java 2011-07-07
12:02:51 UTC (rev 32694)
@@ -115,9 +115,14 @@
DebugEvent event = events[i];
if (event.getSource().equals(process)) {
if (event.getKind() == DebugEvent.TERMINATE) {
- setNewState(STATE_NOT_RUNNING);
- process = null;
- DebugPlugin.getDefault().removeDebugEventListener(terminateListener);
+ DebugPlugin.getDefault().asyncExec(new Runnable() {
+ @Override
+ public void run() {
+ setNewState(STATE_NOT_RUNNING);
+ process = null;
+
DebugPlugin.getDefault().removeDebugEventListener(terminateListener);
+ }
+ });
}
}
}
Modified:
trunk/forge/plugins/org.jboss.tools.forge.ui/src/org/jboss/tools/forge/ForgeUIPlugin.java
===================================================================
---
trunk/forge/plugins/org.jboss.tools.forge.ui/src/org/jboss/tools/forge/ForgeUIPlugin.java 2011-07-07
10:33:31 UTC (rev 32693)
+++
trunk/forge/plugins/org.jboss.tools.forge.ui/src/org/jboss/tools/forge/ForgeUIPlugin.java 2011-07-07
12:02:51 UTC (rev 32694)
@@ -3,7 +3,6 @@
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Status;
import org.eclipse.ui.plugin.AbstractUIPlugin;
-import org.jboss.tools.forge.launching.ForgeRuntime;
import org.osgi.framework.BundleContext;
public class ForgeUIPlugin extends AbstractUIPlugin {
@@ -18,9 +17,6 @@
}
public void stop(BundleContext context) throws Exception {
- if (ForgeRuntime.INSTANCE.isForgeRunning()) {
- ForgeRuntime.INSTANCE.stopForge();
- }
plugin = null;
super.stop(context);
}
Modified:
trunk/forge/plugins/org.jboss.tools.forge.ui/src/org/jboss/tools/forge/action/StartDelegate.java
===================================================================
---
trunk/forge/plugins/org.jboss.tools.forge.ui/src/org/jboss/tools/forge/action/StartDelegate.java 2011-07-07
10:33:31 UTC (rev 32693)
+++
trunk/forge/plugins/org.jboss.tools.forge.ui/src/org/jboss/tools/forge/action/StartDelegate.java 2011-07-07
12:02:51 UTC (rev 32694)
@@ -4,13 +4,13 @@
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.ui.IViewActionDelegate;
import org.eclipse.ui.IViewPart;
-import org.jboss.tools.forge.launching.ForgeRuntime;
+import org.jboss.tools.forge.view.ConsoleView;
public class StartDelegate implements IViewActionDelegate {
@Override
public void run(IAction action) {
- ForgeRuntime.INSTANCE.startForge();
+ ConsoleView.INSTANCE.startForge();
}
@Override
Modified:
trunk/forge/plugins/org.jboss.tools.forge.ui/src/org/jboss/tools/forge/action/StopDelegate.java
===================================================================
---
trunk/forge/plugins/org.jboss.tools.forge.ui/src/org/jboss/tools/forge/action/StopDelegate.java 2011-07-07
10:33:31 UTC (rev 32693)
+++
trunk/forge/plugins/org.jboss.tools.forge.ui/src/org/jboss/tools/forge/action/StopDelegate.java 2011-07-07
12:02:51 UTC (rev 32694)
@@ -4,13 +4,13 @@
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.ui.IViewActionDelegate;
import org.eclipse.ui.IViewPart;
-import org.jboss.tools.forge.launching.ForgeRuntime;
+import org.jboss.tools.forge.view.ConsoleView;
public class StopDelegate implements IViewActionDelegate {
@Override
public void run(IAction action) {
- ForgeRuntime.INSTANCE.stopForge();
+ ConsoleView.INSTANCE.stopForge();
}
@Override
Modified:
trunk/forge/plugins/org.jboss.tools.forge.ui/src/org/jboss/tools/forge/preferences/ForgeInstallationLabelProvider.java
===================================================================
---
trunk/forge/plugins/org.jboss.tools.forge.ui/src/org/jboss/tools/forge/preferences/ForgeInstallationLabelProvider.java 2011-07-07
10:33:31 UTC (rev 32693)
+++
trunk/forge/plugins/org.jboss.tools.forge.ui/src/org/jboss/tools/forge/preferences/ForgeInstallationLabelProvider.java 2011-07-07
12:02:51 UTC (rev 32694)
@@ -3,18 +3,18 @@
import org.eclipse.jface.viewers.ITableLabelProvider;
import org.eclipse.jface.viewers.LabelProvider;
import org.eclipse.swt.graphics.Image;
-import org.jboss.tools.forge.launching.ForgeInstallation;
+import org.jboss.tools.forge.core.process.ForgeRuntime;
public class ForgeInstallationLabelProvider extends LabelProvider implements
ITableLabelProvider {
public String getColumnText(Object element, int columnIndex) {
- if (element instanceof ForgeInstallation) {
- ForgeInstallation forgeInstallation= (ForgeInstallation)element;
+ if (element instanceof ForgeRuntime) {
+ ForgeRuntime forgeRuntime= (ForgeRuntime)element;
switch(columnIndex) {
case 0:
- return forgeInstallation.getName();
+ return forgeRuntime.getName();
case 1:
- return forgeInstallation.getLocation();
+ return forgeRuntime.getLocation();
}
}
return element.toString();
Modified:
trunk/forge/plugins/org.jboss.tools.forge.ui/src/org/jboss/tools/forge/preferences/ForgeInstallationsPreferencePage.java
===================================================================
---
trunk/forge/plugins/org.jboss.tools.forge.ui/src/org/jboss/tools/forge/preferences/ForgeInstallationsPreferencePage.java 2011-07-07
10:33:31 UTC (rev 32693)
+++
trunk/forge/plugins/org.jboss.tools.forge.ui/src/org/jboss/tools/forge/preferences/ForgeInstallationsPreferencePage.java 2011-07-07
12:02:51 UTC (rev 32694)
@@ -27,8 +27,10 @@
import org.eclipse.swt.widgets.TableColumn;
import org.eclipse.ui.IWorkbench;
import org.eclipse.ui.IWorkbenchPreferencePage;
-import org.jboss.tools.forge.launching.ForgeInstallation;
-import org.jboss.tools.forge.launching.ForgeRuntime;
+import org.jboss.tools.forge.core.preferences.ForgeRuntimesPreferences;
+import org.jboss.tools.forge.core.process.ForgeEmbeddedRuntime;
+import org.jboss.tools.forge.core.process.ForgeExternalRuntime;
+import org.jboss.tools.forge.core.process.ForgeRuntime;
public class ForgeInstallationsPreferencePage extends PreferencePage implements
IWorkbenchPreferencePage {
@@ -37,8 +39,8 @@
private CheckboxTableViewer runtimesTableViewer ;
private Button removeButton;
private Button editButton;
- private ArrayList<ForgeInstallation> installations = null;
- private ForgeInstallation defaultInstallation = null;
+ private ArrayList<ForgeRuntime> runtimes = null;
+ private ForgeRuntime defaultRuntime = null;
public ForgeInstallationsPreferencePage() {
super("Installed Forge Runtimes");
@@ -81,8 +83,8 @@
ISelection selection = runtimesTableViewer.getSelection();
if (selection != null && selection instanceof IStructuredSelection) {
Object object = ((IStructuredSelection)selection).getFirstElement();
- if (object != null && object instanceof ForgeInstallation) {
- installations.remove(object);
+ if (object != null && object instanceof ForgeRuntime) {
+ runtimes.remove(object);
refreshForgeInstallations();
}
}
@@ -99,7 +101,7 @@
ForgeInstallationDialog dialog = new ForgeInstallationDialog(null);
dialog.initialize("Add Forge Runtime", "", "");
if (dialog.open() != Dialog.CANCEL) {
- installations.add(new ForgeInstallation(dialog.getName(), dialog.getLocation()));
+ runtimes.add(new ForgeExternalRuntime(dialog.getName(), dialog.getLocation()));
refreshForgeInstallations();
}
}
@@ -115,8 +117,8 @@
ISelection selection = runtimesTableViewer.getSelection();
if (selection != null && selection instanceof IStructuredSelection) {
Object object = ((IStructuredSelection)selection).getFirstElement();
- if (object != null && object instanceof ForgeInstallation) {
- ForgeInstallation installation = (ForgeInstallation)object;
+ if (object != null && object instanceof ForgeExternalRuntime) {
+ ForgeExternalRuntime installation = (ForgeExternalRuntime)object;
ForgeInstallationDialog dialog = new ForgeInstallationDialog(null);
dialog.initialize("Edit Forge Runtime", installation.getName(),
installation.getLocation());
if (dialog.open() != Dialog.CANCEL) {
@@ -170,8 +172,8 @@
runtimesTableViewer.addCheckStateListener(new ICheckStateListener() {
public void checkStateChanged(final CheckStateChangedEvent event) {
Object object = event.getElement();
- if (object != null && object instanceof ForgeInstallation) {
- defaultInstallation = (ForgeInstallation)object;
+ if (object != null && object instanceof ForgeRuntime) {
+ defaultRuntime = (ForgeRuntime)object;
refreshForgeInstallations();
}
}
@@ -235,20 +237,25 @@
}
private void initializeForgeInstallations() {
- installations = new ArrayList<ForgeInstallation>();
- for (ForgeInstallation install : ForgeRuntime.getInstallations()) {
- ForgeInstallation copy = new ForgeInstallation(install.getName(),
install.getLocation());
- if (install == ForgeRuntime.getDefaultInstallation()) {
- defaultInstallation = copy;
+ runtimes = new ArrayList<ForgeRuntime>();
+ for (ForgeRuntime runtime : ForgeRuntimesPreferences.INSTANCE.getRuntimes()) {
+ ForgeRuntime copy = null;
+ if (runtime instanceof ForgeEmbeddedRuntime) {
+ copy = runtime;
+ } else if (runtime instanceof ForgeExternalRuntime) {
+ copy = new ForgeExternalRuntime(runtime.getName(), runtime.getLocation());
}
- installations.add(copy);
+ if (runtime == ForgeRuntimesPreferences.INSTANCE.getDefault()) {
+ defaultRuntime = copy;
+ }
+ runtimes.add(copy);
}
refreshForgeInstallations();
}
private void refreshForgeInstallations() {
- runtimesTableViewer.setInput((ForgeInstallation[])installations.toArray(new
ForgeInstallation[installations.size()]));
- runtimesTableViewer.setCheckedElements(new Object[] { defaultInstallation });
+ runtimesTableViewer.setInput((ForgeRuntime[])runtimes.toArray(new
ForgeRuntime[runtimes.size()]));
+ runtimesTableViewer.setCheckedElements(new Object[] { defaultRuntime });
runtimesTableViewer.refresh();
}
@@ -259,9 +266,7 @@
selectedObject = selection.getFirstElement();
}
if (selectedObject == null
-// || (selectedObject == runtimesTableViewer.getCheckedElements()[0])
- || (selectedObject instanceof ForgeInstallation
- &&
("embedded".equals(((ForgeInstallation)selectedObject).getName())))) {
+ || (selectedObject instanceof ForgeEmbeddedRuntime)) {
removeButton.setEnabled(false);
editButton.setEnabled(false);
} else {
@@ -274,9 +279,9 @@
final boolean[] canceled = new boolean[] {false};
BusyIndicator.showWhile(null, new Runnable() {
public void run() {
- ForgeInstallation[] installations =
(ForgeInstallation[])runtimesTableViewer.getInput();
- ForgeInstallation defaultInstallation =
(ForgeInstallation)runtimesTableViewer.getCheckedElements()[0];
- ForgeRuntime.setInstallations(installations, defaultInstallation);
+ ForgeRuntime[] runtimes = (ForgeRuntime[])runtimesTableViewer.getInput();
+ ForgeRuntime defaultRuntime =
(ForgeRuntime)runtimesTableViewer.getCheckedElements()[0];
+ ForgeRuntimesPreferences.INSTANCE.setRuntimes(runtimes, defaultRuntime);
}
});
if(canceled[0]) {
Modified:
trunk/forge/plugins/org.jboss.tools.forge.ui/src/org/jboss/tools/forge/preferences/ForgeIntallationLabelProvider.java
===================================================================
---
trunk/forge/plugins/org.jboss.tools.forge.ui/src/org/jboss/tools/forge/preferences/ForgeIntallationLabelProvider.java 2011-07-07
10:33:31 UTC (rev 32693)
+++
trunk/forge/plugins/org.jboss.tools.forge.ui/src/org/jboss/tools/forge/preferences/ForgeIntallationLabelProvider.java 2011-07-07
12:02:51 UTC (rev 32694)
@@ -3,18 +3,18 @@
import org.eclipse.jface.viewers.ITableLabelProvider;
import org.eclipse.jface.viewers.LabelProvider;
import org.eclipse.swt.graphics.Image;
-import org.jboss.tools.forge.launching.ForgeInstallation;
+import org.jboss.tools.forge.core.process.ForgeRuntime;
public class ForgeIntallationLabelProvider extends LabelProvider implements
ITableLabelProvider {
public String getColumnText(Object element, int columnIndex) {
- if (element instanceof ForgeInstallation) {
- ForgeInstallation forgeInstallation= (ForgeInstallation)element;
+ if (element instanceof ForgeRuntime) {
+ ForgeRuntime forgeRuntime= (ForgeRuntime)element;
switch(columnIndex) {
case 0:
- return forgeInstallation.getName();
+ return forgeRuntime.getName();
case 1:
- return forgeInstallation.getLocation();
+ return forgeRuntime.getLocation();
}
}
return element.toString();
Modified:
trunk/forge/plugins/org.jboss.tools.forge.ui/src/org/jboss/tools/forge/view/ConsolePage.java
===================================================================
---
trunk/forge/plugins/org.jboss.tools.forge.ui/src/org/jboss/tools/forge/view/ConsolePage.java 2011-07-07
10:33:31 UTC (rev 32693)
+++
trunk/forge/plugins/org.jboss.tools.forge.ui/src/org/jboss/tools/forge/view/ConsolePage.java 2011-07-07
12:02:51 UTC (rev 32694)
@@ -1,20 +1,25 @@
package org.jboss.tools.forge.view;
+import org.eclipse.debug.core.model.IProcess;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.ui.console.TextConsoleViewer;
import org.eclipse.ui.part.Page;
import org.jboss.tools.forge.console.Console;
-import org.jboss.tools.forge.launching.ForgeRuntime;
public class ConsolePage extends Page {
private TextConsoleViewer viewer;
private Console console;
+ private IProcess process;
+
+ public ConsolePage(IProcess process) {
+ this.process = process;
+ }
@Override
public void createControl(Composite parent) {
- console = new Console(ForgeRuntime.INSTANCE.getProcess());
+ console = new Console(process);
viewer = new ConsoleViewer(parent, console);
console.initialize();
}
Modified:
trunk/forge/plugins/org.jboss.tools.forge.ui/src/org/jboss/tools/forge/view/ConsoleView.java
===================================================================
---
trunk/forge/plugins/org.jboss.tools.forge.ui/src/org/jboss/tools/forge/view/ConsoleView.java 2011-07-07
10:33:31 UTC (rev 32693)
+++
trunk/forge/plugins/org.jboss.tools.forge.ui/src/org/jboss/tools/forge/view/ConsoleView.java 2011-07-07
12:02:51 UTC (rev 32694)
@@ -3,6 +3,7 @@
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
+import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.debug.core.DebugPlugin;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Composite;
@@ -13,36 +14,36 @@
import org.eclipse.ui.part.PageSite;
import org.eclipse.ui.part.ViewPart;
import org.jboss.tools.forge.console.Console;
-import org.jboss.tools.forge.launching.ForgeRuntime;
+import org.jboss.tools.forge.core.preferences.ForgeRuntimesPreferences;
+import org.jboss.tools.forge.core.process.ForgeRuntime;
public class ConsoleView extends ViewPart implements PropertyChangeListener {
- private static ConsoleView INSTANCE;
+ public static ConsoleView INSTANCE;
private PageBook pageBook = null;
private Control notRunning;
- private Control forgeIsStopping;
- private Control waitWhileForgeIsStarting;
- private Control forgeIsRunning;
+ private Control starting;
+ private Control running;
private ConsolePage forgeIsRunningPage;
+ private ForgeRuntime runtime;
+
public ConsoleView() {
if (INSTANCE == null) {
INSTANCE = this;
- ForgeRuntime.INSTANCE.addPropertyChangeListener(this);
}
}
@Override
public void createPartControl(Composite parent) {
pageBook = new PageBook(parent, SWT.NONE);
- createForgeNotRunningPage(parent);
- createWaitWhileForgeIsStartingPage(parent);
- createForgeIsStoppingPage(parent);
- showAppropriatePage();
+ createNotRunningPage(parent);
+ createStartingPage(parent);
+ showPage(notRunning);
}
- private void createForgeNotRunningPage(Composite parent) {
+ private void createNotRunningPage(Composite parent) {
MessagePage page = new MessagePage();
page.createControl(pageBook);
page.init(new PageSite(getViewSite()));
@@ -50,60 +51,65 @@
notRunning = page.getControl();
}
- private void createWaitWhileForgeIsStartingPage(Composite parent) {
+ private void createStartingPage(Composite parent) {
MessagePage page = new MessagePage();
page.createControl(pageBook);
page.init(new PageSite(getViewSite()));
page.setMessage("Please wait while Forge is starting");
- waitWhileForgeIsStarting = page.getControl();
+ starting = page.getControl();
}
- private void createForgeIsStoppingPage(Composite parent) {
- MessagePage page = new MessagePage();
- page.createControl(pageBook);
- page.init(new PageSite(getViewSite()));
- page.setMessage("Please wait while Forge is stopping");
- forgeIsStopping = page.getControl();
- }
-
@Override
public void setFocus() {
- if (ForgeRuntime.STATE_RUNNING.equals(ForgeRuntime.INSTANCE.getRuntimeState())) {
+ if (runtime != null && ForgeRuntime.STATE_RUNNING.equals(runtime.getState()))
{
forgeIsRunningPage.setFocus();
}
}
@Override
public void propertyChange(PropertyChangeEvent evt) {
+ if (ForgeRuntime.STATE_STARTING.equals(evt.getNewValue())) {
+ handleStateStarting();
+ } else if (ForgeRuntime.STATE_RUNNING.equals(evt.getNewValue())) {
+ handleStateRunning();
+ } else if (ForgeRuntime.STATE_NOT_RUNNING.equals(evt.getNewValue())) {
+ handleStateNotRunning();
+ }
+ }
+
+ private void handleStateStarting() {
+ showPage(starting);
+ createRunningPage();
+ }
+
+ private void handleStateRunning() {
+ showPage(running);
+ }
+
+ private void handleStateNotRunning() {
+ if (runtime != null) {
+ runtime.removePropertyChangeListener(INSTANCE);
+ runtime = null;
+ }
+ showPage(notRunning);
+ }
+
+ private void showPage(final Control control) {
Display.getDefault().asyncExec(new Runnable() {
@Override
public void run() {
- showAppropriatePage();
+ pageBook.showPage(control);
}
});
}
- private void showAppropriatePage() {
- String runtimeState = ForgeRuntime.INSTANCE.getRuntimeState();
- if (ForgeRuntime.STATE_NOT_RUNNING.equals(runtimeState)) {
- pageBook.showPage(notRunning);
- } else if (ForgeRuntime.STATE_RUNNING.equals(runtimeState)) {
- showForgeIsRunning();
- } else if (ForgeRuntime.STATE_STARTING.equals(runtimeState)) {
- pageBook.showPage(waitWhileForgeIsStarting);
- } else if (ForgeRuntime.STATE_STOPPING.equals(runtimeState)) {
- pageBook.showPage(forgeIsStopping);
- }
- }
-
- private void showForgeIsRunning() {
- Control oldForgeIsRunning = forgeIsRunning;
+ private void createRunningPage() {
+ Control oldForgeIsRunning = running;
ConsolePage oldForgeIsRunningPage = forgeIsRunningPage;
- forgeIsRunningPage = new ConsolePage();
+ forgeIsRunningPage = new ConsolePage(runtime.getProcess());
forgeIsRunningPage.createControl(pageBook);
forgeIsRunningPage.init(new PageSite(getViewSite()));
- forgeIsRunning = forgeIsRunningPage.getControl();
- pageBook.showPage(forgeIsRunning);
+ running = forgeIsRunningPage.getControl();
if (oldForgeIsRunningPage != null) {
Console oldConsole = oldForgeIsRunningPage.getConsole();
if (oldConsole != null) {
@@ -118,8 +124,33 @@
}
public void dispose() {
- ForgeRuntime.INSTANCE.removePropertyChangeListener(this);
+ if (runtime != null) {
+ runtime.stop(null);
+ runtime = null;
+ }
super.dispose();
}
+
+ public void startForge() {
+ if (runtime != null) return;
+ runtime = ForgeRuntimesPreferences.INSTANCE.getDefault();
+ runtime.addPropertyChangeListener(INSTANCE);
+ final IProgressMonitor progressMonitor =
getViewSite().getActionBars().getStatusLineManager().getProgressMonitor();
+ Display.getDefault().asyncExec(new Runnable() {
+ @Override
+ public void run() {
+ runtime.start(progressMonitor);
+ if (progressMonitor.isCanceled()) {
+ handleStateNotRunning();
+ }
+ }
+ });
+ }
+
+ public void stopForge() {
+ if (runtime == null) return;
+ final IProgressMonitor progressMonitor =
getViewSite().getActionBars().getStatusLineManager().getProgressMonitor();
+ runtime.stop(progressMonitor);
+ }
}