[Esbox-commits] r2255 - in branches/work_Ed: org.maemo.esbox.maemosdk.ui/src/org/maemo/esbox/internal/api/maemosdk/ui/preferences org.maemo.esbox.vm/src/org/maemo/esbox/internal/vm/ui/actions org.maemo.esbox.vm.vmware/src/org/maemo/esbox/internal/vm/vmware

eswartz at garage.maemo.org eswartz at garage.maemo.org
Fri Oct 2 19:52:09 EEST 2009


Author: eswartz
Date: 2009-10-02 19:52:07 +0300 (Fri, 02 Oct 2009)
New Revision: 2255

Modified:
   branches/work_Ed/org.maemo.esbox.maemosdk.ui/src/org/maemo/esbox/internal/api/maemosdk/ui/preferences/SharedFolderTreeViewer.java
   branches/work_Ed/org.maemo.esbox.vm.vmware/src/org/maemo/esbox/internal/vm/vmware/VMwareUtils.java
   branches/work_Ed/org.maemo.esbox.vm/src/org/maemo/esbox/internal/vm/ui/actions/ValidateVirtualMachineCommand.java
Log:
Fixes to make automounting of shares work on OS X

Modified: branches/work_Ed/org.maemo.esbox.maemosdk.ui/src/org/maemo/esbox/internal/api/maemosdk/ui/preferences/SharedFolderTreeViewer.java
===================================================================
--- branches/work_Ed/org.maemo.esbox.maemosdk.ui/src/org/maemo/esbox/internal/api/maemosdk/ui/preferences/SharedFolderTreeViewer.java	2009-10-02 13:04:12 UTC (rev 2254)
+++ branches/work_Ed/org.maemo.esbox.maemosdk.ui/src/org/maemo/esbox/internal/api/maemosdk/ui/preferences/SharedFolderTreeViewer.java	2009-10-02 16:52:07 UTC (rev 2255)
@@ -11,6 +11,8 @@
 
 package org.maemo.esbox.internal.api.maemosdk.ui.preferences;
 
+import java.io.File;
+import java.io.IOException;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.List;
@@ -125,8 +127,36 @@
 			DirectoryDialogHelper.setFilterPathToExistingDirectory(dialog, 
 					current instanceof String 
 					? new Path((String)current).toOSString() : Path.ROOT.toOSString());
-			return dialog.open();
+			
+			String path = dialog.open();
+			return canonical(path);
 		}
