Mercurial > projects > dbus-d
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 |
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 |