home *** CD-ROM | disk | FTP | other *** search
/ PC Plus SuperCD (UK) 2000 March / pcp161a.iso / handson / files / copyjava.exe / com / sun / java / swing / plaf / basic / BasicLabelUI.class (.txt) < prev    next >
Encoding:
Java Class File  |  1998-02-26  |  5.7 KB  |  151 lines

  1. package com.sun.java.swing.plaf.basic;
  2.  
  3. import com.sun.java.swing.Icon;
  4. import com.sun.java.swing.JComponent;
  5. import com.sun.java.swing.JLabel;
  6. import com.sun.java.swing.KeyStroke;
  7. import com.sun.java.swing.LookAndFeel;
  8. import com.sun.java.swing.SwingUtilities;
  9. import com.sun.java.swing.plaf.ComponentUI;
  10. import com.sun.java.swing.plaf.LabelUI;
  11. import java.awt.Color;
  12. import java.awt.Component;
  13. import java.awt.Dimension;
  14. import java.awt.Font;
  15. import java.awt.FontMetrics;
  16. import java.awt.Graphics;
  17. import java.awt.Insets;
  18. import java.awt.Rectangle;
  19. import java.beans.PropertyChangeEvent;
  20. import java.beans.PropertyChangeListener;
  21. import java.io.Serializable;
  22. import java.util.EventObject;
  23.  
  24. public class BasicLabelUI extends LabelUI implements Serializable, PropertyChangeListener {
  25.    protected static BasicLabelUI labelUI = new BasicLabelUI();
  26.  
  27.    protected String layoutCL(JLabel var1, FontMetrics var2, String var3, Icon var4, Rectangle var5, Rectangle var6, Rectangle var7) {
  28.       return SwingUtilities.layoutCompoundLabel(var2, var3, var4, var1.getVerticalAlignment(), var1.getHorizontalAlignment(), var1.getVerticalTextPosition(), var1.getHorizontalTextPosition(), var5, var6, var7, var1.getIconTextGap());
  29.    }
  30.  
  31.    protected void paintEnabledText(JLabel var1, Graphics var2, String var3, int var4, int var5) {
  32.       int var6 = var1.getDisplayedMnemonic();
  33.       var2.setColor(((Component)var1).getForeground());
  34.       BasicGraphicsUtils.drawString(var2, var3, var6, var4, var5);
  35.    }
  36.  
  37.    protected void paintDisabledText(JLabel var1, Graphics var2, String var3, int var4, int var5) {
  38.       int var6 = var1.getDisplayedMnemonic();
  39.       Color var7 = ((Component)var1).getBackground();
  40.       var2.setColor(var7.brighter());
  41.       BasicGraphicsUtils.drawString(var2, var3, var6, var4, var5);
  42.       var2.setColor(var7.darker());
  43.       BasicGraphicsUtils.drawString(var2, var3, var6, var4 + 1, var5 + 1);
  44.    }
  45.  
  46.    public void paint(Graphics var1, JComponent var2) {
  47.       JLabel var3 = (JLabel)var2;
  48.       String var4 = var3.getText();
  49.       Icon var5 = ((Component)var3).isEnabled() ? var3.getIcon() : var3.getDisabledIcon();
  50.       if (var5 != null || var4 != null) {
  51.          FontMetrics var6 = var1.getFontMetrics();
  52.          Rectangle var7 = new Rectangle();
  53.          Rectangle var8 = new Rectangle();
  54.          Rectangle var9 = new Rectangle(((Component)var2).getSize());
  55.          Insets var10 = var2.getInsets();
  56.          var9.x = var10.left;
  57.          var9.y = var10.top;
  58.          var9.width -= var10.left + var10.right;
  59.          var9.height -= var10.top + var10.bottom;
  60.          String var11 = this.layoutCL(var3, var6, var4, var5, var9, var7, var8);
  61.          if (var5 != null) {
  62.             var5.paintIcon(var2, var1, var7.x, var7.y);
  63.          }
  64.  
  65.          if (var4 != null) {
  66.             int var12 = var8.x;
  67.             int var13 = var8.y + var6.getAscent();
  68.             if (((Component)var3).isEnabled()) {
  69.                this.paintEnabledText(var3, var1, var11, var12, var13);
  70.                return;
  71.             }
  72.  
  73.             this.paintDisabledText(var3, var1, var11, var12, var13);
  74.          }
  75.  
  76.       }
  77.    }
  78.  
  79.    public Dimension getPreferredSize(JComponent var1) {
  80.       JLabel var2 = (JLabel)var1;
  81.       String var3 = var2.getText();
  82.       Icon var4 = var2.getIcon();
  83.       Insets var5 = ((JComponent)var2).getInsets();
  84.       Font var6 = ((Component)var2).getFont();
  85.       int var7 = var5.left + var5.right;
  86.       int var8 = var5.top + var5.bottom;
  87.       if (var4 != null || var3 != null && (var3 == null || var6 != null)) {
  88.          if (var3 != null && (var4 == null || var6 != null)) {
  89.             FontMetrics var9 = ((Component)var2).getToolkit().getFontMetrics(var6);
  90.             Rectangle var10 = new Rectangle();
  91.             Rectangle var11 = new Rectangle();
  92.             Rectangle var12 = new Rectangle(var7, var8, 32767, 32767);
  93.             this.layoutCL(var2, var9, var3, var4, var12, var10, var11);
  94.             Dimension var13 = var10.union(var11).getSize();
  95.             var13.width += var7;
  96.             var13.height += var8;
  97.             return var13;
  98.          } else {
  99.             return new Dimension(var4.getIconWidth() + var7, var4.getIconHeight() + var8);
  100.          }
  101.       } else {
  102.          return new Dimension(var7, var8);
  103.       }
  104.    }
  105.  
  106.    public Dimension getMinimumSize(JComponent var1) {
  107.       return this.getPreferredSize(var1);
  108.    }
  109.  
  110.    public Dimension getMaximumSize(JComponent var1) {
  111.       return this.getPreferredSize(var1);
  112.    }
  113.  
  114.    public void installUI(JComponent var1) {
  115.       LookAndFeel.installColorsAndFont(var1, "Label.background", "Label.foreground", "Label.font");
  116.       this.installKeyboardActions(var1);
  117.       var1.addPropertyChangeListener(this);
  118.    }
  119.  
  120.    public void uninstallUI(JComponent var1) {
  121.       this.uninstallKeyboardActions(var1);
  122.       var1.removePropertyChangeListener(this);
  123.    }
  124.  
  125.    protected void installKeyboardActions(JComponent var1) {
  126.       JLabel var2 = (JLabel)var1;
  127.       int var3 = var2.getDisplayedMnemonic();
  128.       Component var4 = var2.getLabelFor();
  129.       var1.resetKeyboardActions();
  130.       if (var3 != 0 && var4 != null) {
  131.          ((JComponent)var2).registerKeyboardAction(new PressAction(var2, var4), KeyStroke.getKeyStroke(var3, 8, false), 2);
  132.       }
  133.  
  134.    }
  135.  
  136.    protected void uninstallKeyboardActions(JComponent var1) {
  137.       var1.resetKeyboardActions();
  138.    }
  139.  
  140.    public static ComponentUI createUI(JComponent var0) {
  141.       return labelUI;
  142.    }
  143.  
  144.    public void propertyChange(PropertyChangeEvent var1) {
  145.       if (var1.getPropertyName().equals("labelFor") || var1.getPropertyName().equals("displayedMnemonic")) {
  146.          this.installKeyboardActions((JLabel)((EventObject)var1).getSource());
  147.       }
  148.  
  149.    }
  150. }
  151.