< prev index next >
src/java.desktop/share/classes/javax/swing/plaf/metal/MetalToolTipUI.java
Print this page
*** 63,72 ****
--- 63,74 ----
* The space between strings.
*/
public static final int padSpaceBetweenStrings = 12;
private String acceleratorDelimiter;
+ private TextUIDrawing textUIDrawing;
+
/**
* Constructs an instance of the {@code MetalToolTipUI}.
*/
public MetalToolTipUI() {
super();
*** 94,103 ****
--- 96,122 ----
public void uninstallUI(JComponent c) {
super.uninstallUI(c);
tip = null;
}
+ @Override
+ protected void installDefaults(JComponent c) {
+ super.installDefaults(c);
+ if (textUIDrawing != SwingUtilities2.DEFAULT_UI_TEXT_DRAWING
+ && textUIDrawing instanceof UIResource) {
+ textUIDrawing = SwingUtilities2.DEFAULT_UI_TEXT_DRAWING;
+ }
+ }
+
+ @Override
+ protected void uninstallDefaults(JComponent c) {
+ super.uninstallDefaults(c);
+ if (textUIDrawing instanceof UIResource) {
+ textUIDrawing = null;
+ }
+ }
+
public void paint(Graphics g, JComponent c) {
JToolTip tip = (JToolTip)c;
Font font = c.getFont();
FontMetrics metrics = SwingUtilities2.getFontMetrics(c, g, font);
Dimension size = c.getSize();
*** 125,143 ****
v.paint(g, paintTextR);
accelBL = BasicHTML.getHTMLBaseline(v, paintTextR.width,
paintTextR.height);
} else {
g.setFont(font);
! SwingUtilities2.drawString(tip, g, tipText, paintTextR.x,
paintTextR.y + metrics.getAscent());
accelBL = metrics.getAscent();
}
if (!accelString.equals("")) {
g.setFont(smallFont);
g.setColor( MetalLookAndFeel.getPrimaryControlDarkShadow() );
! SwingUtilities2.drawString(tip, g, accelString,
tip.getWidth() - 1 - insets.right
- accelSpacing
+ padSpaceBetweenStrings
- 3,
paintTextR.y + accelBL);
--- 144,162 ----
v.paint(g, paintTextR);
accelBL = BasicHTML.getHTMLBaseline(v, paintTextR.width,
paintTextR.height);
} else {
g.setFont(font);
! textUIDrawing.drawString(tip, g, tipText, paintTextR.x,
paintTextR.y + metrics.getAscent());
accelBL = metrics.getAscent();
}
if (!accelString.equals("")) {
g.setFont(smallFont);
g.setColor( MetalLookAndFeel.getPrimaryControlDarkShadow() );
! textUIDrawing.drawString(tip, g, accelString,
tip.getWidth() - 1 - insets.right
- accelSpacing
+ padSpaceBetweenStrings
- 3,
paintTextR.y + accelBL);
*** 146,156 ****
private int calcAccelSpacing(JComponent c, FontMetrics fm, String accel) {
return accel.equals("")
? 0
: padSpaceBetweenStrings +
! SwingUtilities2.stringWidth(c, fm, accel);
}
public Dimension getPreferredSize(JComponent c) {
Dimension d = super.getPreferredSize(c);
--- 165,175 ----
private int calcAccelSpacing(JComponent c, FontMetrics fm, String accel) {
return accel.equals("")
? 0
: padSpaceBetweenStrings +
! textUIDrawing.getStringWidth(c, fm, accel);
}
public Dimension getPreferredSize(JComponent c) {
Dimension d = super.getPreferredSize(c);
< prev index next >