[Esbox-commits] r2260 - in branches/work_Ed: org.maemo.esbox.maemosdk.core/conf org.maemo.esbox.maemosdk.core/src/org/maemo/esbox/maemosdk/core org.maemo.esbox.maemosdk.ui/src/org/maemo/esbox/internal/api/maemosdk/ui/preferences

eswartz at garage.maemo.org eswartz at garage.maemo.org
Sun Oct 4 19:13:06 EEST 2009


Author: eswartz
Date: 2009-10-04 19:13:05 +0300 (Sun, 04 Oct 2009)
New Revision: 2260

Modified:
   branches/work_Ed/org.maemo.esbox.maemosdk.core/conf/maemo_prefs.xml
   branches/work_Ed/org.maemo.esbox.maemosdk.core/src/org/maemo/esbox/maemosdk/core/MaemoPreferenceConstants.java
   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/SharedFoldersPreferencePage.java
Log:
-- Avoid NPEs
-- Add checkbox to Shared Folders tab to control whether shared folders are scanned automatically

Modified: branches/work_Ed/org.maemo.esbox.maemosdk.core/conf/maemo_prefs.xml
===================================================================
--- branches/work_Ed/org.maemo.esbox.maemosdk.core/conf/maemo_prefs.xml	2009-10-02 20:58:10 UTC (rev 2259)
+++ branches/work_Ed/org.maemo.esbox.maemosdk.core/conf/maemo_prefs.xml	2009-10-04 16:13:05 UTC (rev 2260)
@@ -23,4 +23,7 @@
 	<entry key="MAEMO_START_ACTION">start</entry>
 	<entry key="MAEMO_RESTART_ACTION">restart</entry>
 	<entry key="MAEMO_STOP_ACTION">stop</entry>
+	
+	<entry key="VALIDATE_SHARED_FOLDERS">true</entry>
+	
 </properties>

Modified: branches/work_Ed/org.maemo.esbox.maemosdk.core/src/org/maemo/esbox/maemosdk/core/MaemoPreferenceConstants.java
===================================================================
--- branches/work_Ed/org.maemo.esbox.maemosdk.core/src/org/maemo/esbox/maemosdk/core/MaemoPreferenceConstants.java	2009-10-02 20:58:10 UTC (rev 2259)
+++ branches/work_Ed/org.maemo.esbox.maemosdk.core/src/org/maemo/esbox/maemosdk/core/MaemoPreferenceConstants.java	2009-10-04 16:13:05 UTC (rev 2260)
@@ -40,5 +40,7 @@
 	public static final String X_DISPLAY = "X_DISPLAY";
 	public static final String X_PATH = "X_PATH";
 	
+	public static final String VALIDATE_SHARED_FOLDERS = "VALIDATE_SHARED_FOLDERS";
+	
 	static final Class<?> privateKeysClass = MaemoPreferenceConstantsPrivate.class;
 }

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 20:58:10 UTC (rev 2259)
+++ branches/work_Ed/org.maemo.esbox.maemosdk.ui/src/org/maemo/esbox/internal/api/maemosdk/ui/preferences/SharedFolderTreeViewer.java	2009-10-04 16:13:05 UTC (rev 2260)
@@ -78,6 +78,7 @@
 	private boolean pendingStatusUpdate;
 	
 	private IMachine remoteMachine;
