home *** CD-ROM | disk | FTP | other *** search
/ PC Pro 1999 April / DPPCPRO0499.ISO / April / Notes / 50b2wic.exe / DATA1.CAB / NotesProgramFilesJavaSupport / rt.jar / java / beans / PropertyEditorManager.class (.txt) < prev    next >
Encoding:
Java Class File  |  1998-04-23  |  3.3 KB  |  106 lines

  1. package java.beans;
  2.  
  3. import java.util.Hashtable;
  4.  
  5. public class PropertyEditorManager {
  6.    private static String[] searchPath = new String[]{"sun.beans.editors"};
  7.    private static Hashtable registry;
  8.  
  9.    public static void registerEditor(Class var0, Class var1) {
  10.       initialize();
  11.       if (var1 == null) {
  12.          registry.remove(var0);
  13.       } else {
  14.          registry.put(var0, var1);
  15.       }
  16.    }
  17.  
  18.    public static PropertyEditor findEditor(Class var0) {
  19.       initialize();
  20.       Class var1 = (Class)registry.get(var0);
  21.       if (var1 != null) {
  22.          try {
  23.             Object var9 = var1.newInstance();
  24.             return (PropertyEditor)var9;
  25.          } catch (Exception var7) {
  26.             System.err.println("Couldn't instantiate type editor \"" + var1.getName() + "\" : " + var7);
  27.          }
  28.       }
  29.  
  30.       String var2 = var0.getName() + "Editor";
  31.  
  32.       try {
  33.          return instantiate(var0, var2);
  34.       } catch (Exception var6) {
  35.          for(var2 = var0.getName(); var2.indexOf(46) > 0; var2 = var2.substring(var2.indexOf(46) + 1)) {
  36.          }
  37.  
  38.          for(int var3 = 0; var3 < searchPath.length; ++var3) {
  39.             String var4 = searchPath[var3] + "." + var2 + "Editor";
  40.  
  41.             try {
  42.                return instantiate(var0, var4);
  43.             }
  44.          }
  45.  
  46.          return null;
  47.       }
  48.    }
  49.  
  50.    private static PropertyEditor instantiate(Class var0, String var1) throws InstantiationException, IllegalAccessException, ClassNotFoundException {
  51.       ClassLoader var2 = var0.getClassLoader();
  52.       if (var2 != null) {
  53.          try {
  54.             Class var7 = var2.loadClass(var1);
  55.             Object var8 = var7.newInstance();
  56.             PropertyEditor var9 = (PropertyEditor)var8;
  57.             return var9;
  58.          } catch (Exception var6) {
  59.          }
  60.       }
  61.  
  62.       Class var3 = Class.forName(var1);
  63.       Object var4 = var3.newInstance();
  64.       PropertyEditor var5 = (PropertyEditor)var4;
  65.       return var5;
  66.    }
  67.  
  68.    public static String[] getEditorSearchPath() {
  69.       return searchPath;
  70.    }
  71.  
  72.    public static void setEditorSearchPath(String[] var0) {
  73.       if (var0 == null) {
  74.          var0 = new String[0];
  75.       }
  76.  
  77.       searchPath = var0;
  78.    }
  79.  
  80.    private static void load(Class var0, String var1) {
  81.       for(int var3 = 0; var3 < searchPath.length; ++var3) {
  82.          try {
  83.             String var2 = searchPath[var3] + "." + var1;
  84.             Class var4 = Class.forName(var2);
  85.             registry.put(var0, var4);
  86.             return;
  87.          }
  88.       }
  89.  
  90.       System.err.println("load of " + var1 + " failed");
  91.    }
  92.  
  93.    private static synchronized void initialize() {
  94.       if (registry == null) {
  95.          registry = new Hashtable();
  96.          load(Byte.TYPE, "ByteEditor");
  97.          load(Short.TYPE, "ShortEditor");
  98.          load(Integer.TYPE, "IntEditor");
  99.          load(Long.TYPE, "LongEditor");
  100.          load(Boolean.TYPE, "BoolEditor");
  101.          load(Float.TYPE, "FloatEditor");
  102.          load(Double.TYPE, "DoubleEditor");
  103.       }
  104.    }
  105. }
  106.