+
+		/* (non-Javadoc)
+		 * @see org.maemo.mica.common.ui.TextAndDialogCellEditor#doGetValue()
+		 */
+		@Override
+		protected Object doGetValue() {
+			Object value = super.doGetValue();
+			if (value instanceof String) {
+				value = canonical((String) value);
+			}
+			return value;
+		}
+		/**
+		 * Only store canonical paths, so we can match mount points properly.
+		 * @param value
+		 * @return
+		 */
+		private String canonical(String value) {
+			if (value != null) {
+				try {
+					value = new File(value).getCanonicalPath();
+				} catch (IOException e) {
+				}
+			}
+			return value;
+		}
 	}
 	
 	static abstract class PathFieldItem extends FieldItem {
@@ -307,7 +337,7 @@
 	static class SharedFolderContentProvider implements ITreeContentProvider {
 
 		private Object[] getFields(ISharedFolder folder) {
-			List<Object> fieldList = new ArrayList();
+			List<Object> fieldList = new ArrayList<Object>();
 			
 			fieldList.add(new SharePathFieldItem(
 							"Share path",
@@ -344,7 +374,7 @@
 		 * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
 		 */
 		public Object[] getElements(Object inputElement) {
-			return ((Collection) inputElement).toArray();
+			return ((Collection<?>) inputElement).toArray();
 		}
 		
 		/* (non-Javadoc)
@@ -493,6 +523,8 @@
 		ViewerTooltipSupport.addTooltipSupport(this, new ViewerTooltipSupport.ITooltipProvider() {
 
 			public String getTooltip(Object element) {
+				if (isCellEditorActive())
+					return null;
 				if (element instanceof FieldItem)
 					return ((FieldItem) element).tooltip;
 				/*if (element instanceof ISharedFolder) {
@@ -558,6 +590,7 @@
 		/**
 		 * @param mappings 
 		 */
+		@SuppressWarnings("unchecked")
 		public ScanSharedFoldersThread() {
 			this.mappings = new ArrayList<ISharedFolder>();
 			if (getInput() instanceof Collection)
@@ -579,6 +612,8 @@
 			SharedFolderState state;
 			boolean retry = false;
 			do {
+				remoteMachine.getFileSystemAccess().refresh();
+				
 				state = SharedFolderManager.getInstance().analyzeSharedFolderState(
 						MachineRegistry.getInstance().getLocalMachine(),
 						remoteMachine,
@@ -626,7 +661,7 @@
 			public void run() {
 				if (!getControl().isDisposed()) {
 					if (getInput() instanceof Collection) {
-						Object[] objs = ((Collection) getInput()).toArray();
+						Object[] objs = ((Collection<?>) getInput()).toArray();
 						update(objs, null);
 						for (TreeColumn column : ((Tree) getControl()).getColumns())
 							column.pack();

Modified: branches/work_Ed/org.maemo.esbox.vm/src/org/maemo/esbox/internal/vm/ui/actions/ValidateVirtualMachineCommand.java
===================================================================
--- branches/work_Ed/org.maemo.esbox.vm/src/org/maemo/esbox/internal/vm/ui/actions/ValidateVirtualMachineCommand.java	2009-10-02 13:04:12 UTC (rev 2254)
+++ branches/work_Ed/org.maemo.esbox.vm/src/org/maemo/esbox/internal/vm/ui/actions/ValidateVirtualMachineCommand.java	2009-10-02 16:52:07 UTC (rev 2255)
@@ -22,6 +22,7 @@
 import org.maemo.mica.common.core.machine.MachineRegistry;
 import org.maemo.mica.common.ui.dialogs.StyledTextProgressDialog;
 
+import java.lang.reflect.InvocationTargetException;
 import java.text.MessageFormat;
 
 /**
@@ -72,6 +73,9 @@
 					machine);
 			try {
 				dialog.run(true, true, runner);
+			} catch (InterruptedException e) {
+			} catch (InvocationTargetException e) {
+				Activator.getErrorLogger().logAndShowError("Unexpected exception running tests", e.getCause());
 			} catch (Exception e) {
 				Activator.getErrorLogger().logAndShowError("Unexpected exception running tests", e);
 			}

Modified: branches/work_Ed/org.maemo.esbox.vm.vmware/src/org/maemo/esbox/internal/vm/vmware/VMwareUtils.java
===================================================================
--- branches/work_Ed/org.maemo.esbox.vm.vmware/src/org/maemo/esbox/internal/vm/vmware/VMwareUtils.java	2009-10-02 13:04:12 UTC (rev 2254)
+++ branches/work_Ed/org.maemo.esbox.vm.vmware/src/org/maemo/esbox/internal/vm/vmware/VMwareUtils.java	2009-10-02 16:52:07 UTC (rev 2255)
@@ -135,23 +135,27 @@
 	 * @return String, {@value #NETWORK_CONFIG_BRIDGED}, {@value #NETWORK_CONFIG_HOSTONLY}, {@value #NETWORK_CONFIG_NAT}
 	 */
 	public static String getNetworkConfig(Map<String, String> vmxSettings) {
+		String netconfig = null;
 		String config = null;
 		for (Map.Entry<String, String> entry : vmxSettings.entrySet()) {
 			if (entry.getKey().matches("ethernet.*\\.vnet")) {
 				String vmnet = entry.getValue();
 				if (vmnet.endsWith("vmnet8")) {
-					return NETWORK_CONFIG_NAT;
+					netconfig = NETWORK_CONFIG_NAT;
 				} else if (vmnet.endsWith("vmnet1")) {
-					return NETWORK_CONFIG_HOSTONLY;
+					netconfig = NETWORK_CONFIG_HOSTONLY;
 				} else if (vmnet.endsWith("vmnet0")) {
-					return NETWORK_CONFIG_BRIDGED;
+					netconfig = NETWORK_CONFIG_BRIDGED;
 				} 
 			}
 			if (entry.getKey().matches("ethernet.*\\.connectionType")) {
 				config = entry.getValue();
+				if (!config.equals("custom")) {
+					return config;
+				}
 			}
 		}
-		return config;
+		return netconfig != null ? netconfig : config;
 	}
 
 	/**



More information about the Esbox-commits mailing list