[Esbox-commits] r2039 - in trunk: org.maemo.esbox.maemosdk.ui/src/org/maemo/esbox/internal/api/maemosdk/ui/preferences org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/ui/wizard org.maemo.esbox.scratchbox.tests/src/org/maemo/esbox/scratchbox/tests org.maemo.esbox.tests/src/org/maemo/esbox/internal/tests org.maemo.esbox.tests/src/org/maemo/esbox/tests org.maemo.esbox.tests/src/org/maemo/esbox/tests/protocol org.maemo.esbox.vm/src/org/maemo/esbox/vm/ui org.maemo.esbox.vm.vmware/src/org/maemo/esbox/internal/api/vm/vmware

eswartz at garage.maemo.org eswartz at garage.maemo.org
Fri Aug 28 01:38:17 EEST 2009


Author: eswartz
Date: 2009-08-28 01:38:14 +0300 (Fri, 28 Aug 2009)
New Revision: 2039

Modified:
   trunk/org.maemo.esbox.maemosdk.ui/src/org/maemo/esbox/internal/api/maemosdk/ui/preferences/MaemoSDKPreferenceIds.java
   trunk/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/ui/wizard/NewScratchbox1SDKWizard.java
   trunk/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/ui/wizard/Scratchbox1SDKInstallerSelectionWizardPage.java
   trunk/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/ui/wizard/Scratchbox1TargetInstallerSelectionWizardPage.java
   trunk/org.maemo.esbox.scratchbox.tests/src/org/maemo/esbox/scratchbox/tests/ESboxScratchboxTestSuite.java
   trunk/org.maemo.esbox.tests/src/org/maemo/esbox/internal/tests/ESboxMicaTestSuite.java
   trunk/org.maemo.esbox.tests/src/org/maemo/esbox/tests/ESboxProductTestSuite.java
   trunk/org.maemo.esbox.tests/src/org/maemo/esbox/tests/protocol/ManualTestSBRSHMachine.java
   trunk/org.maemo.esbox.vm.vmware/src/org/maemo/esbox/internal/api/vm/vmware/MaemoSDKVMInstaller.java
   trunk/org.maemo.esbox.vm/src/org/maemo/esbox/vm/ui/SelectVirtualMachineDialog.java
Log:
Merge revs 2031:2038 from work_Ed branch

Modified: trunk/org.maemo.esbox.maemosdk.ui/src/org/maemo/esbox/internal/api/maemosdk/ui/preferences/MaemoSDKPreferenceIds.java
===================================================================
--- trunk/org.maemo.esbox.maemosdk.ui/src/org/maemo/esbox/internal/api/maemosdk/ui/preferences/MaemoSDKPreferenceIds.java	2009-08-27 21:57:02 UTC (rev 2038)
+++ trunk/org.maemo.esbox.maemosdk.ui/src/org/maemo/esbox/internal/api/maemosdk/ui/preferences/MaemoSDKPreferenceIds.java	2009-08-27 22:38:14 UTC (rev 2039)
@@ -20,5 +20,6 @@
 public interface MaemoSDKPreferenceIds {
 
 	public final String BUILD_MACHINE_PREFS_ID = UIActivator.PLUGIN_ID + ".preferencePage.buildMachines";
+	public static final String ESBOX_PREFERENCE_CATEGORY_ID = "org.maemo.esbox.ui.preferenceCategory.esbox";
 
 }

Modified: trunk/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/ui/wizard/NewScratchbox1SDKWizard.java
===================================================================
--- trunk/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/ui/wizard/NewScratchbox1SDKWizard.java	2009-08-27 21:57:02 UTC (rev 2038)
+++ trunk/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/ui/wizard/NewScratchbox1SDKWizard.java	2009-08-27 22:38:14 UTC (rev 2039)
@@ -13,8 +13,10 @@
 
 import java.lang.reflect.InvocationTargetException;
 
+import org.eclipse.core.runtime.IPath;
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Path;
 import org.eclipse.jface.dialogs.InputDialog;
 import org.eclipse.jface.dialogs.MessageDialog;
 import org.eclipse.jface.layout.GridDataFactory;
