From: Mathieu Baudier Date: Mon, 9 Apr 2018 07:06:52 +0000 (+0200) Subject: Improve FS UI X-Git-Tag: argeo-commons-2.1.73~17 X-Git-Url: https://git.argeo.org/?p=lgpl%2Fargeo-commons.git;a=commitdiff_plain;h=632174498f35334b13820d14ed43c436f25c2d0c Improve FS UI --- diff --git a/org.argeo.eclipse.ui/src/org/argeo/eclipse/ui/fs/AdvancedFsBrowser.java b/org.argeo.eclipse.ui/src/org/argeo/eclipse/ui/fs/AdvancedFsBrowser.java index 40d42e396..136eb5055 100644 --- a/org.argeo.eclipse.ui/src/org/argeo/eclipse/ui/fs/AdvancedFsBrowser.java +++ b/org.argeo.eclipse.ui/src/org/argeo/eclipse/ui/fs/AdvancedFsBrowser.java @@ -31,7 +31,6 @@ import org.eclipse.swt.widgets.Label; import org.eclipse.swt.widgets.Table; import org.eclipse.swt.widgets.Text; - /** Simple UI provider that populates a composite parent given a NIO path */ public class AdvancedFsBrowser { private final static Log log = LogFactory.getLog(AdvancedFsBrowser.class); @@ -288,8 +287,8 @@ public class AdvancedFsBrowser { } /** - * Recreates the content of the box that displays information about the - * current selected node. + * Recreates the content of the box that displays information about the current + * selected node. */ private void populateCurrEditedDisplay(Composite parent, Path context) { parent.setLayout(new GridLayout()); @@ -355,8 +354,8 @@ public class AdvancedFsBrowser { } /** - * Enable highlighting the correct element in the table when externally - * browsing (typically via the command-line-like Text field) + * Enable highlighting the correct element in the table when externally browsing + * (typically via the command-line-like Text field) */ void setSelected(Path selected) { // to prevent change selection event to be thrown @@ -399,13 +398,19 @@ public class AdvancedFsBrowser { IStructuredSelection selection = (IStructuredSelection) viewer.getSelection(); if (selection.isEmpty()) return; - else { - Path newSelected = (Path) selection.getFirstElement(); - if (newSelected.equals(currSelected)) - return; - currSelected = newSelected; - setEdited(newSelected); - } + Object obj = selection.getFirstElement(); + Path newSelected; + if (obj instanceof Path) + newSelected = (Path) obj; + else if (obj instanceof ParentDir) + newSelected = ((ParentDir) obj).getPath(); + else + return; + if (newSelected.equals(currSelected)) + return; + currSelected = newSelected; + setEdited(newSelected); + } }); diff --git a/org.argeo.eclipse.ui/src/org/argeo/eclipse/ui/fs/NioFileLabelProvider.java b/org.argeo.eclipse.ui/src/org/argeo/eclipse/ui/fs/NioFileLabelProvider.java index 68fc70b77..e2ea90596 100644 --- a/org.argeo.eclipse.ui/src/org/argeo/eclipse/ui/fs/NioFileLabelProvider.java +++ b/org.argeo.eclipse.ui/src/org/argeo/eclipse/ui/fs/NioFileLabelProvider.java @@ -18,8 +18,19 @@ public class NioFileLabelProvider extends ColumnLabelProvider { @Override public String getText(Object element) { - Path path = (Path) element; try { + if (element instanceof ParentDir) { + switch (propName) { + case FsUiConstants.PROPERTY_SIZE: + return "-"; + case FsUiConstants.PROPERTY_LAST_MODIFIED: + return Files.getLastModifiedTime(((ParentDir) element).getPath()).toString(); + case FsUiConstants.PROPERTY_TYPE: + return "Folder"; + } + } + + Path path = (Path) element; switch (propName) { case FsUiConstants.PROPERTY_SIZE: if (Files.isDirectory(path)) @@ -42,7 +53,7 @@ public class NioFileLabelProvider extends ColumnLabelProvider { throw new IllegalArgumentException("Unsupported property " + propName); } } catch (IOException ioe) { - throw new FsUiException("Cannot get property " + propName + " on " + path.toString()); + throw new FsUiException("Cannot get property " + propName + " on " + element); } } } diff --git a/org.argeo.eclipse.ui/src/org/argeo/eclipse/ui/fs/SimpleFsBrowser.java b/org.argeo.eclipse.ui/src/org/argeo/eclipse/ui/fs/SimpleFsBrowser.java index 7bbcd8525..ff93d8251 100644 --- a/org.argeo.eclipse.ui/src/org/argeo/eclipse/ui/fs/SimpleFsBrowser.java +++ b/org.argeo.eclipse.ui/src/org/argeo/eclipse/ui/fs/SimpleFsBrowser.java @@ -167,29 +167,39 @@ public class SimpleFsBrowser extends Composite { } }); - directoryDisplayViewer.addDoubleClickListener(new IDoubleClickListener() { - @Override - public void doubleClick(DoubleClickEvent event) { - IStructuredSelection selection = (IStructuredSelection) directoryDisplayViewer.getSelection(); - Path selected = null; - if (!selection.isEmpty()) - selected = ((Path) selection.getFirstElement()); - if (selected != null) { - if (!Files.isDirectory(selected)) - return; - currSelected = selected; - directoryDisplayViewer.setInput(currSelected, "*"); - } - } - }); +// directoryDisplayViewer.addDoubleClickListener(new IDoubleClickListener() { +// @Override +// public void doubleClick(DoubleClickEvent event) { +// IStructuredSelection selection = (IStructuredSelection) directoryDisplayViewer.getSelection(); +// Path selected = null; +// if (!selection.isEmpty()) { +// Object obj = selection.getFirstElement(); +// if (obj instanceof Path) +// selected = (Path) obj; +// else if (obj instanceof ParentDir) +// selected = ((ParentDir) obj).getPath(); +// } +// if (selected != null) { +// if (!Files.isDirectory(selected)) +// return; +// currSelected = selected; +// directoryDisplayViewer.setInput(currSelected, "*"); +// } +// } +// }); directoryDisplayViewer.addDoubleClickListener(new IDoubleClickListener() { @Override public void doubleClick(DoubleClickEvent event) { IStructuredSelection selection = (IStructuredSelection) directoryDisplayViewer.getSelection(); Path selected = null; - if (!selection.isEmpty()) - selected = ((Path) selection.getFirstElement()); + if (!selection.isEmpty()) { + Object obj = selection.getFirstElement(); + if (obj instanceof Path) + selected = (Path) obj; + else if (obj instanceof ParentDir) + selected = ((ParentDir) obj).getPath(); + } if (selected != null) { if (!Files.isDirectory(selected)) return;