X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=org.argeo.eclipse.ui%2Fsrc%2Forg%2Fargeo%2Feclipse%2Fui%2Ffs%2FNioFileLabelProvider.java;h=6b2c06d50ae89b8044889bf0223f54c1d05f2d52;hb=b01dfb98caa1b8b8ab8da15226bc023714b6048f;hp=e2ea90596a33b0ade3abfcd0aa8acf2a449eab71;hpb=632174498f35334b13820d14ed43c436f25c2d0c;p=lgpl%2Fargeo-commons.git 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 e2ea90596..6b2c06d50 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 @@ -3,15 +3,26 @@ package org.argeo.eclipse.ui.fs; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; +import java.nio.file.attribute.FileTime; +import java.text.DateFormat; +import java.text.SimpleDateFormat; +import java.util.Date; import org.argeo.eclipse.ui.EclipseUiUtils; import org.eclipse.jface.viewers.ColumnLabelProvider; /** Expect a {@link Path} as input element */ public class NioFileLabelProvider extends ColumnLabelProvider { + private final static FileTime EPOCH = FileTime.fromMillis(0); private static final long serialVersionUID = 2160026425187796930L; private final String propName; + private DateFormat dateFormat = new SimpleDateFormat("YYYY-MM-dd hh:mm"); + // TODO use new formatting + // DateTimeFormatter formatter = + // DateTimeFormatter.ofLocalizedDateTime( FormatStyle.SHORT ) + // .withLocale( Locale.UK ) + // .withZone( ZoneId.systemDefault() ); public NioFileLabelProvider(String propName) { this.propName = propName; } @@ -19,18 +30,20 @@ public class NioFileLabelProvider extends ColumnLabelProvider { @Override public String getText(Object element) { try { + Path path; 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: +// return "-"; +// case FsUiConstants.PROPERTY_LAST_MODIFIED: +// return "-"; +// // return Files.getLastModifiedTime(((ParentDir) element).getPath()).toString(); +// case FsUiConstants.PROPERTY_TYPE: +// return "Folder"; +// } + path = ((ParentDir) element).getPath(); + } else + path = (Path) element; switch (propName) { case FsUiConstants.PROPERTY_SIZE: if (Files.isDirectory(path)) @@ -38,7 +51,13 @@ public class NioFileLabelProvider extends ColumnLabelProvider { else return FsUiUtils.humanReadableByteCount(Files.size(path), false); case FsUiConstants.PROPERTY_LAST_MODIFIED: - return Files.getLastModifiedTime(path).toString(); + if (Files.isDirectory(path)) + return "-"; + FileTime time = Files.getLastModifiedTime(path); + if (time.equals(EPOCH)) + return "-"; + else + return dateFormat.format(new Date(time.toMillis())); case FsUiConstants.PROPERTY_TYPE: if (Files.isDirectory(path)) return "Folder";