Revision 38565

View differences:

branches/v2_0_0_prep/frameworks/_fwAndami/src/org/gvsig/tools/swing/icontheme/IconThemeManager.java
1
package org.gvsig.tools.swing.icontheme;
2

  
3
import java.util.Iterator;
4

  
5
import org.gvsig.tools.util.FolderSet;
6

  
7
public interface IconThemeManager {
8

  
9
	/**
10
	 * Gets the default theme
11
	 * @return the default theme.
12
	 */
13
	public IconTheme getDefault();
14

  
15
	/**
16
	 * Sets the iconTheme like current theme
17
	 * @param iconTheme
18
	 */
19
	public void setCurrent(IconTheme iconTheme);
20

  
21
	/**
22
	 * Gets the current theme
23
	 * @return current the current theme
24
	 */
25
	public IconTheme getCurrent();
26

  
27
	/**
28
	 * Returns the theme that has been registered with the name that receives like
29
	 * parameter
30
	 * @param themeName
31
	 * @return the theme that contains like name in its properties the parameter
32
	 */
33
	public IconTheme get(String themeID);
34

  
35
	public boolean contains(IconTheme theme);
36

  
37
	public Iterator<IconTheme> iterator();
38

  
39
	public boolean add(IconTheme theme);
40

  
41
	public boolean remove(IconTheme theme);
42

  
43
	public void clear();
44

  
45
	public FolderSet getRepository();
46
}
branches/v2_0_0_prep/frameworks/_fwAndami/src/org/gvsig/tools/swing/icontheme/IconTheme.java
1
package org.gvsig.tools.swing.icontheme;
2

  
3
import java.awt.Image;
4
import java.io.File;
5
import java.net.URL;
6
import java.util.Iterator;
7

  
8
import javax.swing.ImageIcon;
9

  
10
import org.gvsig.andami.PluginServices;
11

  
12
public interface IconTheme {
13
	
14
	public static final String NO_ICON_NAME = "-no-icon-";
15

  
16
	interface Icon extends Comparable<Icon> {
17
		public String getName();
18
		public String getGroup() ;
19
		public ImageIcon getImageIcon();
20
		public Image getImage();
21
		public Object getResource() ;
22
		public URL getURL() ;
23
		public String getLabel();
24
		public String getProviderName();
25
	}
26

  
27
	/**
28
	 * Load all icons from the IconTheme
29
	 */
30
	public void load(Object resource) throws IllegalArgumentException;
31
	
32

  
33
	public void setDefault(IconTheme def);
34

  
35
	public IconTheme getDefault();
36

  
37
	/**
38
	 * Returns <code>true</code> if the icon theme contains a mapping for the
39
	 * specified iconName.
40
	 *
41
	 * @param iconName The key to check if it has been registered in this
42
	 * IconTheme
43
	 *
44
	 * @return <code>true</code> if this IconTheme contains
45
	 * <code>iconName</code>, <code>false</code> otherwise.
46
	 */
47
	public boolean exists(String name);
48

  
49
	/**
50
	 * Gets the ImageIcon associated with the provided name, if the name
51
	 * is present in the theme. If the icon not exists try to return
52
	 * a icon with name "no-icon" or returns <code>null</code> if 
53
	 * this not exists.
54
	 *
55
	 * @param name
56
	 * 			The name whose associated icon is to be retrieved
57
	 *
58
	 * @return
59
	 * 			The icon associated with the provided name
60
	 */
61
	public ImageIcon get(String iconName);
62
	
63
	/**
64
	 * Return the ThemeIcon associated with the name.
65
	 *  
66
	 * @param name of the icon
67
	 * @return the IconTheme requiered
68
	 */
69
	public Icon getThemeIcon(String name);
70

  
71
	/**
72
	 * Gets the theme name of the theme
73
	 * @return theme name
74
	 */
75
	public String getName();
76

  
77
	/**
78
	 * Sets the theme name of the theme
79
	 *
80
	 * @param themeName
81
	 */
82
	public void setName(String themeName);
83

  
84
	public String getID();
85

  
86
	public void setID(String id);
87

  
88
	/**
89
	 * Gets the theme description.
90
	 *
91
	 * @return The description of this theme.
92
	 */
93
	public String getDescription();
94

  
95
	/**
96
	 * Sets the theme description. It should be a short description
97
	 * (around 20-30 words), including the highlights of the theme,
98
	 * the author and maybe its email address or a link the the theme's
99
	 * homepage.
100
	 *
101
	 * @param description
102
	 */
103
	public void setDescription(String description);
104

  
105
	/**
106
	 * Return an iterator over the names of the icons in the theme.
107
	 * 
108
	 * @return iterator of names of icons
109
	 */
110
	public Iterator<String> iterator();
111

  
112
	/**
113
	 * Return an iterator over the ThemIcon in the theme.
114
	 *  
115
	 * @return iterator of ThemeIcon
116
	 */
117
	public Iterator<Icon> getThemeIcons();
118

  
119
	
120
	/**
121
	 * Return the icon used as icon by default when the requested icon 
122
	 * not exists.
123
	 * 
124
	 * @return the default icon to use.
125
	 */
126
	public ImageIcon getDefaultIcon();
127
	
128
	/**
129
	 * Set the default icon to use when the requestd icon not exists.
130
	 * 
131
	 * @param icon
132
	 */
133
	public void setDefaultIcon(ImageIcon icon);
134

  
135
	public void setDefaultIcon(URL resource);
136

  
137
	public void setDefaultIcon(String name);
138

  
139
	/**
140
	 * Register a icon in the theme.
141
	 * The parameter icon can be null if the resource is specified.
142
	 * The parameter resource can be null if the icon is specified. 
143
	 * 
144
	 * Plugin and group can be null.
145
	 *  
146
	 * @param provider name of the icon
147
	 * @param group name for the icon.
148
	 * @param name of icon
149
	 * @param icon, can be nulll if the resource is specified. 
150
	 * @param resource, resource of the icon, usualy and url to the icon.
151
	 * 
152
	 * @throws IllegalArgumentException if name is null/empty or icon/resource are null
153
	 */
154
	public void registerDefault(String provider, String group, String name, ImageIcon icon, URL resource) throws IllegalArgumentException;
155

  
156
	/**
157
	 * Register a icon in the theme.
158
	 * The parameter icon can be null if the resource is specified.
159
	 * The parameter resource can be null if the icon is specified. 
160
	 * 
161
	 * Plugin and group can be null.
162
	 * 
163
	 * @param provider name of the icon
164
	 * @param group name for the icon.
165
	 * @param name of icon
166
	 * @param icon, can be nulll if the resource is specified. 
167
	 * @param resource, resource of the icon, usualy and url to the icon.
168
	 * 
169
	 * @throws IllegalArgumentException if name is null/empty or icon/resource are null
170
	 */
171
	public void register(String provider, String group, String name, ImageIcon icon, URL resource) throws IllegalArgumentException;
172

  
173
	public void export(File folder);
174
	
175
	/**
176
	 * @deprecated use {@link #getDefaultIcon()} 
177
	 * @return
178
	 */
179
	public ImageIcon getNoIcon();
180
	
181
	/**
182
	 * @deprecated use {@link #get(String)} instead
183
	 */
184
	public ImageIcon get(String iconName, ClassLoader loader);
185

  
186
	/**
187
	 * @deprecated use {@link #registerDefault(PluginServices, String, String, ImageIcon, Object)}
188
	 */
189
	public void registerDefault(String iconName, ImageIcon image);
190

  
191
	/**
192
	 * @deprecated use {@link #registerDefault(PluginServices, String, String, ImageIcon, Object)}
193
	 */
194
	public void registerDefault(String iconName, Object resource);
195

  
196
	/**
197
	 * @deprecated use {@link #register(PluginServices, String, String, ImageIcon, Object)}
198
	 */
199
	public void register(String iconName, ImageIcon image);
200

  
201
	/**
202
	 * @deprecated use {@link #register(PluginServices, String, String, ImageIcon, Object)}
203
	 */
204
	public void register(String iconName, Object resource);
205
}

Also available in: Unified diff