Project

General

Profile

Download (6.75 KB) Statistics
| Branch: | Tag: | Revision:
1
/**
2
* Copyright (C) 2007 EDIT
3
* European Distributed Institute of Taxonomy 
4
* http://www.e-taxonomy.eu
5
* 
6
* The contents of this file are subject to the Mozilla Public License Version 1.1
7
* See LICENSE.TXT at the top of this package for the full license terms.
8
*/
9

    
10
package eu.etaxonomy.taxeditor.store.model;
11

    
12
import java.net.MalformedURLException;
13
import java.net.URI;
14
import java.net.URL;
15

    
16
import org.apache.log4j.Logger;
17
import org.eclipse.core.runtime.FileLocator;
18
import org.eclipse.core.runtime.IPath;
19
import org.eclipse.core.runtime.Path;
20
import org.eclipse.jface.resource.ImageDescriptor;
21
import org.eclipse.jface.resource.ImageRegistry;
22
import org.eclipse.swt.graphics.Image;
23

    
24
import eu.etaxonomy.taxeditor.store.internal.TaxeditorStorePlugin;
25

    
26
/**
27
 * @author n.hoffmann
28
 * @created 24.03.2009
29
 * @version 1.0
30
 */
31
public class ImageResources {
32
	private static final Logger logger = Logger.getLogger(ImageResources.class);
33
	
34
	private static ImageResources instance;
35
	
36
	public static ImageResources getInstance(){
37
		if(instance == null){
38
			instance = new ImageResources();
39
		}
40
		return instance;
41
	}
42
	
43
	
44
	/* ***************************************************************************************
45
	ICONS
46
	************************************************************************************** */
47
	public static final String EDIT_ICON = "edit_icon";
48
	public static final String WARNING_ICON = "warning_icon";
49
	public static final String BLACK_SQUARE_ICON = "black_square_icon";
50
	public static final String HOMOTYPIC_SYN_ICON = "homotypic_syn_icon";
51
	public static final String HOMOTYPIC_SYN_ORIGINAL_ICON = "homotypic_syn_original_icon";
52
	public static final String HETEROTYPIC_SYN_ICON = "heterotypic_syn_icon";
53
	public static final String HETEROTYPIC_SYN_ORIGINAL_ICON = "heterotypic_syn_original_icon";
54
	public static final String MISAPPLIED_NAME_ICON = "misapplied_icon";
55
	public static final String CONCEPT_ICON = "concept_icon";
56
	public static final String AUTONYM_ICON = "autonym_icon";
57
	public static final String BASIONYM_ICON = "basionym_icon";
58
	public static final String ORTHOGRAPHIC_VARIANT_ICON = "orthographic_variants_icon";
59
	public static final String DB_ICON = "db_icon";
60
	public static final String MOVE_ICON = "move_icon";
61
	public static final String ACTIVE_DELETE_ICON = "active_delete_icon";
62
	public static final String SYNONYM_TO_TAXON_ICON = "synoynm_to_taxon_icon";
63
	public static final String OPEN_TAXON_ICON = "open_taxon_icon";
64
	public static final String ADD_CHILD_TAXON_ICON = "add_taxon_icon";
65
	public static final String SWAP_SYNONYM_AND_TAXON_ICON = "swap_syn_and_tax_icon";
66
	public static final String QUICK_ADD_ICON = "quick_add_icon";
67
	public static final String TAXON_TO_SYNONYM_ICON = "tax_to_syn_icon";
68
	public static final String ERROR_ANNOTATION_ICON = "error_annotation_icon";
69
	public static final String EDIT_BITMAP_ICON = "edit_bitmap_icon";
70
	public static final String IMG_DATASOURCE_CONNECTED = "IMG_DATASOURCE_CONNECTED";
71
	public static final String IMG_DATASOURCE_DISCONNECTED = "IMG_DATASOURCE_DISCONNECTED";
72

    
73
	
74
	/***************************************************************************
75
	 * IMAGE REGISTRY
76
	 **************************************************************************/
77
	private ImageRegistry imageRegistry;
78
	
79
	public static ImageDescriptor getImageDescriptor(String key) {
80
		return getInstance().getImageRegistry().getDescriptor(key);
81
	}
82

    
83
	public static Image getImage(String key) {
84
		return getInstance().getImageRegistry().get(key);
85
	}
86
	
87
	/**
88
	 * Gets an image for the given URL. Adds the image to the registry as needed.
89
	 * 
90
	 * @param url
91
	 * @return
92
	 */
93
	public static Image getImage(URI uri) {		
94
		
95
		String key = uri.toString();
96
		ImageRegistry registry = getInstance().getImageRegistry();
97

    
98
		Image image = registry.get(key);
99
		
100
		if (image == null) {
101
			ImageDescriptor desc;
102
			try {
103
				desc = ImageDescriptor.createFromURL(new URL(key));
104
				registry.put(key, desc);
105
				image = registry.get(key);
106
			} catch (MalformedURLException e) {
107
				// should never happen
108
			}catch (Exception e) {
109
				// TODO Auto-generated catch block
110
				e.printStackTrace();
111
			}
112
			
113
//			logger.warn(ImageDescriptor.getMissingImageDescriptor().getClass());
114
//			logger.warn(desc.getClass());
115
//			
116
//			if (ImageDescriptor.getMissingImageDescriptor().equals(desc)) {
117
//				logger.warn("img not found");
118
//			}
119
			
120
		}
121
		
122
		return image;
123
	}
124
	
125
    public ImageRegistry getImageRegistry() {
126
        if (imageRegistry == null) {
127
            imageRegistry = TaxeditorStorePlugin.getDefault().createImageRegistry();
128
            initializeImageRegistry(imageRegistry);
129
        }
130
        return imageRegistry;
131
    }
132

    
133
	protected void initializeImageRegistry(ImageRegistry registry) {
134
		registerImage(registry, EDIT_ICON, "edit_16x16.ico");
135
		registerImage(registry, WARNING_ICON,
136
				"warn_tsk.gif");
137
		registerImage(registry, BLACK_SQUARE_ICON,
138
				"accepted_small.gif");
139
		registerImage(registry, HOMOTYPIC_SYN_ICON,
140
				"homosyn_no_bg.gif");
141
		registerImage(registry,
142
				HOMOTYPIC_SYN_ORIGINAL_ICON,
143
				"homosyn_original_no_bg.gif");
144
		registerImage(registry, HETEROTYPIC_SYN_ICON,
145
				"heterosyn_no_bg.gif");
146
		registerImage(registry,
147
				HETEROTYPIC_SYN_ORIGINAL_ICON,
148
				"heterosyn_original_no_bg.gif");
149
		registerImage(registry, MISAPPLIED_NAME_ICON,
150
				"misapplied_no_bg.gif");
151
		registerImage(registry, CONCEPT_ICON,
152
				"concept_no_bg.gif");
153
		registerImage(registry, AUTONYM_ICON,
154
				"autonym_no_bg.gif");
155
		registerImage(registry, BASIONYM_ICON,
156
				"basionym_no_bg.gif");
157
		registerImage(registry, ORTHOGRAPHIC_VARIANT_ICON,
158
				"orthovariant_no_bg.gif");
159
		registerImage(registry, DB_ICON, "db.gif");
160
		registerImage(registry, MOVE_ICON,
161
				"correction_change.gif");
162
		registerImage(registry, ACTIVE_DELETE_ICON,
163
				"delete_edit.gif");
164
		registerImage(registry, SYNONYM_TO_TAXON_ICON,
165
				"change.gif");
166
		registerImage(registry, OPEN_TAXON_ICON, "open.gif");
167
		registerImage(registry, ADD_CHILD_TAXON_ICON,
168
				"new_child.gif");
169
		registerImage(registry,
170
				SWAP_SYNONYM_AND_TAXON_ICON, "swap2.gif");
171
		registerImage(registry, QUICK_ADD_ICON,
172
				"quick_add.gif");
173
		registerImage(registry, TAXON_TO_SYNONYM_ICON,
174
				"tax_to_syn.gif");
175
		registerImage(registry, ERROR_ANNOTATION_ICON,
176
				"error_co.gif");
177
		registerImage(registry, EDIT_BITMAP_ICON,
178
				"256color_16x16.bmp");
179
		registerImage(registry, IMG_DATASOURCE_CONNECTED, 
180
				"prj_obj.gif");
181
		registerImage(registry, IMG_DATASOURCE_DISCONNECTED, 
182
		"cprj_obj.gif");
183
	}
184

    
185
	private void registerImage(ImageRegistry registry, String key,
186
			String fileName) {
187
		try {
188
			IPath path = new Path("icons/" + fileName); //$NON-NLS-1$
189
			URL url = FileLocator.find(TaxeditorStorePlugin.getDefault().getBundle(), path, null);
190
			if (url != null) {
191
				ImageDescriptor desc = ImageDescriptor.createFromURL(url);
192
				registry.put(key, desc);
193
			}
194
		} catch (Exception e) {
195
		}
196
	}
197
}
(6-6/18)