@@ -24,6 +26,7 @@
 import org.eclipse.jface.viewers.StructuredSelection;
 import org.eclipse.jface.window.Window;
 import org.eclipse.jface.wizard.IWizardContainer;
+import org.eclipse.jface.wizard.IWizardPage;
 import org.eclipse.jface.wizard.Wizard;
 import org.eclipse.jface.wizard.WizardDialog;
 import org.eclipse.swt.SWT;
@@ -34,8 +37,11 @@
 import org.eclipse.ui.IWorkbench;
 import org.eclipse.ui.IWorkbenchWindow;
 import org.eclipse.ui.IWorkbenchWizard;
+import org.maemo.esbox.internal.api.scratchbox.ui.wizards.ApplyAutoconfPatchWizard;
 import org.maemo.esbox.internal.scratchbox.sb1.Activator;
 import org.maemo.esbox.internal.scratchbox.sb1.IHelpID;
+import org.maemo.esbox.scratchbox.sb1.sdk.IScratchbox1SDK;
+import org.maemo.mica.common.core.HostUtils;
 import org.maemo.mica.common.core.MicaException;
 import org.maemo.mica.common.core.Policy;
 import org.maemo.mica.common.core.machine.IBuildMachine;
@@ -45,8 +51,11 @@
 import org.maemo.mica.common.core.process.IStreamMonitor;
 import org.maemo.mica.common.core.process.ProcessLauncherParameters;
 import org.maemo.mica.common.core.process.ProcessLauncherUtils;
+import org.maemo.mica.common.core.sdk.ISDK;
 import org.maemo.mica.common.core.sdk.ISDKTarget;
+import org.maemo.mica.common.core.sdk.SDKManager;
 import org.maemo.mica.internal.api.common.core.SudoWrappedProcessLauncherFactory;
+import org.maemo.mica.internal.api.common.ui.wizards.WizardWorkProgressPageBase;
 import org.maemo.mica.internal.api.maemosdk.ui.wizards.BadInstallationPage;
 
 import com.nokia.cpp.internal.api.utils.ui.WorkbenchUtils;
@@ -132,8 +141,22 @@
 	}
 
 	public boolean canFinish() {
-		return canFinish;
+		if (!canFinish)
+			return false;
+		
+		// we dynamically add all the pages, so validate them each
+		IWizardPage page = targetPage;
+		while (page != null) {
+			// this one will never be complete until we see it
+			if (page instanceof WizardWorkProgressPageBase)
+				break;
+			if (!page.isPageComplete())
+				return false;
+			page = page.getNextPage();
+		}
+		return true;
 	}
+	
 	/**
 	 * @param canFinish
 	 *            the canFinish to set
@@ -146,10 +169,12 @@
 	public boolean performFinish() {
 		final IStatus status = doWork();
 		
-		final boolean success = status.isMultiStatus()
+		// if we did a lot of work, we have a multistatus.
+		// otherwise, it's an error or nothing really changed.
+		final boolean installedNew = status.isMultiStatus()
 				&& (status.isOK() || status.matches(IStatus.INFO));
 
-		String message = status.isMultiStatus() ? success ? "Installation succeeded"
+		String message = status.isMultiStatus() ? installedNew ? "Installation succeeded"
 				: "Installation encountered some errors"
 				: null;
 
@@ -157,13 +182,39 @@
 				"SDK Installation Results", message, status, true)
 				&& !status.matches(IStatus.CANCEL);
 
-		// Need to reboot
-		if (success)
+		if (installedNew) {
+			patchAutotools();
 			doReboot();
+		}
 
 		return goOn;
 	}
 
+	/**
+	 * Start wizard to patch autotools, since it will break over Samba
+	 */
+	private void patchAutotools() {
+		if (HostUtils.isWindows()) {
+			ApplyAutoconfPatchWizard wizard = new ApplyAutoconfPatchWizard();
+			
+			// we should find the wizard here, but don't fail if we don't
+			IScratchbox1SDK theSDK = null;
+			IPath installPath = 
+				new Path(targetPage.getSDKInstallerData().getScratchboxLocation());
+			for (ISDK sdk : SDKManager.getInstance().getSDKsOfType(IScratchbox1SDK.class)) {
+				if (((IScratchbox1SDK)sdk).getInstallRoot().equals(installPath)) {
+					theSDK = (IScratchbox1SDK) sdk;
+				}
+			}
+			if (theSDK != null) {
+				wizard.setInitialTargets(new Object[] { theSDK });
+			}
+			
+			WizardDialog dialog = new WizardDialog(getShell(), wizard);
+			dialog.open();
+		}		
+	}
+
 	private void doReboot() {
 		MessageDialog rebootDlg= new MessageDialog(
 						super.getShell(),

Modified: trunk/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/ui/wizard/Scratchbox1SDKInstallerSelectionWizardPage.java
===================================================================
--- trunk/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/ui/wizard/Scratchbox1SDKInstallerSelectionWizardPage.java	2009-08-27 21:57:02 UTC (rev 2038)
+++ trunk/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/ui/wizard/Scratchbox1SDKInstallerSelectionWizardPage.java	2009-08-27 22:38:14 UTC (rev 2039)
@@ -16,9 +16,11 @@
 import org.eclipse.jface.layout.GridDataFactory;
 import org.eclipse.jface.layout.GridLayoutFactory;
 import org.eclipse.jface.viewers.ILabelProviderListener;
+import org.eclipse.jface.viewers.IOpenListener;
 import org.eclipse.jface.viewers.ISelectionChangedListener;
 import org.eclipse.jface.viewers.IStructuredSelection;
 import org.eclipse.jface.viewers.LabelProviderChangedEvent;
+import org.eclipse.jface.viewers.OpenEvent;
 import org.eclipse.jface.viewers.SelectionChangedEvent;
 import org.eclipse.jface.viewers.TableViewer;
 import org.eclipse.jface.wizard.IWizardPage;
@@ -169,6 +171,19 @@
 			}
 			
 		});
