1 package org.columba.calendar.resourceloader; 19 20 import java.net.URL ; 21 import java.util.Locale ; 22 import java.util.MissingResourceException ; 23 import java.util.ResourceBundle ; 24 25 import javax.swing.ImageIcon ; 26 27 import org.columba.core.resourceloader.GlobalResourceLoader; 28 29 34 public class ResourceLoader { 35 private static String ICON_PATH = "/org/columba/calendar/icons"; 36 private static String i18nPath = "org.columba.calendar.i18n"; 37 38 43 public static ImageIcon getMiscIcon(String resourceName) { 44 if (resourceName == null) 45 throw new IllegalArgumentException ("resourceName == null"); 46 47 URL url = ResourceLoader.class.getResource(ResourceLoader.ICON_PATH 48 + "/MISC/" + resourceName); 49 50 if (url == null) 51 url = getFallback(true); 52 53 ImageIcon icon = new ImageIcon (url); 54 return icon; 55 } 56 57 62 public static ImageIcon getIcon(String name) { 63 return getIcon(ResourceLoader.ICON_PATH, name, false); 64 } 65 66 71 public static ImageIcon getSmallIcon(String name) { 72 return getIcon(ResourceLoader.ICON_PATH, name, true); 73 } 74 75 82 public static ImageIcon getIcon(String path, String name, boolean small) { 83 URL url; 84 85 if (small) 86 url = ResourceLoader.class.getResource(path + "/16x16/" + name); 87 else 88 url = ResourceLoader.class.getResource(path + "/22x22/" + name); 89 90 if (url == null) 91 url = getFallback(small); 92 93 ImageIcon icon = new ImageIcon (url); 94 95 return icon; 96 } 97 98 103 private static URL getFallback(boolean small) { 104 String path; 105 String name; 106 URL url; 107 path = "org/columba/core/icons"; 108 name = "image-missing.png"; 109 if (small) 110 111 url = ResourceLoader.class.getResource(path + "/16x16/" + name); 112 else 113 url = ResourceLoader.class.getResource(path + "/22x22/" + name); 114 return url; 115 } 116 117 123 public static final String getString(String resourceBundleName, 124 String resourceName) { 125 ResourceBundle bundle = null; 126 String bundlePath = i18nPath + "." + resourceBundleName; 127 128 try { 129 bundle = ResourceBundle.getBundle(bundlePath, Locale.getDefault()); 130 131 return bundle.getString(resourceName); 132 } catch (MissingResourceException e) { 133 134 return GlobalResourceLoader.getString(null, resourceBundleName, 136 resourceName); 137 } 138 } 139 } 140 | Popular Tags |