home *** CD-ROM | disk | FTP | other *** search
- package java.beans;
-
- import java.util.Hashtable;
-
- public class PropertyEditorManager {
- private static String[] searchPath = new String[]{"sun.beans.editors"};
- private static Hashtable registry;
-
- public static void registerEditor(Class var0, Class var1) {
- initialize();
- if (var1 == null) {
- registry.remove(var0);
- } else {
- registry.put(var0, var1);
- }
- }
-
- public static PropertyEditor findEditor(Class var0) {
- initialize();
- Class var1 = (Class)registry.get(var0);
- if (var1 != null) {
- try {
- Object var9 = var1.newInstance();
- return (PropertyEditor)var9;
- } catch (Exception var7) {
- System.err.println("Couldn't instantiate type editor \"" + var1.getName() + "\" : " + var7);
- }
- }
-
- String var2 = var0.getName() + "Editor";
-
- try {
- return instantiate(var0, var2);
- } catch (Exception var6) {
- for(var2 = var0.getName(); var2.indexOf(46) > 0; var2 = var2.substring(var2.indexOf(46) + 1)) {
- }
-
- for(int var3 = 0; var3 < searchPath.length; ++var3) {
- String var4 = searchPath[var3] + "." + var2 + "Editor";
-
- try {
- return instantiate(var0, var4);
- }
- }
-
- return null;
- }
- }
-
- private static PropertyEditor instantiate(Class var0, String var1) throws InstantiationException, IllegalAccessException, ClassNotFoundException {
- ClassLoader var2 = var0.getClassLoader();
- if (var2 != null) {
- try {
- Class var7 = var2.loadClass(var1);
- Object var8 = var7.newInstance();
- PropertyEditor var9 = (PropertyEditor)var8;
- return var9;
- } catch (Exception var6) {
- }
- }
-
- Class var3 = Class.forName(var1);
- Object var4 = var3.newInstance();
- PropertyEditor var5 = (PropertyEditor)var4;
- return var5;
- }
-
- public static String[] getEditorSearchPath() {
- return searchPath;
- }
-
- public static void setEditorSearchPath(String[] var0) {
- if (var0 == null) {
- var0 = new String[0];
- }
-
- searchPath = var0;
- }
-
- private static void load(Class var0, String var1) {
- for(int var3 = 0; var3 < searchPath.length; ++var3) {
- try {
- String var2 = searchPath[var3] + "." + var1;
- Class var4 = Class.forName(var2);
- registry.put(var0, var4);
- return;
- }
- }
-
- System.err.println("load of " + var1 + " failed");
- }
-
- private static synchronized void initialize() {
- if (registry == null) {
- registry = new Hashtable();
- load(Byte.TYPE, "ByteEditor");
- load(Short.TYPE, "ShortEditor");
- load(Integer.TYPE, "IntEditor");
- load(Long.TYPE, "LongEditor");
- load(Boolean.TYPE, "BoolEditor");
- load(Float.TYPE, "FloatEditor");
- load(Double.TYPE, "DoubleEditor");
- }
- }
- }
-