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 / BasicToolTipUI.class (.txt) < prev    next >
Encoding:
Java Class File  |  1979-12-31  |  4.1 KB  |  141 lines

  1. package javax.swing.plaf.basic;
  2.  
  3. import java.awt.Component;
  4. import java.awt.Dimension;
  5. import java.awt.Font;
  6. import java.awt.FontMetrics;
  7. import java.awt.Graphics;
  8. import java.awt.Insets;
  9. import java.awt.Rectangle;
  10. import java.awt.Toolkit;
  11. import java.beans.PropertyChangeListener;
  12. import javax.swing.JComponent;
  13. import javax.swing.JToolTip;
  14. import javax.swing.LookAndFeel;
  15. import javax.swing.SwingUtilities;
  16. import javax.swing.plaf.ComponentUI;
  17. import javax.swing.plaf.ToolTipUI;
  18. import javax.swing.text.View;
  19.  
  20. public class BasicToolTipUI extends ToolTipUI {
  21.    static BasicToolTipUI sharedInstance = new BasicToolTipUI();
  22.    private PropertyChangeListener propertyChangeListener;
  23.  
  24.    public static ComponentUI createUI(JComponent var0) {
  25.       return sharedInstance;
  26.    }
  27.  
  28.    public void installUI(JComponent var1) {
  29.       this.installDefaults(var1);
  30.       this.installComponents(var1);
  31.       this.installListeners(var1);
  32.    }
  33.  
  34.    public void uninstallUI(JComponent var1) {
  35.       this.uninstallDefaults(var1);
  36.       this.uninstallComponents(var1);
  37.       this.uninstallListeners(var1);
  38.    }
  39.  
  40.    protected void installDefaults(JComponent var1) {
  41.       LookAndFeel.installColorsAndFont(var1, "ToolTip.background", "ToolTip.foreground", "ToolTip.font");
  42.       LookAndFeel.installBorder(var1, "ToolTip.border");
  43.    }
  44.  
  45.    protected void uninstallDefaults(JComponent var1) {
  46.       LookAndFeel.uninstallBorder(var1);
  47.    }
  48.  
  49.    private void installComponents(JComponent var1) {
  50.       BasicHTML.updateRenderer(var1, ((JToolTip)var1).getTipText());
  51.    }
  52.  
  53.    private void uninstallComponents(JComponent var1) {
  54.       BasicHTML.updateRenderer(var1, "");
  55.    }
  56.  
  57.    protected void installListeners(JComponent var1) {
  58.       this.propertyChangeListener = this.createPropertyChangeListener(var1);
  59.       var1.addPropertyChangeListener(this.propertyChangeListener);
  60.    }
  61.  
  62.    protected void uninstallListeners(JComponent var1) {
  63.       var1.removePropertyChangeListener(this.propertyChangeListener);
  64.       this.propertyChangeListener = null;
  65.    }
  66.  
  67.    private PropertyChangeListener createPropertyChangeListener(JComponent var1) {
  68.       return new PropertyChangeHandler(this, (1)null);
  69.    }
  70.  
  71.    public void paint(Graphics var1, JComponent var2) {
  72.       Font var3 = ((Component)var2).getFont();
  73.       FontMetrics var4 = Toolkit.getDefaultToolkit().getFontMetrics(var3);
  74.       Dimension var5 = ((Component)var2).getSize();
  75.       var1.setColor(((Component)var2).getBackground());
  76.       var1.fillRect(0, 0, var5.width, var5.height);
  77.       var1.setColor(((Component)var2).getForeground());
  78.       var1.setFont(var3);
  79.       String var6 = ((JToolTip)var2).getTipText();
  80.       if (var6 == null) {
  81.          var6 = "";
  82.       }
  83.  
  84.       View var7 = (View)var2.getClientProperty("html");
  85.       if (var7 != null) {
  86.          Rectangle var8 = ((Component)var2).getBounds();
  87.          Insets var9 = var2.getInsets();
  88.          var8.x += var9.left;
  89.          var8.y += var9.top;
  90.          var8.width -= var9.left + var9.right;
  91.          var8.height -= var9.top + var9.bottom;
  92.          var7.paint(var1, var8);
  93.       } else {
  94.          var1.drawString(var6, 3, 2 + var4.getAscent());
  95.       }
  96.  
  97.    }
  98.  
  99.    public Dimension getPreferredSize(JComponent var1) {
  100.       Font var2 = ((Component)var1).getFont();
  101.       FontMetrics var3 = Toolkit.getDefaultToolkit().getFontMetrics(var2);
  102.       Insets var4 = var1.getInsets();
  103.       Dimension var5 = new Dimension(var4.left + var4.right, var4.top + var4.bottom);
  104.       String var6 = ((JToolTip)var1).getTipText();
  105.       if (var6 != null && !var6.equals("")) {
  106.          View var7 = var1 != null ? (View)var1.getClientProperty("html") : null;
  107.          if (var7 != null) {
  108.             var5.width += (int)var7.getPreferredSpan(0);
  109.             var5.height += (int)var7.getPreferredSpan(1);
  110.          } else {
  111.             var5.width += SwingUtilities.computeStringWidth(var3, var6) + 6;
  112.             var5.height += var3.getHeight() + 4;
  113.          }
  114.       } else {
  115.          var6 = "";
  116.       }
  117.  
  118.       return var5;
  119.    }
  120.  
  121.    public Dimension getMinimumSize(JComponent var1) {
  122.       Dimension var2 = this.getPreferredSize(var1);
  123.       View var3 = (View)var1.getClientProperty("html");
  124.       if (var3 != null) {
  125.          var2.width = (int)((float)var2.width - (var3.getPreferredSpan(0) - var3.getMinimumSpan(0)));
  126.       }
  127.  
  128.       return var2;
  129.    }
  130.  
  131.    public Dimension getMaximumSize(JComponent var1) {
  132.       Dimension var2 = this.getPreferredSize(var1);
  133.       View var3 = (View)var1.getClientProperty("html");
  134.       if (var3 != null) {
  135.          var2.width = (int)((float)var2.width + (var3.getMaximumSpan(0) - var3.getPreferredSpan(0)));
  136.       }
  137.  
  138.       return var2;
  139.    }
  140. }
  141.