home *** CD-ROM | disk | FTP | other *** search
/ Computer Shopper 144 / DPCS0200.iso / Internet / Supanet / system / swing.jar / javax / swing / plaf / basic / BasicLabelUI.class (.txt) < prev    next >
Encoding:
Java Class File  |  1998-11-05  |  6.6 KB  |  185 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.Icon;
  15. import javax.swing.JComponent;
  16. import javax.swing.JLabel;
  17. import javax.swing.KeyStroke;
  18. import javax.swing.LookAndFeel;
  19. import javax.swing.SwingUtilities;
  20. import javax.swing.plaf.ComponentUI;
  21. import javax.swing.plaf.LabelUI;
  22.  
  23. public class BasicLabelUI extends LabelUI implements PropertyChangeListener {
  24.    protected static BasicLabelUI labelUI = new BasicLabelUI();
  25.    private static Rectangle paintIconR = new Rectangle();
  26.    private static Rectangle paintTextR = new Rectangle();
  27.    private static Rectangle paintViewR = new Rectangle();
  28.    private static Insets paintViewInsets = new Insets(0, 0, 0, 0);
  29.    private static Rectangle iconR = new Rectangle();
  30.    private static Rectangle textR = new Rectangle();
  31.    private static Rectangle viewR = new Rectangle();
  32.    private static Insets viewInsets = new Insets(0, 0, 0, 0);
  33.  
  34.    public static ComponentUI createUI(JComponent var0) {
  35.       return labelUI;
  36.    }
  37.  
  38.    public Dimension getMaximumSize(JComponent var1) {
  39.       return this.getPreferredSize(var1);
  40.    }
  41.  
  42.    public Dimension getMinimumSize(JComponent var1) {
  43.       return this.getPreferredSize(var1);
  44.    }
  45.  
  46.    public Dimension getPreferredSize(JComponent var1) {
  47.       JLabel var2 = (JLabel)var1;
  48.       String var3 = var2.getText();
  49.       Icon var4 = var2.getIcon();
  50.       Insets var5 = ((JComponent)var2).getInsets(viewInsets);
  51.       Font var6 = ((Component)var2).getFont();
  52.       int var7 = var5.left + var5.right;
  53.       int var8 = var5.top + var5.bottom;
  54.       if (var4 != null || var3 != null && (var3 == null || var6 != null)) {
  55.          if (var3 != null && (var4 == null || var6 != null)) {
  56.             FontMetrics var9 = ((Component)var2).getToolkit().getFontMetrics(var6);
  57.             iconR.x = iconR.y = iconR.width = iconR.height = 0;
  58.             textR.x = textR.y = textR.width = textR.height = 0;
  59.             viewR.x = var7;
  60.             viewR.y = var8;
  61.             viewR.width = viewR.height = 32767;
  62.             this.layoutCL(var2, var9, var3, var4, viewR, iconR, textR);
  63.             int var10 = Math.min(iconR.x, textR.x);
  64.             int var11 = Math.max(iconR.x + iconR.width, textR.x + textR.width);
  65.             int var12 = Math.min(iconR.y, textR.y);
  66.             int var13 = Math.max(iconR.y + iconR.height, textR.y + textR.height);
  67.             Dimension var14 = new Dimension(var11 - var10, var13 - var12);
  68.             var14.width += var7;
  69.             var14.height += var8;
  70.             return var14;
  71.          } else {
  72.             return new Dimension(var4.getIconWidth() + var7, var4.getIconHeight() + var8);
  73.          }
  74.       } else {
  75.          return new Dimension(var7, var8);
  76.       }
  77.    }
  78.  
  79.    protected void installComponents(JLabel var1) {
  80.    }
  81.  
  82.    protected void installDefaults(JLabel var1) {
  83.       LookAndFeel.installColorsAndFont(var1, "Label.background", "Label.foreground", "Label.font");
  84.    }
  85.  
  86.    protected void installKeyboardActions(JLabel var1) {
  87.       int var2 = var1.getDisplayedMnemonic();
  88.       Component var3 = var1.getLabelFor();
  89.       ((JComponent)var1).resetKeyboardActions();
  90.       if (var2 != 0 && var3 != null) {
  91.          ((JComponent)var1).registerKeyboardAction(new PressAction(var1, var3), KeyStroke.getKeyStroke(var2, 8, false), 2);
  92.       }
  93.  
  94.    }
  95.  
  96.    protected void installListeners(JLabel var1) {
  97.       ((JComponent)var1).addPropertyChangeListener(this);
  98.    }
  99.  
  100.    public void installUI(JComponent var1) {
  101.       this.installDefaults((JLabel)var1);
  102.       this.installComponents((JLabel)var1);
  103.       this.installListeners((JLabel)var1);
  104.       this.installKeyboardActions((JLabel)var1);
  105.    }
  106.  
  107.    protected String layoutCL(JLabel var1, FontMetrics var2, String var3, Icon var4, Rectangle var5, Rectangle var6, Rectangle var7) {
  108.       return SwingUtilities.layoutCompoundLabel(var1, var2, var3, var4, var1.getVerticalAlignment(), var1.getHorizontalAlignment(), var1.getVerticalTextPosition(), var1.getHorizontalTextPosition(), var5, var6, var7, var1.getIconTextGap());
  109.    }
  110.  
  111.    public void paint(Graphics var1, JComponent var2) {
  112.       JLabel var3 = (JLabel)var2;
  113.       String var4 = var3.getText();
  114.       Icon var5 = ((Component)var3).isEnabled() ? var3.getIcon() : var3.getDisabledIcon();
  115.       if (var5 != null || var4 != null) {
  116.          FontMetrics var6 = var1.getFontMetrics();
  117.          paintViewInsets = var2.getInsets(paintViewInsets);
  118.          paintViewR.x = paintViewInsets.left;
  119.          paintViewR.y = paintViewInsets.top;
  120.          paintViewR.width = var2.getWidth() - (paintViewInsets.left + paintViewInsets.right);
  121.          paintViewR.height = var2.getHeight() - (paintViewInsets.top + paintViewInsets.bottom);
  122.          paintIconR.x = paintIconR.y = paintIconR.width = paintIconR.height = 0;
  123.          paintTextR.x = paintTextR.y = paintTextR.width = paintTextR.height = 0;
  124.          String var7 = this.layoutCL(var3, var6, var4, var5, paintViewR, paintIconR, paintTextR);
  125.          if (var5 != null) {
  126.             var5.paintIcon(var2, var1, paintIconR.x, paintIconR.y);
  127.          }
  128.  
  129.          if (var4 != null) {
  130.             int var8 = paintTextR.x;
  131.             int var9 = paintTextR.y + var6.getAscent();
  132.             if (((Component)var3).isEnabled()) {
  133.                this.paintEnabledText(var3, var1, var7, var8, var9);
  134.             } else {
  135.                this.paintDisabledText(var3, var1, var7, var8, var9);
  136.             }
  137.          }
  138.  
  139.       }
  140.    }
  141.  
  142.    protected void paintDisabledText(JLabel var1, Graphics var2, String var3, int var4, int var5) {
  143.       int var6 = var1.getDisplayedMnemonic();
  144.       Color var7 = ((Component)var1).getBackground();
  145.       var2.setColor(var7.brighter());
  146.       BasicGraphicsUtils.drawString(var2, var3, var6, var4, var5);
  147.       var2.setColor(var7.darker());
  148.       BasicGraphicsUtils.drawString(var2, var3, var6, var4 + 1, var5 + 1);
  149.    }
  150.  
  151.    protected void paintEnabledText(JLabel var1, Graphics var2, String var3, int var4, int var5) {
  152.       int var6 = var1.getDisplayedMnemonic();
  153.       var2.setColor(((Component)var1).getForeground());
  154.       BasicGraphicsUtils.drawString(var2, var3, var6, var4, var5);
  155.    }
  156.  
  157.    public void propertyChange(PropertyChangeEvent var1) {
  158.       if (var1.getPropertyName().equals("labelFor") || var1.getPropertyName().equals("displayedMnemonic")) {
  159.          this.installKeyboardActions((JLabel)((EventObject)var1).getSource());
  160.       }
  161.  
  162.    }
  163.  
  164.    protected void uninstallComponents(JLabel var1) {
  165.    }
  166.  
  167.    protected void uninstallDefaults(JLabel var1) {
  168.    }
  169.  
  170.    protected void uninstallKeyboardActions(JLabel var1) {
  171.       ((JComponent)var1).resetKeyboardActions();
  172.    }
  173.  
  174.    protected void uninstallListeners(JLabel var1) {
  175.       ((JComponent)var1).removePropertyChangeListener(this);
  176.    }
  177.  
  178.    public void uninstallUI(JComponent var1) {
  179.       this.uninstallDefaults((JLabel)var1);
  180.       this.uninstallComponents((JLabel)var1);
  181.       this.uninstallListeners((JLabel)var1);
  182.       this.uninstallKeyboardActions((JLabel)var1);
  183.    }
  184. }
  185.