[Esbox-commits] r940 - in branches/work_Ed: org.maemo.esbox-feature org.maemo.esbox.maemosdk.ui/src/org/maemo/esbox/internal/maemosdk/ui/preferences org.maemo.esbox.vm/src/org/maemo/esbox/internal/api/vm/ui/preferences org.maemo.esbox.vm.qemu org.maemo.esbox.vm.qemu/conf org.maemo.esbox.vm.qemu/src/org/maemo/esbox/internal/vm/qemu

eswartz at garage.maemo.org eswartz at garage.maemo.org
Thu Nov 13 18:24:26 EET 2008


Author: eswartz
Date: 2008-11-13 18:24:25 +0200 (Thu, 13 Nov 2008)
New Revision: 940

Added:
   branches/work_Ed/org.maemo.esbox.vm.qemu/src/org/maemo/esbox/internal/vm/qemu/QemuPreferenceConstantsPrivate.java
   branches/work_Ed/org.maemo.esbox.vm.qemu/src/org/maemo/esbox/internal/vm/qemu/QemuPreferenceMigrator.java
Modified:
   branches/work_Ed/org.maemo.esbox-feature/feature.xml
   branches/work_Ed/org.maemo.esbox.maemosdk.ui/src/org/maemo/esbox/internal/maemosdk/ui/preferences/BuildMachinePreferencePage.java
   branches/work_Ed/org.maemo.esbox.vm.qemu/conf/qemu_prefs.xml
   branches/work_Ed/org.maemo.esbox.vm.qemu/plugin.xml
   branches/work_Ed/org.maemo.esbox.vm.qemu/src/org/maemo/esbox/internal/vm/qemu/QemuMachineController.java
   branches/work_Ed/org.maemo.esbox.vm.qemu/src/org/maemo/esbox/internal/vm/qemu/QemuPreferenceConstants.java
   branches/work_Ed/org.maemo.esbox.vm.qemu/src/org/maemo/esbox/internal/vm/qemu/QemuSettingsPreferencePage.java
   branches/work_Ed/org.maemo.esbox.vm/src/org/maemo/esbox/internal/api/vm/ui/preferences/BaseVirtualMachinePreferencePage.java
Log:
Initialize qemu with Unix settings outside Windows, and add new plugins 
to ESbox feature.  Also add "Validate machine" button to prefs.


Modified: branches/work_Ed/org.maemo.esbox-feature/feature.xml
===================================================================
--- branches/work_Ed/org.maemo.esbox-feature/feature.xml	2008-11-13 14:13:47 UTC (rev 939)
+++ branches/work_Ed/org.maemo.esbox-feature/feature.xml	2008-11-13 16:24:25 UTC (rev 940)
@@ -1,69 +1,76 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature
-      id="org.maemo.esbox"
-      label="ESbox Feature"
-      version="2.0.0.qualifier"
-      provider-name="INdT / NOKIA">
-
-   <description>
-      ESbox feature, containing all the ESbox-specific plugins.
-   </description>
-
-   <copyright>
+<?xml version="1.0" encoding="UTF-8"?>
+<feature
+      id="org.maemo.esbox"
+      label="ESbox Feature"
+      version="2.0.0.qualifier"
+      provider-name="INdT / NOKIA">
+
+   <description>
+      ESbox feature, containing all the ESbox-specific plugins.
+   </description>
+
+   <copyright>
       Copyright (c) 2007-2008 INdT, (c) 2007-2008 Nokia. All rights
