[Esbox-commits] r1560 - in trunk: org.maemo.esbox.maemosdk.ui/src/org/maemo/esbox/internal/api/maemosdk/ui/preferences org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/scratchbox/core/sbrsh org.maemo.esbox.vm/src/org/maemo/esbox/internal/api/vm/ui org.maemo.esbox.vm/src/org/maemo/esbox/internal/api/vm/ui/preferences org.maemo.esbox.vm/src/org/maemo/esbox/internal/vm/ui/actions
eswartz at garage.maemo.org
eswartz at garage.maemo.org
Fri May 8 16:11:15 EEST 2009
Author: eswartz
Date: 2009-05-08 16:11:15 +0300 (Fri, 08 May 2009)
New Revision: 1560
Modified:
trunk/org.maemo.esbox.maemosdk.ui/src/org/maemo/esbox/internal/api/maemosdk/ui/preferences/BuildMachinePreferencePage.java
trunk/org.maemo.esbox.maemosdk.ui/src/org/maemo/esbox/internal/api/maemosdk/ui/preferences/SharedFoldersPreferencePage.java
trunk/org.maemo.esbox.maemosdk.ui/src/org/maemo/esbox/internal/api/maemosdk/ui/preferences/ValidateMachineRunner.java
trunk/org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/scratchbox/core/sbrsh/SBRSHPreferenceMigrator.java
trunk/org.maemo.esbox.vm/src/org/maemo/esbox/internal/api/vm/ui/SlowVirtualMachineLaunchMonitorDialog.java
trunk/org.maemo.esbox.vm/src/org/maemo/esbox/internal/api/vm/ui/SynchronizedProgressPartProgressMonitor.java
trunk/org.maemo.esbox.vm/src/org/maemo/esbox/internal/api/vm/ui/preferences/CommonVirtualMachineSettingsPreferencePage.java
trunk/org.maemo.esbox.vm/src/org/maemo/esbox/internal/vm/ui/actions/ValidateVirtualMachineCommand.java
Log:
Merge revs 1557:1559 from work_Ed branch (headers & bug 3937)
Modified: trunk/org.maemo.esbox.maemosdk.ui/src/org/maemo/esbox/internal/api/maemosdk/ui/preferences/BuildMachinePreferencePage.java
===================================================================
--- trunk/org.maemo.esbox.maemosdk.ui/src/org/maemo/esbox/internal/api/maemosdk/ui/preferences/BuildMachinePreferencePage.java 2009-05-08 13:04:26 UTC (rev 1559)
+++ trunk/org.maemo.esbox.maemosdk.ui/src/org/maemo/esbox/internal/api/maemosdk/ui/preferences/BuildMachinePreferencePage.java 2009-05-08 13:11:15 UTC (rev 1560)
@@ -60,6 +60,7 @@
import org.maemo.mica.common.core.machine.MachineRegistry;
import org.maemo.mica.common.core.sdk.SDKFactory;
import org.maemo.mica.common.ui.common.PixelConverter;
+import org.maemo.mica.common.ui.dialogs.StyledTextProgressDialog;
/**
* Configure virtual machine preferences. This allows the user to select which
@@ -520,11 +521,19 @@
Display.getDefault().asyncExec(new Runnable() {
public void run() {
- ProgressMonitorDialog dialog = new ProgressMonitorDialog(getShell());
+ StyledTextProgressDialog dialog = new StyledTextProgressDialog(
+ getShell(),
+ "Virtual Machine Validation");
+
+ dialog.open();
+
+ ValidateMachineRunner runner = new ValidateMachineRunner(
+ dialog.getProgressReporter(),
+ selectedMachine);
try {
- dialog.run(false, true, new ValidateMachineRunner(getShell(), selectedMachine));
+ dialog.run(true, true, runner);
} catch (Exception e) {
- UIActivator.getErrorLogger().logAndShowError("Unexpected error when testing machine", e);
+ UIActivator.getErrorLogger().logAndShowError("Unexpected exception running tests", e);
}
}
Modified: trunk/org.maemo.esbox.maemosdk.ui/src/org/maemo/esbox/internal/api/maemosdk/ui/preferences/SharedFoldersPreferencePage.java
===================================================================
--- trunk/org.maemo.esbox.maemosdk.ui/src/org/maemo/esbox/internal/api/maemosdk/ui/preferences/SharedFoldersPreferencePage.java 2009-05-08 13:04:26 UTC (rev 1559)
+++ trunk/org.maemo.esbox.maemosdk.ui/src/org/maemo/esbox/internal/api/maemosdk/ui/preferences/SharedFoldersPreferencePage.java 2009-05-08 13:11:15 UTC (rev 1560)
@@ -230,9 +230,15 @@
} else {
IPath path = share.getMountPath();
if (!path.toFile().exists()) {
- setMessage(MessageFormat.format(
- "The shared folder ''{0}'' does not exist and will be created.",
- path.toOSString()), WARNING);
+ if (!path.isRoot()) {
+ setMessage(MessageFormat.format(
+ "The mount point ''{0}'' does not exist and will be created.",
+ path.toOSString()), WARNING);
+ } else {
+ setMessage(MessageFormat.format(
+ "The drive ''{0}'' is not mounted.",
+ path.toOSString()), WARNING);
+ }
}
}
}
Modified: trunk/org.maemo.esbox.maemosdk.ui/src/org/maemo/esbox/internal/api/maemosdk/ui/preferences/ValidateMachineRunner.java
===================================================================
--- trunk/org.maemo.esbox.maemosdk.ui/src/org/maemo/esbox/internal/api/maemosdk/ui/preferences/ValidateMachineRunner.java 2009-05-08 13:04:26 UTC (rev 1559)
+++ trunk/org.maemo.esbox.maemosdk.ui/src/org/maemo/esbox/internal/api/maemosdk/ui/preferences/ValidateMachineRunner.java 2009-05-08 13:11:15 UTC (rev 1560)
@@ -11,26 +11,47 @@
package org.maemo.esbox.internal.api.maemosdk.ui.preferences;
-import org.eclipse.core.filesystem.*;
+import java.io.OutputStream;
+import java.lang.reflect.InvocationTargetException;
+import java.text.MessageFormat;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Iterator;
+import java.util.List;
+
+import org.eclipse.core.filesystem.EFS;
+import org.eclipse.core.filesystem.IFileInfo;
+import org.eclipse.core.filesystem.IFileStore;
import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.*;
-import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.core.runtime.SubProgressMonitor;
import org.eclipse.jface.dialogs.ProgressMonitorDialog;
import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.console.MessageConsole;
-import org.maemo.mica.common.core.*;
-import org.maemo.mica.common.core.machine.*;
-import org.maemo.mica.common.core.process.*;
+import org.maemo.esbox.internal.maemosdk.ui.UIActivator;
+import org.maemo.mica.common.core.IProgressReporter;
+import org.maemo.mica.common.core.MicaCanceledException;
+import org.maemo.mica.common.core.MicaException;
+import org.maemo.mica.common.core.Policy;
+import org.maemo.mica.common.core.ProgressReporterStreamTextMonitor;
+import org.maemo.mica.common.core.machine.IMachine;
+import org.maemo.mica.common.core.machine.ISharedFilesystemProvider;
+import org.maemo.mica.common.core.machine.ISharedFolder;
+import org.maemo.mica.common.core.machine.MachineUtils;
+import org.maemo.mica.common.core.process.CommandLineArguments;
+import org.maemo.mica.common.core.process.IProcessLauncher;
+import org.maemo.mica.common.core.process.IProcessLauncherFactory;
+import org.maemo.mica.common.core.process.IStreamMonitor;
+import org.maemo.mica.common.core.process.ProcessLauncherCreator;
+import org.maemo.mica.common.core.process.ProcessLauncherUtils;
import org.maemo.mica.common.core.sdk.ISDKTarget;
import org.maemo.mica.common.core.sdk.SDKFactory;
-import java.io.OutputStream;
-import java.lang.reflect.InvocationTargetException;
-import java.text.MessageFormat;
-import java.util.*;
-
/**
* This class validates that a machine is properly configured.
* @author eswartz
@@ -39,43 +60,36 @@
public class ValidateMachineRunner implements IRunnableWithProgress {
private IMachine machine;
+ private final IProgressReporter reporter;
- public ValidateMachineRunner(Shell shell, IMachine machine) {
- this.shell = shell;
+ public ValidateMachineRunner(IProgressReporter reporter,
+ IMachine machine) {
+ if (reporter == null || machine == null)
+ throw new NullPointerException();
+ this.reporter = reporter;
this.machine = machine;
}
private Shell shell;
protected void fail(final String msg, final Object... param) {
- Display.getDefault().syncExec(new Runnable() {
-
- public void run() {
- MessageDialog.openError(shell, "Validation Failure", MessageFormat.format(msg, param));
- }
-
- });
+ reporter.log(UIActivator.createErrorStatus(
+ MessageFormat.format(msg, param), null));
}
protected void info(final String msg, final Object... param) {
- Display.getDefault().syncExec(new Runnable() {
-
- public void run() {
- MessageDialog.openInformation(shell, "Validation Information", MessageFormat.format(msg, param));
- }
-
- });
+ reporter.logInfo(MessageFormat.format(msg, param));
}
protected void warn(final String msg, final Object... param) {
- Display.getDefault().syncExec(new Runnable() {
-
- public void run() {
- MessageDialog.openWarning(shell, "Validation Information", MessageFormat.format(msg, param));
- }
-
- });
+ reporter.log(UIActivator.createStatus(IStatus.WARNING,
+ MessageFormat.format(msg, param), null));
}
+
+ protected void step(IProgressMonitor monitor, String msg) {
+ monitor.subTask(msg);
+ reporter.logInfo(msg);
+ }
/* (non-Javadoc)
* @see org.eclipse.jface.operation.IRunnableWithProgress#run(org.eclipse.core.runtime.IProgressMonitor)
@@ -132,31 +146,26 @@
*/
private boolean testProcessLaunching(final IMachine machine, IProgressMonitor monitor) {
monitor.beginTask("", 1);
- monitor.subTask("Testing process launching");
+ step(monitor, "Testing process launching");
// check the process launcher
IProcessLauncherFactory processLauncherFactory = machine.getProcessLauncherFactory();
IProcessLauncher processLauncher = ProcessLauncherCreator.createProcessLauncher(processLauncherFactory,
"ls " + machine.getUserHome());
- MessageConsole console = CoreConsoleManager.getInstance().getConsole(
- true, null, "Virtual machine ~devel home directory listing");
- Process process;
+ reporter.logInfo(MessageFormat.format("Launching ''{0}''", CommandLineArguments.toCommandLine(processLauncher.getLaunchCommandArguments())));
try {
- process = processLauncher.createProcess();
+ ProcessLauncherUtils.launchAndMonitorStandardStreams(processLauncher,
+ new IStreamMonitor[] {
+ new ProgressReporterStreamTextMonitor(reporter)
+ },
+ monitor);
} catch (MicaException e) {
fail("Could not run 'ls' on " + machine.getUserHome() + " directory.\nIf SSH connections to machine are failing, ensure the \nthat the virtual machine has booted properly and is running an SSH daemon:\n{0}",
e);
return false;
}
- processLauncher.redirectToConsole(console);
- try {
- process.waitFor();
- } catch (InterruptedException e) {
-
- }
-
return true;
}
@@ -166,7 +175,7 @@
*/
private boolean testBasicFileSystem(final IMachine machine, IProgressMonitor monitor) {
monitor.beginTask("", 2);
- monitor.subTask("Testing basic filesystem access");
+ step(monitor, "Testing basic filesystem access");
// check the basic filesystem access
IFileStore store = machine.getFileSystemAccess().getFileStore(machine.getUserHome());
@@ -203,14 +212,14 @@
List<ISharedFolder> sharedFolders = sharedFilesystemProvider.getSharedFolders();
monitor.beginTask("", sharedFolders.size() + 1);
- monitor.subTask("Checking shared folders");
+ step(monitor, "Checking shared folders");
// ping them all
IStatus status = machine.ensureSharesMounted(new SubProgressMonitor(monitor, 1));
if (status.getSeverity() == IStatus.WARNING)
- warn(status.getMessage());
+ reporter.log(status);
else if (status.getSeverity() == IStatus.ERROR) {
- fail(status.getMessage());
+// reporter.log(status);
return false;
}
@@ -227,31 +236,29 @@
}
private boolean testSharedFolder(IProgressMonitor monitor, ISharedFolder share) {
- IPath host = share.getLocalPath();
- IPath remote = share.getRemotePath();
+ IPath shared = share.getSharePath();
+ IPath mounted = share.getMountPath();
// check the shared folder
monitor.beginTask("", 5);
- monitor.subTask("Checking " + host + " -> " + remote);
+ step(monitor, "Checking " + shared + " -> " + mounted);
// look at the actual shared folder ("local" from the POV of who provides the share)
- IPath shareProviderFilePath = host;
IFileStore shareProviderStore = share.isHostProvidedShare()
- ? EFS.getLocalFileSystem().getStore(shareProviderFilePath) : machine.getFileSystemAccess().getFileStore(shareProviderFilePath);
+ ? EFS.getLocalFileSystem().getStore(shared) : machine.getFileSystemAccess().getFileStore(shared);
// check
boolean fileExists = checkFileExists(new SubProgressMonitor(monitor, 1), shareProviderStore);
if (!fileExists) {
fail("The share ''{0}'' does not exist on the share host ({1}).\n\nPlease create it or modify the Shared Folders preferences.",
- shareProviderFilePath.toPortableString(),
+ shared.toPortableString(),
share.isHostProvidedShare() ? "this machine" : machine.getName());
return false;
}
// work with a file inside the share
- shareProviderFilePath = host.append("__testfile.txt");
shareProviderStore = shareProviderStore.getChild("__testfile.txt");
- IPath shareUserFilePath = remote.append("__testfile.txt");
+ IPath shareUserFilePath = mounted.append("__testfile.txt");
IFileStore shareUserStore = share.isHostProvidedShare() ? machine.getFileSystemAccess().getFileStore(
shareUserFilePath) : EFS.getLocalFileSystem().getStore(shareUserFilePath);
monitor.worked(1);
@@ -277,8 +284,18 @@
os = shareProviderStore.openOutputStream(EFS.OVERWRITE, null);
os.write("Contents\n".getBytes());
Policy.close(os);
+ } catch (CoreException e) {
+ if (e.getStatus().toString().contains("Permission denied")) {
+ warn("Could not create file ''{0}'' -- possibly read-only share. Skipping test.",
+ shareProviderStore);
+ return true;
+ } else {
+ fail("Could not create test file ''{0}''.\n\nDoes this share''s folder really exist? If so, this is a serious problem.",
+ shareProviderStore);
+ return false;
+ }
} catch (Exception e) {
- fail("Could not create local test file ''{0}''.\n\nDoes this share''s folder really exist? If so, this is a serious problem.",
+ fail("Could not create test file ''{0}''.\n\nDoes this share''s folder really exist? If so, this is a serious problem.",
shareProviderStore);
return false;
}
@@ -297,7 +314,8 @@
fileExists = checkFileExists(new SubProgressMonitor(monitor, 1), shareUserStore);
if (!fileExists) {
fail("Could not access {0} over SSH filesystem.\n\n"+
- "This file should be visible since we created it on the sharing machine\n"
+ "If the share is mounted, then this file should be visible\n"
+ +"since we created it on the sharing machine\n"
+"and this location is assumed to be shared at {1}. \n \n"+
"Make sure the host and target paths match, and that a different share "
+"is not already mounted there.",
@@ -346,7 +364,7 @@
IFileStore remoteStore;
monitor.beginTask("", 2);
- monitor.subTask("Testing visibility of shared folders in installed targets");
+ step(monitor, "Testing visibility of shared folders in installed targets");
SDKFactory.getInstance().waitForRefreshComplete(new SubProgressMonitor(monitor, 1));
ISDKTarget[] sdkTargets = getMachineProvidedTargets();
Modified: trunk/org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/scratchbox/core/sbrsh/SBRSHPreferenceMigrator.java
===================================================================
--- trunk/org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/scratchbox/core/sbrsh/SBRSHPreferenceMigrator.java 2009-05-08 13:04:26 UTC (rev 1559)
+++ trunk/org.maemo.esbox.scratchbox.core/src/org/maemo/esbox/scratchbox/core/sbrsh/SBRSHPreferenceMigrator.java 2009-05-08 13:11:15 UTC (rev 1560)
@@ -1,3 +1,13 @@
+/*******************************************************************************
+ * Copyright (c) 2009 INdT
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Fabrício S Epaminondas (UFCG)
+ *******************************************************************************/
package org.maemo.esbox.scratchbox.core.sbrsh;
import java.util.Properties;
Modified: trunk/org.maemo.esbox.vm/src/org/maemo/esbox/internal/api/vm/ui/SlowVirtualMachineLaunchMonitorDialog.java
===================================================================
--- trunk/org.maemo.esbox.vm/src/org/maemo/esbox/internal/api/vm/ui/SlowVirtualMachineLaunchMonitorDialog.java 2009-05-08 13:04:26 UTC (rev 1559)
+++ trunk/org.maemo.esbox.vm/src/org/maemo/esbox/internal/api/vm/ui/SlowVirtualMachineLaunchMonitorDialog.java 2009-05-08 13:11:15 UTC (rev 1560)
@@ -1,3 +1,13 @@
+/*******************************************************************************
+ * Copyright (c) 2009 Nokia Corporation
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ed Swartz (Nokia) - initial API and implementation
+ *******************************************************************************/
package org.maemo.esbox.internal.api.vm.ui;
import java.text.MessageFormat;
Modified: trunk/org.maemo.esbox.vm/src/org/maemo/esbox/internal/api/vm/ui/SynchronizedProgressPartProgressMonitor.java
===================================================================
--- trunk/org.maemo.esbox.vm/src/org/maemo/esbox/internal/api/vm/ui/SynchronizedProgressPartProgressMonitor.java 2009-05-08 13:04:26 UTC (rev 1559)
+++ trunk/org.maemo.esbox.vm/src/org/maemo/esbox/internal/api/vm/ui/SynchronizedProgressPartProgressMonitor.java 2009-05-08 13:11:15 UTC (rev 1560)
@@ -1,3 +1,13 @@
+/*******************************************************************************
+ * Copyright (c) 2009 Nokia Corporation
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ed Swartz (Nokia) - initial API and implementation
+ *******************************************************************************/
package org.maemo.esbox.internal.api.vm.ui;
import org.eclipse.core.runtime.IProgressMonitor;
Modified: trunk/org.maemo.esbox.vm/src/org/maemo/esbox/internal/api/vm/ui/preferences/CommonVirtualMachineSettingsPreferencePage.java
===================================================================
--- trunk/org.maemo.esbox.vm/src/org/maemo/esbox/internal/api/vm/ui/preferences/CommonVirtualMachineSettingsPreferencePage.java 2009-05-08 13:04:26 UTC (rev 1559)
+++ trunk/org.maemo.esbox.vm/src/org/maemo/esbox/internal/api/vm/ui/preferences/CommonVirtualMachineSettingsPreferencePage.java 2009-05-08 13:11:15 UTC (rev 1560)
@@ -11,11 +11,12 @@
package org.maemo.esbox.internal.api.vm.ui.preferences;
+import java.lang.reflect.InvocationTargetException;
import java.net.InetAddress;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.dialogs.IDialogConstants;
+import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.jface.layout.GridDataFactory;
+import org.eclipse.jface.operation.IRunnableWithProgress;
import org.eclipse.jface.preference.IPreferenceStore;
import org.eclipse.jface.preference.IntegerFieldEditor;
import org.eclipse.jface.preference.StringFieldEditor;
@@ -23,18 +24,16 @@
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Text;
import org.maemo.esbox.internal.vm.Activator;
import org.maemo.esbox.vm.core.IVirtualMachineConfiguration;
import org.maemo.esbox.vm.core.VirtualMachinePreferenceConstants;
import org.maemo.mica.common.core.PasswordStorage;
import org.maemo.mica.common.ui.StyledTextProgressReporter;
+import org.maemo.mica.common.ui.dialogs.StyledTextProgressDialog;
import org.maemo.mica.common.ui.preferences.BaseComposableFieldEditorPreferencePage;
/**
@@ -45,81 +44,6 @@
*/
public class CommonVirtualMachineSettingsPreferencePage extends BaseComposableFieldEditorPreferencePage
implements IVirtualMachineSettingsPreferencePage {
- /**
- * @author eswartz
- *
- */
- private static class StyledTextProgressDialog extends Dialog {
- private StyledTextProgressReporter reporter;
- private final String title;
- /**
- * @param parent
- * @param title
- */
- private StyledTextProgressDialog(Shell parent, String title) {
- super(parent);
- setShellStyle(getShellStyle() | SWT.RESIZE);
- this.title = title;
- setBlockOnOpen(false);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jface.window.Window#configureShell(org.eclipse.swt.widgets.Shell)
- */
- @Override
- protected void configureShell(Shell newShell) {
- super.configureShell(newShell);
- newShell.setText(title);
- newShell.setCursor(newShell.getDisplay().getSystemCursor(SWT.CURSOR_WAIT));
-
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jface.dialogs.Dialog#getInitialSize()
- */
- @Override
- protected Point getInitialSize() {
- return new Point(500, 300);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jface.dialogs.ProgressMonitorDialog#createButtonsForButtonBar(org.eclipse.swt.widgets.Composite)
- */
- @Override
- protected void createButtonsForButtonBar(Composite parent) {
- super.createButtonsForButtonBar(parent);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jface.dialogs.Dialog#createDialogArea(org.eclipse.swt.widgets.Composite)
- */
- @Override
- protected Control createDialogArea(Composite parent) {
- Composite composite = (Composite) super.createDialogArea(parent);
-
- reporter = new StyledTextProgressReporter(composite);
- GridDataFactory.fillDefaults().grab(true, true).applyTo(
- reporter.getStyledText());
-
- return composite;
- }
-
- /**
- * Get the progress reporter
- * @return
- */
- public StyledTextProgressReporter getProgressReporter() {
- return reporter;
- }
-
- public void done() {
- getButton(IDialogConstants.OK_ID).setEnabled(true);
- getButton(IDialogConstants.CANCEL_ID).setEnabled(false);
- getShell().setCursor(null);
- }
- }
-
-
private StringFieldEditor feUserName;
private StringFieldEditor feUserPassword;
private AddressFieldEditor feSshTargetAddr;
@@ -326,12 +250,17 @@
final StyledTextProgressDialog dialog = new StyledTextProgressDialog(
getShell(), "Configuring network...");
- dialog.open(); // no block
-
+
+ // open to ensure we have the reporter
+ dialog.open();
+
try {
- doConfigureNetwork(dialog.getProgressReporter());
-
- dialog.done();
+ dialog.run(true, true, new IRunnableWithProgress() {
+ public void run(IProgressMonitor monitor)
+ throws InvocationTargetException, InterruptedException {
+ doConfigureNetwork(dialog.getProgressReporter());
+ }
+ });
} catch (Exception e) {
Activator.getErrorLogger().logAndShowError("Unexpected error configuring network defaults", e);
}
Modified: trunk/org.maemo.esbox.vm/src/org/maemo/esbox/internal/vm/ui/actions/ValidateVirtualMachineCommand.java
===================================================================
--- trunk/org.maemo.esbox.vm/src/org/maemo/esbox/internal/vm/ui/actions/ValidateVirtualMachineCommand.java 2009-05-08 13:04:26 UTC (rev 1559)
+++ trunk/org.maemo.esbox.vm/src/org/maemo/esbox/internal/vm/ui/actions/ValidateVirtualMachineCommand.java 2009-05-08 13:11:15 UTC (rev 1560)
@@ -11,17 +11,22 @@
package org.maemo.esbox.internal.vm.ui.actions;
-import org.eclipse.core.commands.*;
-import org.eclipse.core.runtime.*;
+import java.text.MessageFormat;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
import org.maemo.esbox.internal.api.maemosdk.ui.preferences.ValidateMachineRunner;
import org.maemo.esbox.internal.vm.Activator;
-import org.maemo.mica.common.core.machine.*;
+import org.maemo.mica.common.core.machine.IBuildMachine;
+import org.maemo.mica.common.core.machine.MachineRegistry;
+import org.maemo.mica.common.ui.dialogs.StyledTextProgressDialog;
-import java.text.MessageFormat;
-
/**
* @author eswartz
*
@@ -40,16 +45,6 @@
});
}
- protected void info(final String msg, final Object... param) {
- Display.getDefault().syncExec(new Runnable() {
-
- public void run() {
- MessageDialog.openInformation(getShell(), "Validation Information", MessageFormat.format(msg, param));
- }
-
- });
- }
-
/**
* @return
*/
@@ -63,15 +58,23 @@
public Object execute(ExecutionEvent event) throws ExecutionException {
setupContext(event.getApplicationContext());
+ // make a dialog
+ StyledTextProgressDialog dialog = new StyledTextProgressDialog(
+ shell, "Virtual Machine Validation");
+
+ // open to ensure we have the reporter
+ dialog.open();
+
// find a virtual machine
boolean found = false;
IBuildMachine[] machines = MachineRegistry.getInstance().getBuildMachines();
for (IBuildMachine machine : machines) {
ValidateMachineRunner runner = new ValidateMachineRunner(
- shell, machine);
+ dialog.getProgressReporter(),
+ machine);
try {
- runner.run(new NullProgressMonitor());
+ dialog.run(true, true, runner);
} catch (Exception e) {
Activator.getErrorLogger().logAndShowError("Unexpected exception running tests", e);
}
@@ -79,10 +82,11 @@
}
if (!found) {
- fail("No build machine registered -- please consult ESbox > Build Machines to configure.");
- return null;
+ dialog.getProgressReporter().log(Activator.createErrorStatus(
+ "No build machine registered -- please consult ESbox > Build Machines to configure.",
+ null));
}
-
+
return null;
}
More information about the Esbox-commits
mailing list