]>
git.argeo.org Git - lgpl/argeo-commons.git/blob - org.argeo.eclipse.ui/src/org/argeo/eclipse/ui/fs/NioFileLabelProvider.java
1 package org
.argeo
.eclipse
.ui
.fs
;
3 import java
.io
.IOException
;
4 import java
.nio
.file
.Files
;
5 import java
.nio
.file
.Path
;
7 import org
.argeo
.eclipse
.ui
.EclipseUiUtils
;
8 import org
.eclipse
.jface
.viewers
.ColumnLabelProvider
;
10 /** Expect a {@link Path} as input element */
11 public class NioFileLabelProvider
extends ColumnLabelProvider
{
12 private static final long serialVersionUID
= 2160026425187796930L;
13 private final String propName
;
15 public NioFileLabelProvider(String propName
) {
16 this.propName
= propName
;
20 public String
getText(Object element
) {
22 if (element
instanceof ParentDir
) {
24 case FsUiConstants
.PROPERTY_SIZE
:
26 case FsUiConstants
.PROPERTY_LAST_MODIFIED
:
28 // return Files.getLastModifiedTime(((ParentDir) element).getPath()).toString();
29 case FsUiConstants
.PROPERTY_TYPE
:
34 Path path
= (Path
) element
;
36 case FsUiConstants
.PROPERTY_SIZE
:
37 if (Files
.isDirectory(path
))
40 return FsUiUtils
.humanReadableByteCount(Files
.size(path
), false);
41 case FsUiConstants
.PROPERTY_LAST_MODIFIED
:
42 return Files
.getLastModifiedTime(path
).toString();
43 case FsUiConstants
.PROPERTY_TYPE
:
44 if (Files
.isDirectory(path
))
47 String mimeType
= Files
.probeContentType(path
);
48 if (EclipseUiUtils
.isEmpty(mimeType
))
54 throw new IllegalArgumentException("Unsupported property " + propName
);
56 } catch (IOException ioe
) {
57 throw new FsUiException("Cannot get property " + propName
+ " on " + element
);