-reserved.
-   </copyright>
-
-   <license url="http://www.eclipse.org/legal/epl-v10.html">
-      For legal terms, see the Eclipse Public License.
-   </license>
-
-   <url>
-      <update label="Update site for ESbox project" url="http://esbox.garage.maemo.org/update"/>
-   </url>
-
-   <requires>
-      <import plugin="org.eclipse.core.runtime"/>
-      <import plugin="org.maemo.mica.common.core" version="2.0.0" match="greaterOrEqual"/>
-      <import plugin="org.maemo.mica.maemosdk.core" version="2.0.0" match="greaterOrEqual"/>
-      <import plugin="org.maemo.mica.common.analysis" version="2.0.0" match="greaterOrEqual"/>
-      <import plugin="org.maemo.esbox.scratchbox.core" version="2.0.0" match="greaterOrEqual"/>
-      <import plugin="com.nokia.carbide.templatewizard" version="2.1.0" match="greaterOrEqual"/>
-      <import plugin="org.eclipse.ui"/>
-   </requires>
-
-   <plugin
-         id="org.maemo.esbox.analysis"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.maemo.esbox.help"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"/>
-
-   <plugin
-         id="org.maemo.esbox.maemosdk.core"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.maemo.esbox.maemosdk.ui"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.maemo.esbox.vm.qemu"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-</feature>
+reserved.
+   </copyright>
+
+   <license url="http://www.eclipse.org/legal/epl-v10.html">
+      For legal terms, see the Eclipse Public License.
+   </license>
+
+   <url>
+      <update label="Update site for ESbox project" url="http://esbox.garage.maemo.org/update"/>
+   </url>
+
+   <requires>
+      <import plugin="org.eclipse.core.runtime"/>
+      <import plugin="org.maemo.mica.common.core" version="2.0.0" match="greaterOrEqual"/>
+      <import plugin="org.maemo.mica.maemosdk.core" version="2.0.0" match="greaterOrEqual"/>
+      <import plugin="org.maemo.mica.common.analysis" version="2.0.0" match="greaterOrEqual"/>
+      <import plugin="org.maemo.esbox.scratchbox.core" version="2.0.0" match="greaterOrEqual"/>
+      <import plugin="com.nokia.carbide.templatewizard" version="2.1.0" match="greaterOrEqual"/>
+      <import plugin="org.eclipse.ui"/>
+   </requires>
+
+   <plugin
+         id="org.maemo.esbox.analysis"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.maemo.esbox.help"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"/>
+
+   <plugin
+         id="org.maemo.esbox.maemosdk.core"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.maemo.esbox.maemosdk.ui"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.maemo.esbox.vm.qemu"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.maemo.esbox.vm"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+</feature>

Modified: branches/work_Ed/org.maemo.esbox.maemosdk.ui/src/org/maemo/esbox/internal/maemosdk/ui/preferences/BuildMachinePreferencePage.java
===================================================================
--- branches/work_Ed/org.maemo.esbox.maemosdk.ui/src/org/maemo/esbox/internal/maemosdk/ui/preferences/BuildMachinePreferencePage.java	2008-11-13 14:13:47 UTC (rev 939)
+++ branches/work_Ed/org.maemo.esbox.maemosdk.ui/src/org/maemo/esbox/internal/maemosdk/ui/preferences/BuildMachinePreferencePage.java	2008-11-13 16:24:25 UTC (rev 940)
@@ -11,16 +11,25 @@
 
 package org.maemo.esbox.internal.maemosdk.ui.preferences;
 
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.jface.dialogs.ProgressMonitorDialog;
+import org.eclipse.jface.operation.IRunnableWithProgress;
 import org.eclipse.jface.preference.PreferencePage;
 import org.eclipse.jface.viewers.*;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.custom.*;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
 import org.eclipse.swt.layout.*;
 import org.eclipse.swt.widgets.*;
 import org.eclipse.ui.IWorkbench;
 import org.eclipse.ui.IWorkbenchPreferencePage;
+import org.maemo.esbox.internal.maemosdk.ui.UIActivator;
 import org.maemo.mica.common.core.machine.*;
 
+import java.lang.reflect.InvocationTargetException;
 import java.util.*;
 import java.util.List;
 
