Re-implemented taxonomic tree using Common Navigator Framework.
[taxeditor.git] / taxeditor-store / src / main / java / eu / etaxonomy / taxeditor / store / model / ImageResources.java
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.eclipse.core.runtime.FileLocator;
17 import org.eclipse.core.runtime.IPath;
18 import org.eclipse.core.runtime.Path;
19 import org.eclipse.jface.resource.ImageDescriptor;
20 import org.eclipse.jface.resource.ImageRegistry;
21 import org.eclipse.swt.graphics.Image;
22
23 import eu.etaxonomy.taxeditor.store.internal.TaxeditorStorePlugin;
24
25 /**
26 * @author n.hoffmann
27 * @created 24.03.2009
28 * @version 1.0
29 */
30 public class ImageResources {
31
32 private static ImageResources instance;
33
34 public static ImageResources getInstance(){
35 if(instance == null){
36 instance = new ImageResources();
37 }
38 return instance;
39 }
40
41
42 /* ***************************************************************************************
43 ICONS
44 ************************************************************************************** */
45 public static final String EDIT_ICON = "edit_icon";
46 public static final String WARNING_ICON = "warning_icon";
47 public static final String BLACK_SQUARE_ICON = "black_square_icon";
48 public static final String HOMOTYPIC_SYN_ICON = "homotypic_syn_icon";
49 public static final String HOMOTYPIC_SYN_ORIGINAL_ICON = "homotypic_syn_original_icon";
50 public static final String HETEROTYPIC_SYN_ICON = "heterotypic_syn_icon";
51 public static final String HETEROTYPIC_SYN_ORIGINAL_ICON = "heterotypic_syn_original_icon";
52 public static final String MISAPPLIED_NAME_ICON = "misapplied_icon";
53 public static final String CONCEPT_ICON = "concept_icon";
54 public static final String AUTONYM_ICON = "autonym_icon";
55 public static final String BASIONYM_ICON = "basionym_icon";
56 public static final String ORTHOGRAPHIC_VARIANT_ICON = "orthographic_variants_icon";
57 public static final String DB_ICON = "db_icon";
58 public static final String MOVE_ICON = "move_icon";
59 public static final String ACTIVE_DELETE_ICON = "active_delete_icon";
60 public static final String SYNONYM_TO_TAXON_ICON = "synoynm_to_taxon_icon";
61 public static final String OPEN_TAXON_ICON = "open_taxon_icon";
62 public static final String ADD_CHILD_TAXON_ICON = "add_taxon_icon";
63 public static final String SWAP_SYNONYM_AND_TAXON_ICON = "swap_syn_and_tax_icon";
64 public static final String QUICK_ADD_ICON = "quick_add_icon";
65 public static final String TAXON_TO_SYNONYM_ICON = "tax_to_syn_icon";
66 public static final String ERROR_ANNOTATION_ICON = "error_annotation_icon";
67 public static final String EDIT_BITMAP_ICON = "edit_bitmap_icon";
68 public static final String IMG_DATASOURCE_CONNECTED = "IMG_DATASOURCE_CONNECTED";
69 public static final String IMG_DATASOURCE_DISCONNECTED = "IMG_DATASOURCE_DISCONNECTED";
70
71
72 /***************************************************************************
73 * IMAGE REGISTRY
74 **************************************************************************/
75 private ImageRegistry imageRegistry;
76
77 public static ImageDescriptor getImageDescriptor(String key) {
78 return getInstance().getImageRegistry().getDescriptor(key);
79 }
80
81 public static Image getImage(String key) {
82 return getInstance().getImageRegistry().get(key);
83 }
84
85 /**
86 * Gets an image for the given URL. Adds the image to the registry as needed.
87 *
88 * @param url
89 * @return
90 */
91 public static Image getImage(URI uri) {
92
93 String key = uri.toString();
94 ImageRegistry registry = getInstance().getImageRegistry();
95
96 Image image = registry.get(key);
97
98 if (image == null) {
99 ImageDescriptor desc;
100 try {
101 desc = ImageDescriptor.createFromURL(new URL(key));
102 registry.put(key, desc);
103 image = registry.get(key);
104 } catch (MalformedURLException e) {
105 // should never happen
106 }catch (Exception e) {
107 // TODO Auto-generated catch block
108 e.printStackTrace();
109 }
110
111 // logger.warn(ImageDescriptor.getMissingImageDescriptor().getClass());
112 // logger.warn(desc.getClass());
113 //
114 // if (ImageDescriptor.getMissingImageDescriptor().equals(desc)) {
115 // logger.warn("img not found");
116 // }
117
118 }
119
120 return image;
121 }
122
123 public ImageRegistry getImageRegistry() {
124 if (imageRegistry == null) {
125 imageRegistry = TaxeditorStorePlugin.getDefault().createImageRegistry();
126 initializeImageRegistry(imageRegistry);
127 }
128 return imageRegistry;
129 }
130
131 protected void initializeImageRegistry(ImageRegistry registry) {
132 registerImage(registry, EDIT_ICON, "edit_16x16.ico");
133 registerImage(registry, WARNING_ICON,
134 "warn_tsk.gif");
135 registerImage(registry, BLACK_SQUARE_ICON,
136 "accepted_small.gif");
137 registerImage(registry, HOMOTYPIC_SYN_ICON,
138 "homosyn_no_bg.gif");
139 registerImage(registry,
140 HOMOTYPIC_SYN_ORIGINAL_ICON,
141 "homosyn_original_no_bg.gif");
142 registerImage(registry, HETEROTYPIC_SYN_ICON,
143 "heterosyn_no_bg.gif");
144 registerImage(registry,
145 HETEROTYPIC_SYN_ORIGINAL_ICON,
146 "heterosyn_original_no_bg.gif");
147 registerImage(registry, MISAPPLIED_NAME_ICON,
148 "misapplied_no_bg.gif");
149 registerImage(registry, CONCEPT_ICON,
150 "concept_no_bg.gif");
151 registerImage(registry, AUTONYM_ICON,
152 "autonym_no_bg.gif");
153 registerImage(registry, BASIONYM_ICON,
154 "basionym_no_bg.gif");
155 registerImage(registry, ORTHOGRAPHIC_VARIANT_ICON,
156 "orthovariant_no_bg.gif");
157 registerImage(registry, DB_ICON, "db.gif");
158 registerImage(registry, MOVE_ICON,
159 "correction_change.gif");
160 registerImage(registry, ACTIVE_DELETE_ICON,
161 "delete_edit.gif");
162 registerImage(registry, SYNONYM_TO_TAXON_ICON,
163 "change.gif");
164 registerImage(registry, OPEN_TAXON_ICON, "open.gif");
165 registerImage(registry, ADD_CHILD_TAXON_ICON,
166 "new_child.gif");
167 registerImage(registry,
168 SWAP_SYNONYM_AND_TAXON_ICON, "swap2.gif");
169 registerImage(registry, QUICK_ADD_ICON,
170 "quick_add.gif");
171 registerImage(registry, TAXON_TO_SYNONYM_ICON,
172 "tax_to_syn.gif");
173 registerImage(registry, ERROR_ANNOTATION_ICON,
174 "error_co.gif");
175 registerImage(registry, EDIT_BITMAP_ICON,
176 "256color_16x16.bmp");
177 registerImage(registry, IMG_DATASOURCE_CONNECTED,
178 "prj_obj.gif");
179 registerImage(registry, IMG_DATASOURCE_DISCONNECTED,
180 "cprj_obj.gif");
181 }
182
183 private void registerImage(ImageRegistry registry, String key,
184 String fileName) {
185 try {
186 IPath path = new Path("icons/" + fileName); //$NON-NLS-1$
187 URL url = FileLocator.find(TaxeditorStorePlugin.getDefault().getBundle(), path, null);
188 if (url != null) {
189 ImageDescriptor desc = ImageDescriptor.createFromURL(url);
190 registry.put(key, desc);
191 }
192 } catch (Exception e) {
193 }
194 }
195 }