1 package com.opensymphony.workflow.designer.swing; 2 3 import java.util.ResourceBundle ; 4 import java.util.MissingResourceException ; 5 import java.text.MessageFormat ; 6 import java.text.FieldPosition ; 7 import java.io.InputStream ; 8 import java.net.URL ; 9 import javax.swing.*; 10 11 16 public class EnhancedResourceBundle 17 { 18 private ResourceBundle bundle; 19 private ClassLoader loader = EnhancedResourceBundle.class.getClassLoader(); 20 21 public EnhancedResourceBundle(String baseName) 22 { 23 this.bundle = ResourceBundle.getBundle(baseName); 24 } 25 26 public EnhancedResourceBundle(ResourceBundle bundle) 27 { 28 this.bundle = bundle; 29 } 30 31 public ResourceBundle getBundle() 32 { 33 return bundle; 34 } 35 36 public String getString(String key) 37 { 38 return getString(key, key); 39 } 40 41 public String getString(String key, String defaultValue) 42 { 43 try 44 { 45 return bundle.getString(key); 46 } 47 catch(MissingResourceException e) 48 { 49 return defaultValue; 50 } 51 } 52 53 public String getString(String key, Object args) 54 { 55 56 try 57 { 58 String value = bundle.getString(key); 59 MessageFormat format = new MessageFormat (value); 60 return format.format(args, new StringBuffer (), new FieldPosition (0)).toString(); 61 } 62 catch(MissingResourceException e) 63 { 64 return key; 65 } 66 } 67 68 public ImageIcon getIcon(String key) 69 { 70 String path = getString("image." + key); 71 if(path == null) 72 { 73 return null; 74 } 75 else if(path.length() == 0) 76 { 77 return null; 78 } 79 else 80 return readImageIcon(path); 81 } 82 83 public InputStream getInputStream(String path) 84 { 85 return loader.getResourceAsStream(path); 86 } 87 88 public ImageIcon readImageIcon(String path) 89 { 90 URL url = loader.getResource(path); 91 return null == url ? null : new ImageIcon(url); 92 } 93 } 94 | Popular Tags |