@@ -49,6 +58,10 @@
 	 * 
 	 */
 	public BuildMachinePreferencePage() {
+		// first, ensure we scan the build machines (establishing defaults, etc)
+		MachineRegistry.getInstance().getBuildMachines();
+		
+		// now get the full list to populate the UI
 		availableBuildMachines = new ArrayList<IBuildMachine>(
 				Arrays.asList(MachineRegistry.getInstance().getAvailableBuildMachines()));
 		
@@ -100,6 +113,7 @@
 		Text descr = new Text(composite, SWT.READ_ONLY + SWT.MULTI + SWT.WRAP);
 		descr.setText("Select the build machine for ESbox.  The machine determines where scratchbox is found.\nIf the host is not Linux/x86 you must select and configure a virtual machine.");
 		descr.setLayoutData(new GridData(SWT.LEFT, SWT.TOP, true, false));
+		descr.setBackground(parent.getBackground());
 		
 		Label sep = new Label(composite, SWT.SEPARATOR + SWT.HORIZONTAL);
 		sep.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
@@ -324,4 +338,45 @@
 		return super.getMessageType();
 	}
 	
+	@Override
+	protected void contributeButtons(Composite parent) {
+		Button button = new Button(parent, SWT.PUSH);
+		button.setText("Apply and &Validate Machine");
+		button.addSelectionListener(new SelectionAdapter() {
+			@Override
+			public void widgetSelected(SelectionEvent ev) {
+				
+				performApply();
+				
+				ProgressMonitorDialog dialog = new ProgressMonitorDialog(getShell());
+				final IStatus[] statuses = { null };
+				try {
+					dialog.run(true, true, new IRunnableWithProgress() {
+	
+						public void run(IProgressMonitor monitor)
+								throws InvocationTargetException,
+								InterruptedException {
+							statuses[0] = MachineManager.getInstance().probeMachine(selectedMachine, null);
+							if (!statuses[0].isOK() && statuses[0].getSeverity() != IStatus.CANCEL) {
+								statuses[0] = MachineManager.getInstance().acquireMachine(selectedMachine, null);
+							}
+						}
+						
+					});
+					
+					if (statuses[0] != null && !statuses[0].isOK()) {
+						UIActivator.getErrorLogger().logAndShowError(statuses[0].getMessage(), statuses[0].getException());
+					} else {
+						MessageDialog.openInformation(getShell(), "Machine Validation", "Machine validation succeeded!");
+					}
+				} catch (Exception e) {
+					if (!(e instanceof InterruptedException))
+						UIActivator.getErrorLogger().logAndShowError("Machine validation failed unexpectedly", e);
+				}
+			}
+		});
+		
+		((GridLayout) parent.getLayout()).numColumns++;
+	}
+
 }

Modified: branches/work_Ed/org.maemo.esbox.vm/src/org/maemo/esbox/internal/api/vm/ui/preferences/BaseVirtualMachinePreferencePage.java
===================================================================
--- branches/work_Ed/org.maemo.esbox.vm/src/org/maemo/esbox/internal/api/vm/ui/preferences/BaseVirtualMachinePreferencePage.java	2008-11-13 14:13:47 UTC (rev 939)
+++ branches/work_Ed/org.maemo.esbox.vm/src/org/maemo/esbox/internal/api/vm/ui/preferences/BaseVirtualMachinePreferencePage.java	2008-11-13 16:24:25 UTC (rev 940)
@@ -12,8 +12,10 @@
 package org.maemo.esbox.internal.api.vm.ui.preferences;
 
 import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.widgets.*;
+import org.eclipse.swt.layout.FillLayout;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Group;
 import org.maemo.mica.common.core.machine.IComposablePreferencePage;
 import org.maemo.mica.common.ui.preferences.ComposedPreferencePage;
 

Modified: branches/work_Ed/org.maemo.esbox.vm.qemu/conf/qemu_prefs.xml
===================================================================
--- branches/work_Ed/org.maemo.esbox.vm.qemu/conf/qemu_prefs.xml	2008-11-13 14:13:47 UTC (rev 939)
+++ branches/work_Ed/org.maemo.esbox.vm.qemu/conf/qemu_prefs.xml	2008-11-13 16:24:25 UTC (rev 940)
@@ -5,10 +5,15 @@
 	<comment>This file contains the default settings for QEMU preferences; 
 	see the org.maemo.mica.common.core.preference_set_provider extension</comment>
 	
