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 / UIManager.class (.txt) < prev    next >
Encoding:
Java Class File  |  1979-12-31  |  9.4 KB  |  451 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.io.File;
  9. import java.io.Serializable;
  10. import java.util.Hashtable;
  11. import java.util.Properties;
  12. import java.util.StringTokenizer;
  13. import java.util.Vector;
  14. import javax.swing.border.Border;
  15. import javax.swing.plaf.ComponentUI;
  16.  
  17. public class UIManager implements Serializable {
  18.    private static final Object lafStateACKey = new StringBuffer("LookAndFeel State");
  19.    private static final Object classLock = new Object();
  20.    private static Thread currentLAFStateThread = null;
  21.    private static LAFState currentLAFState = null;
  22.    private static final String defaultLAFKey = "swing.defaultlaf";
  23.    private static final String auxiliaryLAFsKey = "swing.auxiliarylaf";
  24.    private static final String multiplexingLAFKey = "swing.plaf.multiplexinglaf";
  25.    private static final String installedLAFsKey = "swing.installedlafs";
  26.    private static LookAndFeelInfo[] installedLAFs = new LookAndFeelInfo[]{new LookAndFeelInfo("Metal", "javax.swing.plaf.metal.MetalLookAndFeel"), new LookAndFeelInfo("CDE/Motif", "com.sun.java.swing.plaf.motif.MotifLookAndFeel"), new LookAndFeelInfo("Windows", "com.sun.java.swing.plaf.windows.WindowsLookAndFeel")};
  27.    // $FF: synthetic field
  28.    static Class class$javax$swing$UIManager;
  29.  
  30.    private static LAFState getLAFState() {
  31.       Thread var0 = Thread.currentThread();
  32.       if (var0 == currentLAFStateThread) {
  33.          return currentLAFState;
  34.       } else {
  35.          LAFState var1 = (LAFState)SwingUtilities.appContextGet(lafStateACKey);
  36.          if (var1 == null) {
  37.             Object var2 = classLock;
  38.             synchronized(var2) {
  39.                var1 = (LAFState)SwingUtilities.appContextGet(lafStateACKey);
  40.                if (var1 == null) {
  41.                   SwingUtilities.appContextPut(lafStateACKey, var1 = new LAFState((1)null));
  42.                }
  43.             }
  44.          }
  45.  
  46.          currentLAFStateThread = var0;
  47.          currentLAFState = var1;
  48.          return var1;
  49.       }
  50.    }
  51.  
  52.    private static String makeInstalledLAFKey(String var0, String var1) {
  53.       return "swing.installedlaf." + var0 + "." + var1;
  54.    }
  55.  
  56.    private static String makeSwingPropertiesFilename() {
  57.       String[] var0 = new String[]{"<java.home undefined>"};
  58.       SwingUtilities.doPrivileged(new 1(var0));
  59.       String var1 = File.separator;
  60.       return var0[0] + var1 + "lib" + var1 + "swing.properties";
  61.    }
  62.  
  63.    public static LookAndFeelInfo[] getInstalledLookAndFeels() {
  64.       maybeInitialize();
  65.       LookAndFeelInfo[] var0 = installedLAFs;
  66.       LookAndFeelInfo[] var1 = new LookAndFeelInfo[var0.length];
  67.       System.arraycopy(var0, 0, var1, 0, var0.length);
  68.       return var1;
  69.    }
  70.  
  71.    public static void setInstalledLookAndFeels(LookAndFeelInfo[] var0) throws SecurityException {
  72.       LookAndFeelInfo[] var1 = new LookAndFeelInfo[var0.length];
  73.       System.arraycopy(var0, 0, var1, 0, var0.length);
  74.       installedLAFs = var1;
  75.    }
  76.  
  77.    public static void installLookAndFeel(LookAndFeelInfo var0) {
  78.       LookAndFeelInfo[] var1 = getInstalledLookAndFeels();
  79.       LookAndFeelInfo[] var2 = new LookAndFeelInfo[var1.length + 1];
  80.       System.arraycopy(var1, 0, var2, 0, var1.length);
  81.       var2[var1.length] = var0;
  82.       setInstalledLookAndFeels(var2);
  83.    }
  84.  
  85.    public static void installLookAndFeel(String var0, String var1) {
  86.       installLookAndFeel(new LookAndFeelInfo(var0, var1));
  87.    }
  88.  
  89.    public static LookAndFeel getLookAndFeel() {
  90.       maybeInitialize();
  91.       return getLAFState().lookAndFeel;
  92.    }
  93.  
  94.    public static void setLookAndFeel(LookAndFeel var0) throws UnsupportedLookAndFeelException {
  95.       if (var0 != null && !var0.isSupportedLookAndFeel()) {
  96.          String var2 = var0.toString() + " not supported on this platform";
  97.          throw new UnsupportedLookAndFeelException(var2);
  98.       } else {
  99.          LookAndFeel var1 = getLAFState().lookAndFeel;
  100.          if (var1 != null) {
  101.             var1.uninitialize();
  102.          }
  103.  
  104.          getLAFState().lookAndFeel = var0;
  105.          if (var0 != null) {
  106.             var0.initialize();
  107.             getLAFState().setLookAndFeelDefaults(var0.getDefaults());
  108.          } else {
  109.             getLAFState().setLookAndFeelDefaults((UIDefaults)null);
  110.          }
  111.  
  112.          getLAFState().changeSupport.firePropertyChange("lookAndFeel", var1, var0);
  113.       }
  114.    }
  115.  
  116.    public static void setLookAndFeel(String var0) throws ClassNotFoundException, InstantiationException, IllegalAccessException, UnsupportedLookAndFeelException {
  117.       Class var1 = SwingUtilities.loadSystemClass(var0);
  118.       setLookAndFeel((LookAndFeel)var1.newInstance());
  119.    }
  120.  
  121.    public static String getSystemLookAndFeelClassName() {
  122.       String[] var0 = new String[]{""};
  123.       SwingUtilities.doPrivileged(new 2(var0));
  124.       if (var0[0] != null) {
  125.          if (var0[0].indexOf("Windows") != -1) {
  126.             return "com.sun.java.swing.plaf.windows.WindowsLookAndFeel";
  127.          }
  128.  
  129.          if (var0[0].indexOf("Solaris") != -1 || var0[0].indexOf("SunOS") != -1) {
  130.             return "com.sun.java.swing.plaf.motif.MotifLookAndFeel";
  131.          }
  132.  
  133.          if (var0[0].indexOf("Mac") != -1) {
  134.             return "com.sun.java.swing.plaf.mac.MacLookAndFeel";
  135.          }
  136.       }
  137.  
  138.       return getCrossPlatformLookAndFeelClassName();
  139.    }
  140.  
  141.    public static String getCrossPlatformLookAndFeelClassName() {
  142.       return "javax.swing.plaf.metal.MetalLookAndFeel";
  143.    }
  144.  
  145.    public static UIDefaults getDefaults() {
  146.       maybeInitialize();
  147.       return getLAFState().multiUIDefaults;
  148.    }
  149.  
  150.    public static Font getFont(Object var0) {
  151.       return getDefaults().getFont(var0);
  152.    }
  153.  
  154.    public static Color getColor(Object var0) {
  155.       return getDefaults().getColor(var0);
  156.    }
  157.  
  158.    public static Icon getIcon(Object var0) {
  159.       return getDefaults().getIcon(var0);
  160.    }
  161.  
  162.    public static Border getBorder(Object var0) {
  163.       return getDefaults().getBorder(var0);
  164.    }
  165.  
  166.    public static String getString(Object var0) {
  167.       return getDefaults().getString(var0);
  168.    }
  169.  
  170.    public static int getInt(Object var0) {
  171.       return getDefaults().getInt(var0);
  172.    }
  173.  
  174.    public static Insets getInsets(Object var0) {
  175.       return getDefaults().getInsets(var0);
  176.    }
  177.  
  178.    public static Dimension getDimension(Object var0) {
  179.       return getDefaults().getDimension(var0);
  180.    }
  181.  
  182.    public static Object get(Object var0) {
  183.       return getDefaults().get(var0);
  184.    }
  185.  
  186.    public static Object put(Object var0, Object var1) {
  187.       return getDefaults().put(var0, var1);
  188.    }
  189.  
  190.    public static ComponentUI getUI(JComponent var0) {
  191.       maybeInitialize();
  192.       ComponentUI var1 = null;
  193.       LookAndFeel var2 = getLAFState().multiLookAndFeel;
  194.       if (var2 != null) {
  195.          var1 = var2.getDefaults().getUI(var0);
  196.       }
  197.  
  198.       if (var1 == null) {
  199.          var1 = getDefaults().getUI(var0);
  200.       }
  201.  
  202.       return var1;
  203.    }
  204.  
  205.    public static UIDefaults getLookAndFeelDefaults() {
  206.       maybeInitialize();
  207.       return getLAFState().getLookAndFeelDefaults();
  208.    }
  209.  
  210.    private static LookAndFeel getMultiLookAndFeel() {
  211.       LookAndFeel var0 = getLAFState().multiLookAndFeel;
  212.       if (var0 == null) {
  213.          String var1 = "javax.swing.plaf.multi.MultiLookAndFeel";
  214.          String var2 = getLAFState().swingProps.getProperty("swing.plaf.multiplexinglaf", var1);
  215.  
  216.          try {
  217.             Class var3 = SwingUtilities.loadSystemClass(var2);
  218.             var0 = (LookAndFeel)var3.newInstance();
  219.          } catch (Exception var4) {
  220.             System.err.println("UIManager: failed loading " + var2);
  221.          }
  222.       }
  223.  
  224.       return var0;
  225.    }
  226.  
  227.    public static void addAuxiliaryLookAndFeel(LookAndFeel var0) {
  228.       maybeInitialize();
  229.       Vector var1 = getLAFState().auxLookAndFeels;
  230.       if (var1 == null) {
  231.          var1 = new Vector();
  232.       }
  233.  
  234.       if (!var1.contains(var0)) {
  235.          var1.addElement(var0);
  236.          var0.initialize();
  237.          getLAFState().auxLookAndFeels = var1;
  238.          if (getLAFState().multiLookAndFeel == null) {
  239.             getLAFState().multiLookAndFeel = getMultiLookAndFeel();
  240.          }
  241.       }
  242.  
  243.    }
  244.  
  245.    public static boolean removeAuxiliaryLookAndFeel(LookAndFeel var0) {
  246.       maybeInitialize();
  247.       Vector var2 = getLAFState().auxLookAndFeels;
  248.       if (var2 != null && var2.size() != 0) {
  249.          boolean var1 = var2.removeElement(var0);
  250.          if (var1) {
  251.             if (var2.size() == 0) {
  252.                getLAFState().auxLookAndFeels = null;
  253.                getLAFState().multiLookAndFeel = null;
  254.             } else {
  255.                getLAFState().auxLookAndFeels = var2;
  256.             }
  257.          }
  258.  
  259.          var0.uninitialize();
  260.          return var1;
  261.       } else {
  262.          return false;
  263.       }
  264.    }
  265.  
  266.    public static LookAndFeel[] getAuxiliaryLookAndFeels() {
  267.       maybeInitialize();
  268.       Vector var0 = getLAFState().auxLookAndFeels;
  269.       if (var0 != null && var0.size() != 0) {
  270.          LookAndFeel[] var1 = new LookAndFeel[var0.size()];
  271.  
  272.          for(int var2 = 0; var2 < var1.length; ++var2) {
  273.             var1[var2] = (LookAndFeel)var0.elementAt(var2);
  274.          }
  275.  
  276.          return var1;
  277.       } else {
  278.          return null;
  279.       }
  280.    }
  281.  
  282.    public static void addPropertyChangeListener(PropertyChangeListener var0) {
  283.       Object var1 = classLock;
  284.       synchronized(var1) {
  285.          getLAFState().changeSupport.addPropertyChangeListener(var0);
  286.       }
  287.    }
  288.  
  289.    public static void removePropertyChangeListener(PropertyChangeListener var0) {
  290.       Object var1 = classLock;
  291.       synchronized(var1) {
  292.          getLAFState().changeSupport.removePropertyChangeListener(var0);
  293.       }
  294.    }
  295.  
  296.    private static Properties loadSwingProperties() {
  297.       if ((class$javax$swing$UIManager == null ? (class$javax$swing$UIManager = class$("javax.swing.UIManager")) : class$javax$swing$UIManager).getClassLoader() != null) {
  298.          return new Properties();
  299.       } else {
  300.          Properties var0 = new Properties();
  301.          SwingUtilities.doPrivileged(new 3(var0));
  302.          return var0;
  303.       }
  304.    }
  305.  
  306.    private static void checkProperty(Properties var0, String var1) {
  307.       try {
  308.          String var2 = System.getProperty(var1);
  309.          if (var2 != null) {
  310.             ((Hashtable)var0).put(var1, var2);
  311.          }
  312.       } catch (SecurityException var3) {
  313.       }
  314.  
  315.    }
  316.  
  317.    private static void initializeInstalledLAFs(Properties var0) {
  318.       String var1 = var0.getProperty("swing.installedlafs");
  319.       if (var1 != null) {
  320.          Vector var2 = new Vector();
  321.          StringTokenizer var3 = new StringTokenizer(var1, ",", false);
  322.  
  323.          while(var3.hasMoreTokens()) {
  324.             var2.addElement(var3.nextToken());
  325.          }
  326.  
  327.          Vector var4 = new Vector(var2.size());
  328.  
  329.          for(int var5 = 0; var5 < var2.size(); ++var5) {
  330.             String var6 = (String)var2.elementAt(var5);
  331.             String var7 = var0.getProperty(makeInstalledLAFKey(var6, "name"), var6);
  332.             String var8 = var0.getProperty(makeInstalledLAFKey(var6, "class"));
  333.             if (var8 != null) {
  334.                var4.addElement(new LookAndFeelInfo(var7, var8));
  335.             }
  336.          }
  337.  
  338.          installedLAFs = new LookAndFeelInfo[var4.size()];
  339.  
  340.          for(int var9 = 0; var9 < var4.size(); ++var9) {
  341.             installedLAFs[var9] = (LookAndFeelInfo)var4.elementAt(var9);
  342.          }
  343.  
  344.       }
  345.    }
  346.  
  347.    private static void initializeDefaultLAF(Properties var0) {
  348.       if (getLAFState().lookAndFeel == null) {
  349.          String var1 = getCrossPlatformLookAndFeelClassName();
  350.          String var2 = var1;
  351.          String var3 = "<undefined>";
  352.  
  353.          try {
  354.             var3 = var0.getProperty("swing.defaultlaf", var2);
  355.             setLookAndFeel(var3);
  356.          } catch (Exception var7) {
  357.             try {
  358.                var3 = var0.getProperty("swing.defaultlaf", var1);
  359.                setLookAndFeel(var3);
  360.             } catch (Exception var6) {
  361.                throw new Error("can't load " + var3);
  362.             }
  363.          }
  364.  
  365.       }
  366.    }
  367.  
  368.    private static void initializeAuxiliaryLAFs(Properties var0) {
  369.       String var1 = var0.getProperty("swing.auxiliarylaf");
  370.       if (var1 != null) {
  371.          Vector var2 = new Vector();
  372.          StringTokenizer var3 = new StringTokenizer(var1, ",");
  373.  
  374.          while(var3.hasMoreTokens()) {
  375.             String var5 = var3.nextToken();
  376.  
  377.             try {
  378.                Class var6 = SwingUtilities.loadSystemClass(var5);
  379.                LookAndFeel var7 = (LookAndFeel)var6.newInstance();
  380.                var7.initialize();
  381.                var2.addElement(var7);
  382.             } catch (Exception var8) {
  383.                System.err.println("UIManager: failed loading auxiliary look and feel " + var5);
  384.             }
  385.          }
  386.  
  387.          if (var2.size() == 0) {
  388.             var2 = null;
  389.          } else {
  390.             getLAFState().multiLookAndFeel = getMultiLookAndFeel();
  391.             if (getLAFState().multiLookAndFeel == null) {
  392.                var2 = null;
  393.             }
  394.          }
  395.  
  396.          getLAFState().auxLookAndFeels = var2;
  397.       }
  398.    }
  399.  
  400.    private static void initializeSystemDefaults(Properties var0) {
  401.       Object[] var1 = new Object[]{"FocusManagerClassName", "javax.swing.DefaultFocusManager"};
  402.       getLAFState().setSystemDefaults(new UIDefaults(var1));
  403.       getLAFState().swingProps = var0;
  404.    }
  405.  
  406.    private static void maybeInitialize() {
  407.       Object var0 = classLock;
  408.       synchronized(var0) {
  409.          if (!getLAFState().initialized) {
  410.             getLAFState().initialized = true;
  411.             initialize();
  412.          }
  413.  
  414.       }
  415.    }
  416.  
  417.    private static void initialize() {
  418.       Properties var0 = loadSwingProperties();
  419.  
  420.       try {
  421.          Compiler.disable();
  422.          initializeSystemDefaults(var0);
  423.          initializeDefaultLAF(var0);
  424.          initializeAuxiliaryLAFs(var0);
  425.          initializeInstalledLAFs(var0);
  426.       } finally {
  427.          Compiler.enable();
  428.       }
  429.  
  430.    }
  431.  
  432.    // $FF: synthetic method
  433.    static Class class$(String var0) {
  434.       try {
  435.          return Class.forName(var0);
  436.       } catch (ClassNotFoundException var2) {
  437.          throw new NoClassDefFoundError(((Throwable)var2).getMessage());
  438.       }
  439.    }
  440.  
  441.    // $FF: synthetic method
  442.    static String access$100() {
  443.       return makeSwingPropertiesFilename();
  444.    }
  445.  
  446.    // $FF: synthetic method
  447.    static void access$200(Properties var0, String var1) {
  448.       checkProperty(var0, var1);
  449.    }
  450. }
  451.