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

  1. package com.sun.java.swing.plaf.metal;
  2.  
  3. import com.sun.java.swing.JComponent;
  4. import com.sun.java.swing.JToolTip;
  5. import com.sun.java.swing.KeyStroke;
  6. import com.sun.java.swing.plaf.ComponentUI;
  7. import com.sun.java.swing.plaf.basic.BasicToolTipUI;
  8. import java.awt.Component;
  9. import java.awt.Dimension;
  10. import java.awt.Font;
  11. import java.awt.FontMetrics;
  12. import java.awt.Graphics;
  13. import java.awt.Toolkit;
  14.  
  15. public class MetalToolTipUI extends BasicToolTipUI {
  16.    static MetalToolTipUI sharedInstance = new MetalToolTipUI();
  17.    Font smallFont;
  18.    static JToolTip tip;
  19.    public static final int padSpaceBetweenStrings = 12;
  20.  
  21.    public static ComponentUI createUI(JComponent var0) {
  22.       return sharedInstance;
  23.    }
  24.  
  25.    public void installUI(JComponent var1) {
  26.       super.installUI(var1);
  27.       tip = (JToolTip)var1;
  28.       Font var2 = ((Component)var1).getFont();
  29.       this.smallFont = new Font(var2.getName(), var2.getStyle(), var2.getSize() - 2);
  30.    }
  31.  
  32.    public void paint(Graphics var1, JComponent var2) {
  33.       FontMetrics var3 = Toolkit.getDefaultToolkit().getFontMetrics(var1.getFont());
  34.       Dimension var4 = ((Component)var2).getSize();
  35.       var1.setColor(((Component)var2).getBackground());
  36.       var1.fillRect(0, 0, var4.width, var4.height);
  37.       var1.setColor(((Component)var2).getForeground());
  38.       String var5 = ((JToolTip)var2).getTipText();
  39.       String var6 = this.getAcceleratorString();
  40.       var1.drawString(var5, 3, 2 + var3.getAscent());
  41.       if (!var6.equals("")) {
  42.          var1.setFont(this.smallFont);
  43.          var1.setColor(MetalLookAndFeel.getPrimaryControlDarkShadow());
  44.          var1.drawString(var6, var3.stringWidth(var5) + 3 + 12, 2 + var3.getAscent());
  45.       }
  46.  
  47.    }
  48.  
  49.    public Dimension getPreferredSize(JComponent var1) {
  50.       FontMetrics var2 = Toolkit.getDefaultToolkit().getFontMetrics(((Component)var1).getFont());
  51.       Dimension var3 = new Dimension(var2.stringWidth(((JToolTip)var1).getTipText()) + 6, var2.getHeight() + 4);
  52.       String var4 = this.getAcceleratorString();
  53.       if (!var4.equals("")) {
  54.          var2 = Toolkit.getDefaultToolkit().getFontMetrics(this.smallFont);
  55.          var3.width += var2.stringWidth(var4) + 12;
  56.       }
  57.  
  58.       return var3;
  59.    }
  60.  
  61.    public String getAcceleratorString() {
  62.       KeyStroke[] var1 = tip.getComponent().getRegisteredKeyStrokes();
  63.       String var2 = "";
  64.  
  65.       for(int var3 = 0; var3 < var1.length; ++var3) {
  66.          var1[var3].getKeyCode();
  67.          int var4 = var1[var3].getModifiers();
  68.          if (var4 == 2) {
  69.             var2 = "cntl+" + (char)var1[var3].getKeyCode();
  70.             break;
  71.          }
  72.  
  73.          if (var4 == 8) {
  74.             var2 = "alt+" + (char)var1[var3].getKeyCode();
  75.             break;
  76.          }
  77.       }
  78.  
  79.       return var2;
  80.    }
  81. }
  82.