home *** CD-ROM | disk | FTP | other *** search
/ S283 Planetary Science &… the Search for Life CD 3 / 0_CD-ROM.iso / install / jre1_3 / lib / rt.jar / javax / swing / plaf / basic / BasicLabelUI.class (.txt) < prev    next >
Encoding:
Java Class File  |  1979-12-31  |  7.2 KB  |  244 lines

  1. package javax.swing.plaf.basic;
  2.  
  3. import java.awt.Color;
  4. import java.awt.Component;
  5. import java.awt.Dimension;
  6. import java.awt.Font;
  7. import java.awt.FontMetrics;
  8. import java.awt.Graphics;
  9. import java.awt.Insets;
  10. import java.awt.Rectangle;
  11. import java.beans.PropertyChangeEvent;
  12. import java.beans.PropertyChangeListener;
  13. import java.util.EventObject;
  14. import javax.swing.ActionMap;
  15. import javax.swing.Icon;
  16. import javax.swing.InputMap;
  17. import javax.swing.JComponent;
  18. import javax.swing.JLabel;
  19. import javax.swing.KeyStroke;
  20. import javax.swing.LookAndFeel;
  21. import javax.swing.SwingUtilities;
  22. import javax.swing.UIManager;
  23. import javax.swing.plaf.ActionMapUIResource;
  24. import javax.swing.plaf.ComponentInputMapUIResource;
  25. import javax.swing.plaf.ComponentUI;
  26. import javax.swing.plaf.LabelUI;
  27. import javax.swing.text.View;
  28.  
  29. public class BasicLabelUI extends LabelUI implements PropertyChangeListener {
  30.    protected static BasicLabelUI labelUI = new BasicLabelUI();
  31.    private static Rectangle paintIconR = new Rectangle();
  32.    private static Rectangle paintTextR = new Rectangle();
  33.    private static Rectangle paintViewR = new Rectangle();
  34.    private static Insets paintViewInsets = new Insets(0, 0, 0, 0);
  35.    private static Rectangle iconR = new Rectangle();
  36.    private static Rectangle textR = new Rectangle();
  37.    private static Rectangle viewR = new Rectangle();
  38.    private static Insets viewInsets = new Insets(0, 0, 0, 0);
  39.  
  40.    protected String layoutCL(JLabel var1, FontMetrics var2, String var3, Icon var4, Rectangle var5, Rectangle var6, Rectangle var7) {
  41.       return SwingUtilities.layoutCompoundLabel(var1, var2, var3, var4, var1.getVerticalAlignment(), var1.getHorizontalAlignment(), var1.getVerticalTextPosition(), var1.getHorizontalTextPosition(), var5, var6, var7, var1.getIconTextGap());
  42.    }
  43.  
  44.    protected void paintEnabledText(JLabel var1, Graphics var2, String var3, int var4, int var5) {
  45.       int var6 = var1.getDisplayedMnemonic();
  46.       var2.setColor(((Component)var1).getForeground());
  47.       BasicGraphicsUtils.drawString(var2, var3, var6, var4, var5);
  48.    }
  49.  
  50.    protected void paintDisabledText(JLabel var1, Graphics var2, String var3, int var4, int var5) {
  51.       int var6 = var1.getDisplayedMnemonic();
  52.       Color var7 = ((Component)var1).getBackground();
  53.       var2.setColor(var7.brighter());
  54.       BasicGraphicsUtils.drawString(var2, var3, var6, var4 + 1, var5 + 1);
  55.       var2.setColor(var7.darker());
  56.       BasicGraphicsUtils.drawString(var2, var3, var6, var4, var5);
  57.    }
  58.  
  59.    public void paint(Graphics var1, JComponent var2) {
  60.       JLabel var3 = (JLabel)var2;
  61.       String var4 = var3.getText();
  62.       Icon var5 = ((Component)var3).isEnabled() ? var3.getIcon() : var3.getDisabledIcon();
  63.       if (var5 != null || var4 != null) {
  64.          FontMetrics var6 = var1.getFontMetrics();
  65.          paintViewInsets = var2.getInsets(paintViewInsets);
  66.          paintViewR.x = paintViewInsets.left;
  67.          paintViewR.y = paintViewInsets.top;
  68.          paintViewR.width = var2.getWidth() - (paintViewInsets.left + paintViewInsets.right);
  69.          paintViewR.height = var2.getHeight() - (paintViewInsets.top + paintViewInsets.bottom);
  70.          paintIconR.x = paintIconR.y = paintIconR.width = paintIconR.height = 0;
  71.          paintTextR.x = paintTextR.y = paintTextR.width = paintTextR.height = 0;
  72.          String var7 = this.layoutCL(var3, var6, var4, var5, paintViewR, paintIconR, paintTextR);
  73.          if (var5 != null) {
  74.             var5.paintIcon(var2, var1, paintIconR.x, paintIconR.y);
  75.          }
  76.  
  77.          if (var4 != null) {
  78.             View var8 = (View)var2.getClientProperty("html");
  79.             if (var8 != null) {
  80.                var8.paint(var1, paintTextR);
  81.             } else {
  82.                int var9 = paintTextR.x;
  83.                int var10 = paintTextR.y + var6.getAscent();
  84.                if (((Component)var3).isEnabled()) {
  85.                   this.paintEnabledText(var3, var1, var7, var9, var10);
  86.                } else {
  87.                   this.paintDisabledText(var3, var1, var7, var9, var10);
  88.                }
  89.             }
  90.          }
  91.  
  92.       }
  93.    }
  94.  
  95.    public Dimension getPreferredSize(JComponent var1) {
  96.       JLabel var2 = (JLabel)var1;
  97.       String var3 = var2.getText();
  98.       Icon var4 = var2.getIcon();
  99.       Insets var5 = ((JComponent)var2).getInsets(viewInsets);
  100.       Font var6 = ((Component)var2).getFont();
  101.       int var7 = var5.left + var5.right;
  102.       int var8 = var5.top + var5.bottom;
  103.       if (var4 != null || var3 != null && (var3 == null || var6 != null)) {
  104.          if (var3 != null && (var4 == null || var6 != null)) {
  105.             FontMetrics var9 = ((Component)var2).getToolkit().getFontMetrics(var6);
  106.             iconR.x = iconR.y = iconR.width = iconR.height = 0;
  107.             textR.x = textR.y = textR.width = textR.height = 0;
  108.             viewR.x = var7;
  109.             viewR.y = var8;
  110.             viewR.width = viewR.height = 32767;
  111.             this.layoutCL(var2, var9, var3, var4, viewR, iconR, textR);
  112.             int var10 = Math.min(iconR.x, textR.x);
  113.             int var11 = Math.max(iconR.x + iconR.width, textR.x + textR.width);
  114.             int var12 = Math.min(iconR.y, textR.y);
  115.             int var13 = Math.max(iconR.y + iconR.height, textR.y + textR.height);
  116.             Dimension var14 = new Dimension(var11 - var10, var13 - var12);
  117.             var14.width += var7;
  118.             var14.height += var8;
  119.             return var14;
  120.          } else {
  121.             return new Dimension(var4.getIconWidth() + var7, var4.getIconHeight() + var8);
  122.          }
  123.       } else {
  124.          return new Dimension(var7, var8);
  125.       }
  126.    }
  127.  
  128.    public Dimension getMinimumSize(JComponent var1) {
  129.       Dimension var2 = this.getPreferredSize(var1);
  130.       View var3 = (View)var1.getClientProperty("html");
  131.       if (var3 != null) {
  132.          var2.width = (int)((float)var2.width - (var3.getPreferredSpan(0) - var3.getMinimumSpan(0)));
  133.       }
  134.  
  135.       return var2;
  136.    }
  137.  
  138.    public Dimension getMaximumSize(JComponent var1) {
  139.       Dimension var2 = this.getPreferredSize(var1);
  140.       View var3 = (View)var1.getClientProperty("html");
  141.       if (var3 != null) {
  142.          var2.width = (int)((float)var2.width + (var3.getMaximumSpan(0) - var3.getPreferredSpan(0)));
  143.       }
  144.  
  145.       return var2;
  146.    }
  147.  
  148.    public void installUI(JComponent var1) {
  149.       this.installDefaults((JLabel)var1);
  150.       this.installComponents((JLabel)var1);
  151.       this.installListeners((JLabel)var1);
  152.       this.installKeyboardActions((JLabel)var1);
  153.    }
  154.  
  155.    public void uninstallUI(JComponent var1) {
  156.       this.uninstallDefaults((JLabel)var1);
  157.       this.uninstallComponents((JLabel)var1);
  158.       this.uninstallListeners((JLabel)var1);
  159.       this.uninstallKeyboardActions((JLabel)var1);
  160.    }
  161.  
  162.    protected void installDefaults(JLabel var1) {
  163.       LookAndFeel.installColorsAndFont(var1, "Label.background", "Label.foreground", "Label.font");
  164.    }
  165.  
  166.    protected void installListeners(JLabel var1) {
  167.       ((JComponent)var1).addPropertyChangeListener(this);
  168.    }
  169.  
  170.    protected void installComponents(JLabel var1) {
  171.       BasicHTML.updateRenderer(var1, var1.getText());
  172.    }
  173.  
  174.    protected void installKeyboardActions(JLabel var1) {
  175.       int var2 = var1.getDisplayedMnemonic();
  176.       Component var3 = var1.getLabelFor();
  177.       if (var2 != 0 && var3 != null) {
  178.          ActionMap var6 = SwingUtilities.getUIActionMap(var1);
  179.          if (var6 == null) {
  180.             var6 = this.createActionMap();
  181.             if (var6 != null) {
  182.                SwingUtilities.replaceUIActionMap(var1, var6);
  183.                UIManager.put("Label.actionMap", var6);
  184.             }
  185.          }
  186.  
  187.          Object var5 = SwingUtilities.getUIInputMap(var1, 2);
  188.          if (var5 == null) {
  189.             var5 = new ComponentInputMapUIResource(var1);
  190.             SwingUtilities.replaceUIInputMap(var1, 2, (InputMap)var5);
  191.          }
  192.  
  193.          ((InputMap)var5).clear();
  194.          ((InputMap)var5).put(KeyStroke.getKeyStroke(var2, 8, false), "press");
  195.       } else {
  196.          InputMap var4 = SwingUtilities.getUIInputMap(var1, 2);
  197.          if (var4 != null) {
  198.             var4.clear();
  199.          }
  200.       }
  201.  
  202.    }
  203.  
  204.    ActionMap createActionMap() {
  205.       ActionMapUIResource var1 = new ActionMapUIResource();
  206.       ((ActionMap)var1).put("press", new PressAction());
  207.       ((ActionMap)var1).put("release", new ReleaseAction());
  208.       return var1;
  209.    }
  210.  
  211.    protected void uninstallDefaults(JLabel var1) {
  212.    }
  213.  
  214.    protected void uninstallListeners(JLabel var1) {
  215.       ((JComponent)var1).removePropertyChangeListener(this);
  216.    }
  217.  
  218.    protected void uninstallComponents(JLabel var1) {
  219.       BasicHTML.updateRenderer(var1, "");
  220.    }
  221.  
  222.    protected void uninstallKeyboardActions(JLabel var1) {
  223.       SwingUtilities.replaceUIInputMap(var1, 0, (InputMap)null);
  224.       SwingUtilities.replaceUIInputMap(var1, 2, (InputMap)null);
  225.       SwingUtilities.replaceUIActionMap(var1, (ActionMap)null);
  226.    }
  227.  
  228.    public static ComponentUI createUI(JComponent var0) {
  229.       return labelUI;
  230.    }
  231.  
  232.    public void propertyChange(PropertyChangeEvent var1) {
  233.       String var2 = var1.getPropertyName();
  234.       if (var2.equals("text")) {
  235.          JLabel var3 = (JLabel)((EventObject)var1).getSource();
  236.          String var4 = var3.getText();
  237.          BasicHTML.updateRenderer(var3, var4);
  238.       } else if (var2.equals("labelFor") || var2.equals("displayedMnemonic")) {
  239.          this.installKeyboardActions((JLabel)((EventObject)var1).getSource());
  240.       }
  241.  
  242.    }
  243. }
  244.