[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