-	<entry key="QEMU_INSTALL_PATH">c:/Program Files/QEMU</entry>
-	<entry key="QEMU_EXE_NAME">qemu.exe</entry>
 	<entry key="QEMU_MEMORY_SIZE">512</entry>
 	<entry key="QEMU_LAUNCH_PATTERN">"${QEMU}" -kernel-kqemu "${DISK_OPTIONS}" -usb -L "${INSTALL_PATH}" -m ${MEMORY} -redir tcp:${SSH_PORT}::22</entry>
-	<entry key="QEMU_DISK_IMAGE_PATHS">c:/MaemoVMWare/MaemoSDK-0.8/maemo-sdk-0.8.vmdk</entry>
+
+	<entry key="QEMU_INSTALL_PATH_WIN32">c:/Program Files/QEMU</entry>
+	<entry key="QEMU_EXE_NAME_WIN32">qemu.exe</entry>
+	<entry key="QEMU_DISK_IMAGE_PATHS_WIN32">c:/MaemoVMWare/MaemoSDK-0.8/maemo-sdk-0.8.vmdk</entry>
+
+	<entry key="QEMU_INSTALL_PATH_UNIX">/usr/share/qemu</entry>
+	<entry key="QEMU_EXE_NAME_UNIX">/usr/bin/qemu</entry>
+	<entry key="QEMU_DISK_IMAGE_PATHS_UNIX">/home/${USER}/MaemoVMWare/MaemoSDK-0.8/maemo-sdk-0.8.vmdk</entry>
 	
 </properties>
\ No newline at end of file

Modified: branches/work_Ed/org.maemo.esbox.vm.qemu/plugin.xml
===================================================================
--- branches/work_Ed/org.maemo.esbox.vm.qemu/plugin.xml	2008-11-13 14:13:47 UTC (rev 939)
+++ branches/work_Ed/org.maemo.esbox.vm.qemu/plugin.xml	2008-11-13 16:24:25 UTC (rev 940)
@@ -13,7 +13,7 @@
        <preferenceSetProvider
              defaultsXMLFile="conf/qemu_prefs.xml"
              preferenceConstantsClass="org.maemo.esbox.internal.vm.qemu.QemuPreferenceConstants"
-             preferenceMigratorClass="org.maemo.mica.internal.api.common.core.OldESboxPreferenceMigrator"
+             preferenceMigratorClass="org.maemo.esbox.internal.vm.qemu.QemuPreferenceMigrator"
              preferenceStoreBundle="org.maemo.esbox.vm.qemu"
              version="1">
        </preferenceSetProvider>

Modified: branches/work_Ed/org.maemo.esbox.vm.qemu/src/org/maemo/esbox/internal/vm/qemu/QemuMachineController.java
===================================================================
--- branches/work_Ed/org.maemo.esbox.vm.qemu/src/org/maemo/esbox/internal/vm/qemu/QemuMachineController.java	2008-11-13 14:13:47 UTC (rev 939)
+++ branches/work_Ed/org.maemo.esbox.vm.qemu/src/org/maemo/esbox/internal/vm/qemu/QemuMachineController.java	2008-11-13 16:24:25 UTC (rev 940)
@@ -177,7 +177,10 @@
 			}
 			try {
 				launchedQemu.exitValue();
-				launchedQemuThread.interrupt();
+				try {
+					launchedQemuThread.join();
+				} catch (InterruptedException e) {
+				}
 				throw processOutput("QEMU died", launchedQemuThread);
 			} catch (IllegalThreadStateException e) {
 				// still running

Modified: branches/work_Ed/org.maemo.esbox.vm.qemu/src/org/maemo/esbox/internal/vm/qemu/QemuPreferenceConstants.java
===================================================================
--- branches/work_Ed/org.maemo.esbox.vm.qemu/src/org/maemo/esbox/internal/vm/qemu/QemuPreferenceConstants.java	2008-11-13 14:13:47 UTC (rev 939)
+++ branches/work_Ed/org.maemo.esbox.vm.qemu/src/org/maemo/esbox/internal/vm/qemu/QemuPreferenceConstants.java	2008-11-13 16:24:25 UTC (rev 940)
@@ -38,4 +38,5 @@
 	/** Comma separated list for hda, hdb, ... */
 	public static final String QEMU_DISK_IMAGE_PATHS = "QEMU_DISK_IMAGE_PATHS";
 	
+	static final Class privateKeysClass = QemuPreferenceConstantsPrivate.class;
 }