+		sdkTable.addOpenListener(new IOpenListener() {
+
+			/* (non-Javadoc)
+			 * @see org.eclipse.jface.viewers.IOpenListener#open(org.eclipse.jface.viewers.OpenEvent)
+			 */
+			public void open(OpenEvent event) {
+				validatePage();
+				if (isPageComplete()) {
+					getWizard().getContainer().showPage(getNextPage());
+				}
+			}
+			
+		});
 	}
 
 	/**
@@ -354,6 +369,8 @@
 	 */
 	protected void doChangeSDKChoice(Scratchbox1SDKInstallerData data) {
 		sdkInstallerData = data;
+		detectionPage = null;
+		
 		if (data != null) {
 			userList.setText(data.getUserList());
 			userGroup.setText(data.getUserGroup());
@@ -377,7 +394,9 @@
 	public IWizardPage getNextPage() {
 		if (PreviousInstallationDetectionPage.detect(buildMachine,
 				sdkInstallerData)) {
-			detectionPage = new PreviousInstallationDetectionPage(getWizard(), sdkInstallerData);
+			if (detectionPage == null) {
+				detectionPage = new PreviousInstallationDetectionPage(getWizard(), sdkInstallerData);
+			}
 			return detectionPage;
 		}
 		return getWizard().getWorkPage();

Modified: trunk/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/ui/wizard/Scratchbox1TargetInstallerSelectionWizardPage.java
===================================================================
--- trunk/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/ui/wizard/Scratchbox1TargetInstallerSelectionWizardPage.java	2009-08-27 21:57:02 UTC (rev 2038)
+++ trunk/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/ui/wizard/Scratchbox1TargetInstallerSelectionWizardPage.java	2009-08-27 22:38:14 UTC (rev 2039)
@@ -24,10 +24,12 @@
 import org.eclipse.jface.viewers.ArrayContentProvider;
 import org.eclipse.jface.viewers.ComboViewer;
 import org.eclipse.jface.viewers.ILabelProviderListener;
+import org.eclipse.jface.viewers.IOpenListener;
 import org.eclipse.jface.viewers.ISelectionChangedListener;
 import org.eclipse.jface.viewers.IStructuredSelection;
 import org.eclipse.jface.viewers.LabelProvider;
 import org.eclipse.jface.viewers.LabelProviderChangedEvent;
+import org.eclipse.jface.viewers.OpenEvent;
 import org.eclipse.jface.viewers.SelectionChangedEvent;
 import org.eclipse.jface.viewers.StructuredSelection;
 import org.eclipse.jface.viewers.TableViewer;
@@ -253,6 +255,19 @@
 			}
 			
 		});