+	private boolean scanFolders;
 	
 	static abstract class FieldItem {
 		String label;
@@ -437,7 +438,7 @@
 		 */
 		public Image getColumnImage(Object element, int columnIndex) {
 			ISharedFolder folder = null;
-			if (element instanceof ISharedFolder && columnIndex == COLUMN_FIELD) {
+			if (scanFolders && element instanceof ISharedFolder && columnIndex == COLUMN_FIELD) {
 				folder = (ISharedFolder) element;
 				IStatus status = getShareStatus(folder);
 				if (status != null)
@@ -458,7 +459,7 @@
 					return (folder.isHostProvidedShare()
 							? folder.getLocalPath().toOSString() 
 									: folder.getRemotePath().toPortableString());
-				} else if (columnIndex == COLUMN_CONTENT) {
+				} else if (scanFolders && columnIndex == COLUMN_CONTENT) {
 					IStatus status = getShareStatus(folder);
 					if (status != null) {
 						if (!status.isOK() && status.getSeverity() != IStatus.CANCEL) {
@@ -734,7 +735,7 @@
 					((FieldItem) element).setField(value);
 					refresh(getFolder(element));
 					
-					if (!ObjectUtils.equals(oldValue, value))
+					if (scanFolders && !ObjectUtils.equals(oldValue, value))
 						scheduleStatusUpdate();
 				}
 			}
@@ -747,4 +748,19 @@
 		this.remoteMachine = machine;
 		scheduleStatusUpdate();
 	}
+
+	/**
+	 * @param scan
+	 */
+	public void setScanFolders(boolean scan) {
+		this.scanFolders = scan;
+		cancelStatusUpdate();
+		if (scanFolders) {
+			scheduleStatusUpdate();
+		} else {
+			updateLabels();
+			for (TreeColumn column : ((Tree) getControl()).getColumns())
+				column.pack();
+		}
+	}
 }

Modified: branches/work_Ed/org.maemo.esbox.maemosdk.ui/src/org/maemo/esbox/internal/api/maemosdk/ui/preferences/SharedFoldersPreferencePage.java
===================================================================
--- branches/work_Ed/org.maemo.esbox.maemosdk.ui/src/org/maemo/esbox/internal/api/maemosdk/ui/preferences/SharedFoldersPreferencePage.java	2009-10-02 20:58:10 UTC (rev 2259)
+++ branches/work_Ed/org.maemo.esbox.maemosdk.ui/src/org/maemo/esbox/internal/api/maemosdk/ui/preferences/SharedFoldersPreferencePage.java	2009-10-04 16:13:05 UTC (rev 2260)
@@ -16,7 +16,12 @@
 
 import org.eclipse.core.runtime.Path;
 import org.eclipse.jface.dialogs.IDialogConstants;
+import org.eclipse.jface.layout.GridDataFactory;
+import org.eclipse.jface.layout.GridLayoutFactory;
+import org.eclipse.jface.preference.BooleanFieldEditor;
 import org.eclipse.jface.preference.IPreferenceStore;
+import org.eclipse.jface.util.IPropertyChangeListener;
+import org.eclipse.jface.util.PropertyChangeEvent;
 import org.eclipse.jface.viewers.ISelectionChangedListener;
 import org.eclipse.jface.viewers.IStructuredSelection;
 import org.eclipse.jface.viewers.SelectionChangedEvent;
@@ -36,6 +41,7 @@
 import org.eclipse.swt.widgets.Control;
 import org.eclipse.swt.widgets.Label;
 import org.eclipse.swt.widgets.Tree;
+import org.maemo.esbox.maemosdk.core.MaemoPreferenceConstants;
 import org.maemo.mica.common.core.filesystem.EShareType;
 import org.maemo.mica.common.core.filesystem.ISharedFolder;
 import org.maemo.mica.common.core.machine.IMachine;
@@ -67,6 +73,7 @@
 	private final String preferenceName;
 	private IMachine remoteMachine;
 	private final BaseMachinePreferencePage machinePreferencePage;
+	private IPropertyChangeListener scanFoldersListener;
 	
 	public SharedFoldersPreferencePage(BaseMachinePreferencePage machinePreferencePage, IPreferenceStore store, String preferenceName) {
 		super();
@@ -165,14 +172,37 @@
 		GridData labelLayout = new GridData(SWT.LEFT, SWT.TOP, true, false);
 		labelLayout.horizontalSpan = 2;
 		GridLayoutWrappedTextUtils.setupLabel(parent, label, labelLayout);
+
+		Composite tableComposite = new Composite(composite, SWT.NONE);
+		GridLayoutFactory.fillDefaults().applyTo(tableComposite);
+		GridDataFactory.fillDefaults().grab(true, true).applyTo(tableComposite);
 		
-		treeViewer = new SharedFolderTreeViewer(composite, SWT.BORDER);
+		treeViewer = new SharedFolderTreeViewer(tableComposite, SWT.BORDER);
 		treeViewer.addEditors();
 		
 		GridData tableLayoutData = new GridData(SWT.FILL, SWT.FILL, true, true);
 		tableLayoutData.heightHint = 64;
 		tree = treeViewer.getTree();
 		tree.setLayoutData(tableLayoutData);
+
+		// option to scan folders
+		boolean scanFolders = MaemoPreferenceConstants.getPreferenceStore().getBoolean(
+				MaemoPreferenceConstants.VALIDATE_SHARED_FOLDERS);
+		treeViewer.setScanFolders(scanFolders);
+
+		final Button scanFoldersButton = new Button(tableComposite, SWT.CHECK);
+		scanFoldersButton.setSelection(scanFolders);
+		scanFoldersButton.setText("Dynamically update shared folder status");
+		scanFoldersButton.addSelectionListener(new SelectionAdapter() {
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				treeViewer.setScanFolders(scanFoldersButton.getSelection());
+				
+				MaemoPreferenceConstants.getPreferenceStore().setValue(
+						MaemoPreferenceConstants.VALIDATE_SHARED_FOLDERS,
+						scanFoldersButton.getSelection());
+			}
+		});
 		
 		// right side is buttons
 		Composite buttonBox = new Composite(composite, SWT.NONE);
@@ -271,6 +301,15 @@
 		treeViewer.expandAll();
 	}
 
+	/**
+	 * 
+	 */
+	protected void updateScanFoldersValue() {
+		boolean scan = MaemoPreferenceConstants.getPreferenceStore().getBoolean(
+				MaemoPreferenceConstants.VALIDATE_SHARED_FOLDERS);
+		treeViewer.setScanFolders(scan);
+	}
+
 	/* (non-Javadoc)
 	 * @see org.maemo.mica.common.core.machine.IComposablePreferencePage#revalidate()
 	 */



More information about the Esbox-commits mailing list