Added: branches/work_Ed/org.maemo.esbox.vm.qemu/src/org/maemo/esbox/internal/vm/qemu/QemuPreferenceConstantsPrivate.java
===================================================================
--- branches/work_Ed/org.maemo.esbox.vm.qemu/src/org/maemo/esbox/internal/vm/qemu/QemuPreferenceConstantsPrivate.java	                        (rev 0)
+++ branches/work_Ed/org.maemo.esbox.vm.qemu/src/org/maemo/esbox/internal/vm/qemu/QemuPreferenceConstantsPrivate.java	2008-11-13 16:24:25 UTC (rev 940)
@@ -0,0 +1,28 @@
+/*******************************************************************************
+ * Copyright (c) 2008 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.vm.qemu;
+
+/**
+ * Private keys for QEMU prefs initialization
+ * @author eswartz
+ *
+ */
+public class QemuPreferenceConstantsPrivate {
+	public static final String QEMU_INSTALL_PATH_WIN32 = "QEMU_INSTALL_PATH_WIN32";
+	public static final String QEMU_EXE_NAME_WIN32 = "QEMU_EXE_NAME_WIN32";
+	public static final String QEMU_DISK_IMAGE_PATHS_WIN32 = "QEMU_DISK_IMAGE_PATHS_WIN32";
+	
+	public static final String QEMU_INSTALL_PATH_UNIX = "QEMU_INSTALL_PATH_UNIX";
+	public static final String QEMU_EXE_NAME_UNIX = "QEMU_EXE_NAME_UNIX";
+	public static final String QEMU_DISK_IMAGE_PATHS_UNIX = "QEMU_DISK_IMAGE_PATHS_UNIX";
+
+}