+		platformTable.addOpenListener(new IOpenListener() {
+
+			/* (non-Javadoc)
+			 * @see org.eclipse.jface.viewers.IOpenListener#open(org.eclipse.jface.viewers.OpenEvent)
+			 */
+			public void open(OpenEvent event) {
+				validatePage();
+				if (isPageComplete()) {
+					getWizard().getContainer().showPage(getNextPage());
+				}
+			}
+			
+		});
 	}
 
 	/**

Modified: trunk/org.maemo.esbox.scratchbox.tests/src/org/maemo/esbox/scratchbox/tests/ESboxScratchboxTestSuite.java
===================================================================
--- trunk/org.maemo.esbox.scratchbox.tests/src/org/maemo/esbox/scratchbox/tests/ESboxScratchboxTestSuite.java	2009-08-27 21:57:02 UTC (rev 2038)
+++ trunk/org.maemo.esbox.scratchbox.tests/src/org/maemo/esbox/scratchbox/tests/ESboxScratchboxTestSuite.java	2009-08-27 22:38:14 UTC (rev 2039)
@@ -40,7 +40,9 @@
 				}
 			}
 		} catch (MicaException e) {
+			return TestSuite.warning("Could not connect to build machine");
 		}
+		
 		SDKManager.getInstance().waitForRefreshComplete(null);
 		
 		TestSuite suite = new TestSuite(

Modified: trunk/org.maemo.esbox.tests/src/org/maemo/esbox/internal/tests/ESboxMicaTestSuite.java
===================================================================
--- trunk/org.maemo.esbox.tests/src/org/maemo/esbox/internal/tests/ESboxMicaTestSuite.java	2009-08-27 21:57:02 UTC (rev 2038)
+++ trunk/org.maemo.esbox.tests/src/org/maemo/esbox/internal/tests/ESboxMicaTestSuite.java	2009-08-27 22:38:14 UTC (rev 2039)
@@ -43,6 +43,7 @@
 				}
 			}
 		} catch (MicaException e) {
+			return TestSuite.warning("Could not connect to build machine");
 		}
 		
 		suite.addTest(new JUnit4TestAdapter(TestOProfileValgrindSupport.class));

Modified: trunk/org.maemo.esbox.tests/src/org/maemo/esbox/tests/ESboxProductTestSuite.java
===================================================================
--- trunk/org.maemo.esbox.tests/src/org/maemo/esbox/tests/ESboxProductTestSuite.java	2009-08-27 21:57:02 UTC (rev 2038)
+++ trunk/org.maemo.esbox.tests/src/org/maemo/esbox/tests/ESboxProductTestSuite.java	2009-08-27 22:38:14 UTC (rev 2039)
@@ -14,6 +14,7 @@
 import org.eclipse.core.runtime.IStatus;
 import org.maemo.mica.common.core.ErrorLogger;
 import org.maemo.mica.common.core.MicaException;
+import org.maemo.mica.common.core.TimeoutProgressMonitor;
 import org.maemo.mica.common.core.ErrorLogger.Listener;
 import org.maemo.mica.common.core.machine.*;
 import org.maemo.mica.common.core.tests.TestMachineUtils;
@@ -29,19 +30,18 @@
 public class ESboxProductTestSuite {
 
 	public static Test suite() {
-		TestSuite suite = new TestSuite(
-				"Test for ESbox Product");
-		
 		try {
 			IMachine testMachine = TestMachineUtils.getSSHBuildMachine();
 			if (testMachine != null) {
-				MachineUtils.acquireMachine(testMachine);
+				MachineUtils.acquireMachine(testMachine,
+						new TimeoutProgressMonitor(5 * 60 * 1000));
 			} else {
 				for (IBuildMachine machine : MachineRegistry.getInstance().getBuildMachines()) {
 					MachineUtils.acquireMachine(machine);
 				}
 			}
 		} catch (MicaException e) {
+			return TestSuite.warning("Could not connect to build machine");
 		}
 		
 		ErrorLogger.Listener listener = new Listener() {
@@ -57,7 +57,10 @@
 			
 		};
 		ErrorLogger.addListener(listener);
-		
+
+		TestSuite suite = new TestSuite(
+			"Test for ESbox Product");
+
 		suite.addTest(org.maemo.mica.common.core.tests.MicaCoreTestSuite.suite());
 		suite.addTest(org.maemo.esbox.internal.tests.ESboxMicaTestSuite.suite());
 		suite.addTest(org.maemo.esbox.vm.tests.ESboxVMTestSuite.suite());

Modified: trunk/org.maemo.esbox.tests/src/org/maemo/esbox/tests/protocol/ManualTestSBRSHMachine.java
===================================================================
--- trunk/org.maemo.esbox.tests/src/org/maemo/esbox/tests/protocol/ManualTestSBRSHMachine.java	2009-08-27 21:57:02 UTC (rev 2038)
+++ trunk/org.maemo.esbox.tests/src/org/maemo/esbox/tests/protocol/ManualTestSBRSHMachine.java	2009-08-27 22:38:14 UTC (rev 2039)
@@ -18,6 +18,7 @@
 import org.eclipse.core.filesystem.IFileStore;
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.NullProgressMonitor;
 import org.eclipse.core.runtime.Path;
 import org.maemo.esbox.tests.common.SboxTestUtils;
 import org.maemo.mica.common.core.HostUtils;
@@ -69,7 +70,7 @@
 				// new QemuMachine(new StockQemuConfiguration());
 		else
 			sbrshHostMachine = MachineRegistry.getInstance().getLocalMachine();
-		MachineUtils.acquireMachine(sbrshHostMachine);
+		MachineUtils.acquireMachine(sbrshHostMachine, new NullProgressMonitor());
 		
 		SboxTestUtils.reset();
 		theSB1SDKTarget = SboxTestUtils.theSB1SDKTarget;

Modified: trunk/org.maemo.esbox.vm/src/org/maemo/esbox/vm/ui/SelectVirtualMachineDialog.java
===================================================================
--- trunk/org.maemo.esbox.vm/src/org/maemo/esbox/vm/ui/SelectVirtualMachineDialog.java	2009-08-27 21:57:02 UTC (rev 2038)
+++ trunk/org.maemo.esbox.vm/src/org/maemo/esbox/vm/ui/SelectVirtualMachineDialog.java	2009-08-27 22:38:14 UTC (rev 2039)
@@ -19,6 +19,7 @@
 import org.eclipse.swt.layout.GridData;
 import org.eclipse.swt.widgets.*;
 import org.eclipse.ui.dialogs.PreferencesUtil;
+import org.maemo.esbox.internal.api.maemosdk.ui.preferences.MaemoSDKPreferenceIds;
 import org.maemo.esbox.internal.vm.Activator;
 import org.maemo.mica.common.core.ProductUtils;
 
@@ -29,9 +30,6 @@
  */
 public class SelectVirtualMachineDialog extends MessageDialogWithToggle {
 
-	public static final String BUILD_MACHINE_PREFS_ID = "org.maemo.esbox.maemosdk.ui.preferencePage.buildMachines";
-	protected static final String ESBOX_PREFERENCE_CATEGORY_ID = "org.maemo.esbox.ui.preferenceCategory.esbox";
-	
 	private static final String BUG_ME_NOT = "SelectBuildMachineDialog.BugMeNot";
 
 	/**
@@ -73,10 +71,10 @@
 				SelectVirtualMachineDialog.this.close();
 				PreferenceDialog dialog = PreferencesUtil.createPreferenceDialogOn(
 						getShell(), 
-						BUILD_MACHINE_PREFS_ID,
+						MaemoSDKPreferenceIds.BUILD_MACHINE_PREFS_ID,
 						new String[] { 
-								ESBOX_PREFERENCE_CATEGORY_ID,
-								BUILD_MACHINE_PREFS_ID, 
+								MaemoSDKPreferenceIds.ESBOX_PREFERENCE_CATEGORY_ID,
+								MaemoSDKPreferenceIds.BUILD_MACHINE_PREFS_ID, 
 							},
 						null);
 				dialog.open();

Modified: trunk/org.maemo.esbox.vm.vmware/src/org/maemo/esbox/internal/api/vm/vmware/MaemoSDKVMInstaller.java
===================================================================
--- trunk/org.maemo.esbox.vm.vmware/src/org/maemo/esbox/internal/api/vm/vmware/MaemoSDKVMInstaller.java	2009-08-27 21:57:02 UTC (rev 2038)
+++ trunk/org.maemo.esbox.vm.vmware/src/org/maemo/esbox/internal/api/vm/vmware/MaemoSDKVMInstaller.java	2009-08-27 22:38:14 UTC (rev 2039)
@@ -27,8 +27,10 @@
 import org.eclipse.core.runtime.Path;
 import org.eclipse.jface.dialogs.ProgressMonitorDialog;
 import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.jface.window.Window;
+import org.eclipse.jface.preference.PreferenceDialog;
 import org.eclipse.swt.widgets.Shell;
+import org.eclipse.ui.dialogs.PreferencesUtil;
+import org.maemo.esbox.internal.api.maemosdk.ui.preferences.MaemoSDKPreferenceIds;
 import org.maemo.esbox.internal.api.vm.vmware.MaemoSDKVMInfo.Status;
 import org.maemo.esbox.internal.scratchbox.sb1.ui.wizard.NewScratchbox1SDKWizard;
 import org.maemo.esbox.internal.scratchbox.sb1.ui.wizard.NewScratchbox1TargetWizard;
@@ -36,7 +38,6 @@
 import org.maemo.esbox.internal.vm.vmware.ui.wizards.MaemoSDKVMInstallData;
 import org.maemo.esbox.vm.core.IVirtualMachine;
 import org.maemo.esbox.vm.core.IVirtualMachineConfiguration;
-import org.maemo.esbox.vm.ui.SelectVirtualMachineDialog;
 import org.maemo.esbox.vm.vmware.IVMwareConfiguration;
 import org.maemo.mica.common.core.Policy;
 import org.maemo.mica.common.core.machine.IBuildMachine;
@@ -48,8 +49,6 @@
 import org.maemo.mica.internal.api.common.core.filesystem.FilesystemUtils;
 import org.maemo.mica.internal.api.linux.packages.core.aptinstall.AptInstallerHelper;
 
-import com.nokia.cpp.internal.api.utils.ui.WorkbenchUtils;
-
 /**
  * This class wraps the main methods used during installation of Maemo SDK
  * virtual image.
@@ -226,10 +225,13 @@
 										if (previousProgressValue < progressValue) {
 											previousProgressValue = progressValue;
 											monitor.worked(1);
+											if (monitor.isCanceled())
+												return;
 										}
 										monitor.subTask("Uncompressing " + zipEntry
 												+ "\t\t"
 												+ String.format(Locale.US, "%.2f", getProgress(lenght,totalRead)) + "%");
+										
 									}
 									fileOutputStream.close();
 									zipInputStream.closeEntry();
@@ -328,22 +330,28 @@
 		String vmLocation = configureInitialVMSettings();
 		
 		if (!vmLocation.trim().equals("")) {
-			
+
 			shell.getDisplay().syncExec(new Runnable() {
-	
+
 				public void run() {
-					SelectVirtualMachineDialog dialog = new SelectVirtualMachineDialog(
-							WorkbenchUtils.getActiveShell());
-					int result = dialog.open();
-					if (result != Window.OK)
+					PreferenceDialog dialog = PreferencesUtil.createPreferenceDialogOn(
+							null,	/* do not tie to a shell to avoid #4438 */ 
+							MaemoSDKPreferenceIds.BUILD_MACHINE_PREFS_ID,
+							new String[] { 
+								MaemoSDKPreferenceIds.ESBOX_PREFERENCE_CATEGORY_ID,
+									MaemoSDKPreferenceIds.BUILD_MACHINE_PREFS_ID, 
+								},
+							null);
+					dialog.open();
+					
+					// check for valid build machine
+					if (MachineRegistry.getInstance().getCurrentBuildMachines().length == 0)
 						statuses[0] = Activator.createErrorStatus("Virtual image was not properly configured.", null);
 					else
 						statuses[0] = Activator.createStatus(IStatus.OK, "Virtual image configured.");
 				}			
-				
 			});
 		}
-			
 		return statuses[0];
 	}
 	



More information about the Esbox-commits mailing list