home *** CD-ROM | disk | FTP | other *** search
/ S283 Planetary Science &n…he Search for Life DVD 2 / DVD-ROM.iso / install / jre1_3 / lib / rt.jar / javax / swing / UIDefaults.class (.txt) < prev    next >
Encoding:
Java Class File  |  1979-12-31  |  5.1 KB  |  239 lines

  1. package javax.swing;
  2.  
  3. import java.awt.Color;
  4. import java.awt.Dimension;
  5. import java.awt.Font;
  6. import java.awt.Insets;
  7. import java.beans.PropertyChangeListener;
  8. import java.lang.reflect.Method;
  9. import java.util.Hashtable;
  10. import javax.swing.border.Border;
  11. import javax.swing.event.SwingPropertyChangeSupport;
  12. import javax.swing.plaf.ComponentUI;
  13.  
  14. public class UIDefaults extends Hashtable {
  15.    private static final Object PENDING = new String("Pending");
  16.    private SwingPropertyChangeSupport changeSupport;
  17.    // $FF: synthetic field
  18.    static Class class$javax$swing$JComponent;
  19.  
  20.    public UIDefaults() {
  21.    }
  22.  
  23.    public UIDefaults(Object[] var1) {
  24.       super(var1.length / 2);
  25.  
  26.       for(int var2 = 0; var2 < var1.length; var2 += 2) {
  27.          super.put(var1[var2], var1[var2 + 1]);
  28.       }
  29.  
  30.    }
  31.  
  32.    public Object get(Object var1) {
  33.       Object var2 = super.get(var1);
  34.       if (var2 != PENDING && !(var2 instanceof ActiveValue) && !(var2 instanceof LazyValue)) {
  35.          return var2;
  36.       } else {
  37.          synchronized(this) {
  38.             var2 = super.get(var1);
  39.             if (var2 == PENDING) {
  40.                do {
  41.                   try {
  42.                      this.wait();
  43.                   } catch (InterruptedException var16) {
  44.                   }
  45.  
  46.                   var2 = super.get(var1);
  47.                } while(var2 == PENDING);
  48.  
  49.                return var2;
  50.             }
  51.  
  52.             if (var2 instanceof LazyValue) {
  53.                super.put(var1, PENDING);
  54.             } else if (!(var2 instanceof ActiveValue)) {
  55.                return var2;
  56.             }
  57.          }
  58.  
  59.          if (var2 instanceof LazyValue) {
  60.             try {
  61.                var2 = ((LazyValue)var2).createValue(this);
  62.             } finally {
  63.                synchronized(this) {
  64.                   if (var2 == null) {
  65.                      super.remove(var1);
  66.                   } else {
  67.                      super.put(var1, var2);
  68.                   }
  69.  
  70.                   this.notify();
  71.                }
  72.             }
  73.          } else {
  74.             var2 = ((ActiveValue)var2).createValue(this);
  75.          }
  76.  
  77.          return var2;
  78.       }
  79.    }
  80.  
  81.    public Object put(Object var1, Object var2) {
  82.       Object var3 = var2 == null ? super.remove(var1) : super.put(var1, var2);
  83.       if (var1 instanceof String) {
  84.          this.firePropertyChange((String)var1, var3, var2);
  85.       }
  86.  
  87.       return var3;
  88.    }
  89.  
  90.    public void putDefaults(Object[] var1) {
  91.       for(int var2 = 0; var2 < var1.length; var2 += 2) {
  92.          Object var3 = var1[var2 + 1];
  93.          if (var3 == null) {
  94.             super.remove(var1[var2]);
  95.          } else {
  96.             super.put(var1[var2], var3);
  97.          }
  98.       }
  99.  
  100.       this.firePropertyChange("UIDefaults", (Object)null, (Object)null);
  101.    }
  102.  
  103.    public Font getFont(Object var1) {
  104.       Object var2 = this.get(var1);
  105.       return var2 instanceof Font ? (Font)var2 : null;
  106.    }
  107.  
  108.    public Color getColor(Object var1) {
  109.       Object var2 = this.get(var1);
  110.       return var2 instanceof Color ? (Color)var2 : null;
  111.    }
  112.  
  113.    public Icon getIcon(Object var1) {
  114.       Object var2 = this.get(var1);
  115.       return var2 instanceof Icon ? (Icon)var2 : null;
  116.    }
  117.  
  118.    public Border getBorder(Object var1) {
  119.       Object var2 = this.get(var1);
  120.       return var2 instanceof Border ? (Border)var2 : null;
  121.    }
  122.  
  123.    public String getString(Object var1) {
  124.       Object var2 = this.get(var1);
  125.       return var2 instanceof String ? (String)var2 : null;
  126.    }
  127.  
  128.    public int getInt(Object var1) {
  129.       Object var2 = this.get(var1);
  130.       return var2 instanceof Integer ? (Integer)var2 : 0;
  131.    }
  132.  
  133.    public Insets getInsets(Object var1) {
  134.       Object var2 = this.get(var1);
  135.       return var2 instanceof Insets ? (Insets)var2 : null;
  136.    }
  137.  
  138.    public Dimension getDimension(Object var1) {
  139.       Object var2 = this.get(var1);
  140.       return var2 instanceof Dimension ? (Dimension)var2 : null;
  141.    }
  142.  
  143.    public Class getUIClass(String var1, ClassLoader var2) {
  144.       try {
  145.          String var3 = (String)this.get(var1);
  146.          Class var4 = (Class)this.get(var3);
  147.          if (var4 == null) {
  148.             if (var2 == null) {
  149.                var4 = SwingUtilities.loadSystemClass(var3);
  150.             } else {
  151.                var4 = var2.loadClass(var3);
  152.             }
  153.  
  154.             if (var4 != null) {
  155.                this.put(var3, var4);
  156.             }
  157.          }
  158.  
  159.          return var4;
  160.       } catch (ClassNotFoundException var5) {
  161.          return null;
  162.       } catch (ClassCastException var6) {
  163.          return null;
  164.       }
  165.    }
  166.  
  167.    public Class getUIClass(String var1) {
  168.       return this.getUIClass(var1, (ClassLoader)null);
  169.    }
  170.  
  171.    protected void getUIError(String var1) {
  172.       System.err.println("UIDefaults.getUI() failed: " + var1);
  173.  
  174.       try {
  175.          throw new Error();
  176.       } catch (Throwable var3) {
  177.          var3.printStackTrace();
  178.       }
  179.    }
  180.  
  181.    public ComponentUI getUI(JComponent var1) {
  182.       Object var2 = this.get("ClassLoader");
  183.       ClassLoader var3 = var2 != null ? (ClassLoader)var2 : var1.getClass().getClassLoader();
  184.       Class var4 = this.getUIClass(var1.getUIClassID(), var3);
  185.       Object var5 = null;
  186.       if (var4 == null) {
  187.          this.getUIError("no ComponentUI class for: " + var1);
  188.       } else {
  189.          try {
  190.             Method var6 = (Method)this.get(var4);
  191.             if (var6 == null) {
  192.                Class var7 = class$javax$swing$JComponent == null ? (class$javax$swing$JComponent = class$("javax.swing.JComponent")) : class$javax$swing$JComponent;
  193.                var6 = var4.getMethod("createUI", var7);
  194.                this.put(var4, var6);
  195.             }
  196.  
  197.             var5 = var6.invoke((Object)null, var1);
  198.          } catch (NoSuchMethodException var8) {
  199.             this.getUIError("static createUI() method not found in " + var4);
  200.          } catch (Exception var9) {
  201.             this.getUIError("createUI() failed for " + var1 + " " + var9);
  202.          }
  203.       }
  204.  
  205.       return (ComponentUI)var5;
  206.    }
  207.  
  208.    public synchronized void addPropertyChangeListener(PropertyChangeListener var1) {
  209.       if (this.changeSupport == null) {
  210.          this.changeSupport = new SwingPropertyChangeSupport(this);
  211.       }
  212.  
  213.       this.changeSupport.addPropertyChangeListener(var1);
  214.    }
  215.  
  216.    public synchronized void removePropertyChangeListener(PropertyChangeListener var1) {
  217.       if (this.changeSupport != null) {
  218.          this.changeSupport.removePropertyChangeListener(var1);
  219.       }
  220.  
  221.    }
  222.  
  223.    protected void firePropertyChange(String var1, Object var2, Object var3) {
  224.       if (this.changeSupport != null) {
  225.          this.changeSupport.firePropertyChange(var1, var2, var3);
  226.       }
  227.  
  228.    }
  229.  
  230.    // $FF: synthetic method
  231.    static Class class$(String var0) {
  232.       try {
  233.          return Class.forName(var0);
  234.       } catch (ClassNotFoundException var2) {
  235.          throw new NoClassDefFoundError(((Throwable)var2).getMessage());
  236.       }
  237.    }
  238. }
  239.