Added: branches/work_Ed/org.maemo.esbox.vm.qemu/src/org/maemo/esbox/internal/vm/qemu/QemuPreferenceMigrator.java
===================================================================
--- branches/work_Ed/org.maemo.esbox.vm.qemu/src/org/maemo/esbox/internal/vm/qemu/QemuPreferenceMigrator.java	                        (rev 0)
+++ branches/work_Ed/org.maemo.esbox.vm.qemu/src/org/maemo/esbox/internal/vm/qemu/QemuPreferenceMigrator.java	2008-11-13 16:24:25 UTC (rev 940)
@@ -0,0 +1,72 @@
+/*******************************************************************************
+ * Copyright (c) 2008 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.vm.qemu;
+
+import java.util.Properties;
+
+import org.eclipse.jface.preference.IPreferenceStore;
+import org.maemo.mica.common.core.HostUtils;
+import org.maemo.mica.common.core.IPreferenceMigrator;
+
+/**
+ * @author eswartz
+ *
+ */
+public class QemuPreferenceMigrator implements IPreferenceMigrator {
+
+	/* (non-Javadoc)
+	 * @see org.maemo.mica.common.core.IPreferenceMigrator#adjustDefaultSettings(java.util.Properties)
+	 */
+	public void adjustDefaultSettings(Properties newPropertyDefaults) {
+		// adjust any environment-dependent defaults
+		String hostEnvKey;
+		if (HostUtils.isWindows())
+			hostEnvKey = QemuPreferenceConstantsPrivate.QEMU_INSTALL_PATH_WIN32;
+		else
+			hostEnvKey = QemuPreferenceConstantsPrivate.QEMU_INSTALL_PATH_UNIX;
+		newPropertyDefaults.put(QemuPreferenceConstants.QEMU_INSTALL_PATH,
+				expandVariables(newPropertyDefaults.getProperty(hostEnvKey)));
+		
+		if (HostUtils.isWindows())
+			hostEnvKey = QemuPreferenceConstantsPrivate.QEMU_EXE_NAME_WIN32;
+		else
+			hostEnvKey = QemuPreferenceConstantsPrivate.QEMU_EXE_NAME_UNIX;
+		newPropertyDefaults.put(QemuPreferenceConstants.QEMU_EXE_NAME, 
+				expandVariables(newPropertyDefaults.getProperty(hostEnvKey)));
+		
+		if (HostUtils.isWindows())
+			hostEnvKey = QemuPreferenceConstantsPrivate.QEMU_DISK_IMAGE_PATHS_WIN32;
+		else
+			hostEnvKey = QemuPreferenceConstantsPrivate.QEMU_DISK_IMAGE_PATHS_UNIX;
+		newPropertyDefaults.put(QemuPreferenceConstants.QEMU_DISK_IMAGE_PATHS, 
+				expandVariables(newPropertyDefaults.getProperty(hostEnvKey)));
+	}
+
+	/** Expand variables in defaults. 
+	 *
+	 * TODO: reconcile this with UserAwarePreferenceProvider
+	 */
+	private String expandVariables(String property) {
+		String expanded = property.replaceAll("\\$\\{USER\\}", System.getProperty("user.name"));
+		return expanded;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.maemo.mica.common.core.IPreferenceMigrator#convertExistingPreferences(org.eclipse.jface.preference.IPreferenceStore, int, java.util.Properties, java.util.Properties)
+	 */
+	public void convertExistingPreferences(IPreferenceStore preferences,
+			int oldMajor, Properties existingSettings,
+			Properties newPropertyDefaults) {
+		
+	}
+
+}

Modified: branches/work_Ed/org.maemo.esbox.vm.qemu/src/org/maemo/esbox/internal/vm/qemu/QemuSettingsPreferencePage.java
===================================================================
--- branches/work_Ed/org.maemo.esbox.vm.qemu/src/org/maemo/esbox/internal/vm/qemu/QemuSettingsPreferencePage.java	2008-11-13 14:13:47 UTC (rev 939)
+++ branches/work_Ed/org.maemo.esbox.vm.qemu/src/org/maemo/esbox/internal/vm/qemu/QemuSettingsPreferencePage.java	2008-11-13 16:24:25 UTC (rev 940)
@@ -17,6 +17,8 @@
 import org.eclipse.swt.layout.GridData;
 import org.eclipse.swt.widgets.Text;
 import org.maemo.mica.common.ui.preferences.BaseComposableFieldEditorPreferencePage;
+import org.maemo.mica.common.ui.preferences.NonValidatingDirectoryFieldEditor;
+import org.maemo.mica.common.ui.preferences.NonValidatingFileFieldEditor;
 
 /**
  * Configure QEMU preferences.  This page is NOT registered at the top level
@@ -46,7 +48,7 @@
 	protected void createFieldEditors() {
 		Text text;
 		
-		feQemuPath = new DirectoryFieldEditor(
+		feQemuPath = new NonValidatingDirectoryFieldEditor(
 				QemuPreferenceConstants.QEMU_INSTALL_PATH,
 				"Installation directory:", getFieldEditorParent());
 		addField(feQemuPath);
@@ -92,18 +94,9 @@
 		text = feRamSize.getTextControl(getFieldEditorParent());
 		text.setToolTipText("Specify the size of RAM for the machine, in megabytes.  Note: at least 512 Mb is recommended.");
 		
-		feDiskPath = new FileFieldEditor(
+		feDiskPath = new NonValidatingFileFieldEditor(
 				QemuPreferenceConstants.QEMU_DISK_IMAGE_PATHS,
-				"Disk image(s):", getFieldEditorParent()) {
-			/* (non-Javadoc)
-			 * @see org.eclipse.jface.preference.FileFieldEditor#checkState()
-			 */
-			@Override
-			protected boolean checkState() {
-				// allow anything
-				return true;
-			}
-		};
+				"Disk image(s):", getFieldEditorParent());
 		addField(feDiskPath);
 		text = feDiskPath.getTextControl(getFieldEditorParent());
 		text.setToolTipText(



More information about the Esbox-commits mailing list