annotate dbus-d-javatests/jsrc/filetree/FileTreeLabelProvider.java @ 12:198c379caaa7 default tip

remove explicit tango import path
author Frank Benoit <benoit@tionex.de>
date Sun, 18 Nov 2007 18:16:28 +0100
parents 65fb7ef02c50
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
a5576806d36d recreate repository without any libs for lightweight repository
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1 package filetree;
a5576806d36d recreate repository without any libs for lightweight repository
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
2
a5576806d36d recreate repository without any libs for lightweight repository
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
3 import java.io.FileInputStream;
a5576806d36d recreate repository without any libs for lightweight repository
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
4 import java.io.FileNotFoundException;
a5576806d36d recreate repository without any libs for lightweight repository
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
5 import java.util.ArrayList;
a5576806d36d recreate repository without any libs for lightweight repository
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
6 import java.util.List;
a5576806d36d recreate repository without any libs for lightweight repository
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
7
a5576806d36d recreate repository without any libs for lightweight repository
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
8 import org.eclipse.jface.viewers.ILabelProvider;
a5576806d36d recreate repository without any libs for lightweight repository
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
9 import org.eclipse.jface.viewers.ILabelProviderListener;
a5576806d36d recreate repository without any libs for lightweight repository
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
10 import org.eclipse.jface.viewers.LabelProviderChangedEvent;
a5576806d36d recreate repository without any libs for lightweight repository
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
11 import org.eclipse.swt.graphics.Image;
a5576806d36d recreate repository without any libs for lightweight repository
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
12
a5576806d36d recreate repository without any libs for lightweight repository
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
13 /**
a5576806d36d recreate repository without any libs for lightweight repository
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
14 * This class provides the labels for the file tree
a5576806d36d recreate repository without any libs for lightweight repository
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
15 */
a5576806d36d recreate repository without any libs for lightweight repository
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
16
a5576806d36d recreate repository without any libs for lightweight repository
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
17 class FileTreeLabelProvider implements ILabelProvider {
a5576806d36d recreate repository without any libs for lightweight repository
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
18 // The listeners
a5576806d36d recreate repository without any libs for lightweight repository
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
19 private List<ILabelProviderListener> listeners;
a5576806d36d recreate repository without any libs for lightweight repository
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
20
a5576806d36d recreate repository without any libs for lightweight repository
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
21 // Images for tree nodes
a5576806d36d recreate repository without any libs for lightweight repository
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
22 private Image file;
a5576806d36d recreate repository without any libs for lightweight repository
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
23
a5576806d36d recreate repository without any libs for lightweight repository
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
24 private Image dir;
a5576806d36d recreate repository without any libs for lightweight repository
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
25
a5576806d36d recreate repository without any libs for lightweight repository
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
26 // Label provider state: preserve case of file names/directories
a5576806d36d recreate repository without any libs for lightweight repository
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
27 boolean preserveCase;
a5576806d36d recreate repository without any libs for lightweight repository
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
28
a5576806d36d recreate repository without any libs for lightweight repository
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
29 /**
a5576806d36d recreate repository without any libs for lightweight repository
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
30 * Constructs a FileTreeLabelProvider
a5576806d36d recreate repository without any libs for lightweight repository
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
31 */
a5576806d36d recreate repository without any libs for lightweight repository
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
32 public FileTreeLabelProvider() {
a5576806d36d recreate repository without any libs for lightweight repository
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
33 // Create the list to hold the listeners
a5576806d36d recreate repository without any libs for lightweight repository
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
34 listeners = new ArrayList<ILabelProviderListener>();
a5576806d36d recreate repository without any libs for lightweight repository
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
35
a5576806d36d recreate repository without any libs for lightweight repository
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
36 // Create the images
a5576806d36d recreate repository without any libs for lightweight repository
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
37 try {
a5576806d36d recreate repository without any libs for lightweight repository
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
38 file = new Image(null, new FileInputStream("icons/file_obj.gif"));
a5576806d36d recreate repository without any libs for lightweight repository
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
39 dir = new Image(null, new FileInputStream("icons/fldr_obj.gif"));
a5576806d36d recreate repository without any libs for lightweight repository
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
40 } catch (FileNotFoundException e) {
a5576806d36d recreate repository without any libs for lightweight repository
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
41 // Swallow it; we'll do without images
a5576806d36d recreate repository without any libs for lightweight repository
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
42 }
a5576806d36d recreate repository without any libs for lightweight repository
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
43 }
a5576806d36d recreate repository without any libs for lightweight repository
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
44
a5576806d36d recreate repository without any libs for lightweight repository
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
45 /**
a5576806d36d recreate repository without any libs for lightweight repository
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
46 * Sets the preserve case attribute
a5576806d36d recreate repository without any libs for lightweight repository
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
47 *
a5576806d36d recreate repository without any libs for lightweight repository
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
48 * @param preserveCase
a5576806d36d recreate repository without any libs for lightweight repository
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
49 * the preserve case attribute
a5576806d36d recreate repository without any libs for lightweight repository
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
50 */
a5576806d36d recreate repository without any libs for lightweight repository
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
51 public void setPreserveCase(boolean preserveCase) {
a5576806d36d recreate repository without any libs for lightweight repository
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
52 this.preserveCase = preserveCase;
a5576806d36d recreate repository without any libs for lightweight repository
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
53
a5576806d36d recreate repository without any libs for lightweight repository
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
54 // Since this attribute affects how the labels are computed,
a5576806d36d recreate repository without any libs for lightweight repository
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
55 // notify all the listeners of the change.
a5576806d36d recreate repository without any libs for lightweight repository
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
56 LabelProviderChangedEvent event = new LabelProviderChangedEvent(this);
a5576806d36d recreate repository without any libs for lightweight repository
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
57 for (int i = 0, n = listeners.size(); i < n; i++) {
a5576806d36d recreate repository without any libs for lightweight repository
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
58 ILabelProviderListener ilpl = (ILabelProviderListener) listeners
a5576806d36d recreate repository without any libs for lightweight repository
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
59 .get(i);
a5576806d36d recreate repository without any libs for lightweight repository
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
60 ilpl.labelProviderChanged(event);
a5576806d36d recreate repository without any libs for lightweight repository
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
61 }
a5576806d36d recreate repository without any libs for lightweight repository
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
62 }
a5576806d36d recreate repository without any libs for lightweight repository
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
63
a5576806d36d recreate repository without any libs for lightweight repository
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
64 /**
a5576806d36d recreate repository without any libs for lightweight repository
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
65 * Gets the image to display for a node in the tree
a5576806d36d recreate repository without any libs for lightweight repository
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
66 *
a5576806d36d recreate repository without any libs for lightweight repository
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
67 * @param arg0
a5576806d36d recreate repository without any libs for lightweight repository
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
68 * the node
a5576806d36d recreate repository without any libs for lightweight repository
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
69 * @return Image
a5576806d36d recreate repository without any libs for lightweight repository
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
70 */
a5576806d36d recreate repository without any libs for lightweight repository
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
71 public Image getImage(Object arg0) {
a5576806d36d recreate repository without any libs for lightweight repository
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
72 // If the node represents a directory, return the directory image.
a5576806d36d recreate repository without any libs for lightweight repository
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
73 // Otherwise, return the file image.
a5576806d36d recreate repository without any libs for lightweight repository
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
74 // Program.findProgram(".txt" ).getImageData();
a5576806d36d recreate repository without any libs for lightweight repository
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
75 return ((DataItem) arg0).isFolder() ? dir : file;
a5576806d36d recreate repository without any libs for lightweight repository
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
76 }
a5576806d36d recreate repository without any libs for lightweight repository
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
77
a5576806d36d recreate repository without any libs for lightweight repository
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
78 /**
a5576806d36d recreate repository without any libs for lightweight repository
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
79 * Gets the text to display for a node in the tree
a5576806d36d recreate repository without any libs for lightweight repository
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
80 *
a5576806d36d recreate repository without any libs for lightweight repository
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
81 * @param arg0
a5576806d36d recreate repository without any libs for lightweight repository
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
82 * the node
a5576806d36d recreate repository without any libs for lightweight repository
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
83 * @return String
a5576806d36d recreate repository without any libs for lightweight repository
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
84 */
a5576806d36d recreate repository without any libs for lightweight repository
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
85 public String getText(Object arg0) {
a5576806d36d recreate repository without any libs for lightweight repository
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
86 // Get the name of the file
a5576806d36d recreate repository without any libs for lightweight repository
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
87 String text = ((DataItem) arg0).getName();
a5576806d36d recreate repository without any libs for lightweight repository
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
88
a5576806d36d recreate repository without any libs for lightweight repository
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
89 // If name is blank, get the path
a5576806d36d recreate repository without any libs for lightweight repository
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
90 if (text.length() == 0) {
a5576806d36d recreate repository without any libs for lightweight repository
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
91 //text = ((DataItem) arg0).getPath();
a5576806d36d recreate repository without any libs for lightweight repository
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
92 }
a5576806d36d recreate repository without any libs for lightweight repository
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
93 System.out.println( "Text: "+text );
a5576806d36d recreate repository without any libs for lightweight repository
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
94 // Check the case settings before returning the text
a5576806d36d recreate repository without any libs for lightweight repository
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
95 return preserveCase ? text : text.toUpperCase();
a5576806d36d recreate repository without any libs for lightweight repository
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
96 }
a5576806d36d recreate repository without any libs for lightweight repository
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
97
a5576806d36d recreate repository without any libs for lightweight repository
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
98 /**
a5576806d36d recreate repository without any libs for lightweight repository
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
99 * Adds a listener to this label provider
a5576806d36d recreate repository without any libs for lightweight repository
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
100 *
a5576806d36d recreate repository without any libs for lightweight repository
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
101 * @param arg0
a5576806d36d recreate repository without any libs for lightweight repository
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
102 * the listener
a5576806d36d recreate repository without any libs for lightweight repository
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
103 */
a5576806d36d recreate repository without any libs for lightweight repository
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
104 public void addListener(ILabelProviderListener arg0) {
a5576806d36d recreate repository without any libs for lightweight repository
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
105 listeners.add(arg0);
a5576806d36d recreate repository without any libs for lightweight repository
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
106 }
a5576806d36d recreate repository without any libs for lightweight repository
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
107
a5576806d36d recreate repository without any libs for lightweight repository
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
108 /**
a5576806d36d recreate repository without any libs for lightweight repository
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
109 * Called when this LabelProvider is being disposed
a5576806d36d recreate repository without any libs for lightweight repository
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
110 */
a5576806d36d recreate repository without any libs for lightweight repository
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
111 public void dispose() {
a5576806d36d recreate repository without any libs for lightweight repository
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
112 // Dispose the images
a5576806d36d recreate repository without any libs for lightweight repository
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
113 if (dir != null)
a5576806d36d recreate repository without any libs for lightweight repository
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
114 dir.dispose();
a5576806d36d recreate repository without any libs for lightweight repository
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
115 if (file != null)
a5576806d36d recreate repository without any libs for lightweight repository
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
116 file.dispose();
a5576806d36d recreate repository without any libs for lightweight repository
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
117 }
a5576806d36d recreate repository without any libs for lightweight repository
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
118
a5576806d36d recreate repository without any libs for lightweight repository
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
119 /**
a5576806d36d recreate repository without any libs for lightweight repository
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
120 * Returns whether changes to the specified property on the specified
a5576806d36d recreate repository without any libs for lightweight repository
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
121 * element would affect the label for the element
a5576806d36d recreate repository without any libs for lightweight repository
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
122 *
a5576806d36d recreate repository without any libs for lightweight repository
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
123 * @param arg0
a5576806d36d recreate repository without any libs for lightweight repository
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
124 * the element
a5576806d36d recreate repository without any libs for lightweight repository
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
125 * @param arg1
a5576806d36d recreate repository without any libs for lightweight repository
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
126 * the property
a5576806d36d recreate repository without any libs for lightweight repository
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
127 * @return boolean
a5576806d36d recreate repository without any libs for lightweight repository
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
128 */
a5576806d36d recreate repository without any libs for lightweight repository
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
129 public boolean isLabelProperty(Object arg0, String arg1) {
a5576806d36d recreate repository without any libs for lightweight repository
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
130 return false;
a5576806d36d recreate repository without any libs for lightweight repository
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
131 }
a5576806d36d recreate repository without any libs for lightweight repository
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
132
a5576806d36d recreate repository without any libs for lightweight repository
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
133 /**
a5576806d36d recreate repository without any libs for lightweight repository
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
134 * Removes the listener
a5576806d36d recreate repository without any libs for lightweight repository
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
135 *
a5576806d36d recreate repository without any libs for lightweight repository
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
136 * @param arg0
a5576806d36d recreate repository without any libs for lightweight repository
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
137 * the listener to remove
a5576806d36d recreate repository without any libs for lightweight repository
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
138 */
a5576806d36d recreate repository without any libs for lightweight repository
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
139 public void removeListener(ILabelProviderListener arg0) {
a5576806d36d recreate repository without any libs for lightweight repository
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
140 listeners.remove(arg0);
a5576806d36d recreate repository without any libs for lightweight repository
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
141 }
a5576806d36d recreate repository without any libs for lightweight repository
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
142 }
a5576806d36d recreate repository without any libs for lightweight repository
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
143