View Javadoc
1   package org.argeo.eclipse.ui.fs;
2   
3   import java.nio.file.Files;
4   import java.nio.file.Path;
5   
6   import org.eclipse.jface.resource.ImageDescriptor;
7   import org.eclipse.jface.viewers.ColumnLabelProvider;
8   import org.eclipse.swt.graphics.Image;
9   
10  /** Basic label provider with icon for NIO file viewers */
11  public class FileIconNameLabelProvider extends ColumnLabelProvider {
12  	private static final long serialVersionUID = 8187902187946523148L;
13  
14  	private Image folderIcon;
15  	private Image fileIcon;
16  
17  	public FileIconNameLabelProvider() {
18  		// if (!PlatformUI.isWorkbenchRunning()) {
19  		folderIcon = ImageDescriptor.createFromFile(getClass(), "folder.png").createImage();
20  		fileIcon = ImageDescriptor.createFromFile(getClass(), "file.png").createImage();
21  		// }
22  	}
23  
24  	@Override
25  	public void dispose() {
26  		if (folderIcon != null)
27  			folderIcon.dispose();
28  		if (fileIcon != null)
29  			fileIcon.dispose();
30  		super.dispose();
31  	}
32  
33  	@Override
34  	public String getText(Object element) {
35  		if (element instanceof Path) {
36  			Path curr = ((Path) element);
37  			Path name = curr.getFileName();
38  			if (name == null)
39  				return "[No name]";
40  			else
41  				return name.toString();
42  		} else if (element instanceof ParentDir) {
43  			return "..";
44  		}
45  		return null;
46  	}
47  
48  	@Override
49  	public Image getImage(Object element) {
50  		if (element instanceof Path) {
51  			Path curr = ((Path) element);
52  			if (Files.isDirectory(curr))
53  				// if (folderIcon != null)
54  				return folderIcon;
55  			// else
56  			// return
57  			// PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_OBJ_FOLDER);
58  			// else if (fileIcon != null)
59  			return fileIcon;
60  			// else
61  			// return
62  			// PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_OBJ_FILE);
63  		} else if (element instanceof ParentDir) {
64  			return folderIcon;
65  		}
66  		return null;
67  	}
68  
69  	@Override
70  	public String getToolTipText(Object element) {
71  		if (element instanceof Path) {
72  			Path curr = ((Path) element);
73  			Path name = curr.getFileName();
74  			if (name == null)
75  				return "[No name]";
76  			else
77  				return name.toAbsolutePath().toString();
78  		} else if (element instanceof ParentDir) {
79  			return ((ParentDir) element).getPath().toAbsolutePath().toString();
80  		}
81  		return null;
82  	}
83  
84  }