FileDocCategorySizeDatePackage
MetalToggleButtonUI.javaAPI DocJava SE 5 API6211Fri Aug 26 14:58:08 BST 2005javax.swing.plaf.metal

MetalToggleButtonUI

public class MetalToggleButtonUI extends BasicToggleButtonUI
MetalToggleButton implementation

Warning: Serialized objects of this class will not be compatible with future Swing releases. The current serialization support is appropriate for short term storage or RMI between applications running the same version of Swing. As of 1.4, support for long term storage of all JavaBeansTM has been added to the java.beans package. Please see {@link java.beans.XMLEncoder}.

version
1.28 04/02/04
author
Tom Santos

Fields Summary
private static final MetalToggleButtonUI
metalToggleButtonUI
protected Color
focusColor
protected Color
selectColor
protected Color
disabledTextColor
private boolean
defaults_initialized
Constructors Summary
Methods Summary
public static javax.swing.plaf.ComponentUIcreateUI(javax.swing.JComponent b)


    // ********************************
    //        Create PLAF
    // ********************************
         
        return metalToggleButtonUI;
    
protected java.awt.ColorgetDisabledTextColor()

	return disabledTextColor;
    
protected java.awt.ColorgetFocusColor()

	return focusColor;
    
protected java.awt.ColorgetSelectColor()

	return selectColor;
    
public voidinstallDefaults(javax.swing.AbstractButton b)

        super.installDefaults(b);
	if(!defaults_initialized) {
	    focusColor = UIManager.getColor(getPropertyPrefix() + "focus");
	    selectColor = UIManager.getColor(getPropertyPrefix() + "select");
	    disabledTextColor = UIManager.getColor(getPropertyPrefix() + "disabledText");
	    defaults_initialized = true;
	}
    
protected voidpaintButtonPressed(java.awt.Graphics g, javax.swing.AbstractButton b)

        if ( b.isContentAreaFilled() ) {
	    g.setColor(getSelectColor());
	    g.fillRect(0, 0, b.getWidth(), b.getHeight());
	}
    
protected voidpaintFocus(java.awt.Graphics g, javax.swing.AbstractButton b, java.awt.Rectangle viewRect, java.awt.Rectangle textRect, java.awt.Rectangle iconRect)


        Rectangle focusRect = new Rectangle();
	String text = b.getText();
	boolean isIcon = b.getIcon() != null;

        // If there is text
        if ( text != null && !text.equals( "" ) ) {
  	    if ( !isIcon ) {
	        focusRect.setBounds( textRect );
	    }
	    else {
	        focusRect.setBounds( iconRect.union( textRect ) );
	    }
        }
        // If there is an icon and no text
        else if ( isIcon ) {
  	    focusRect.setBounds( iconRect );
        }

        g.setColor(getFocusColor());
	g.drawRect((focusRect.x-1), (focusRect.y-1),
		  focusRect.width+1, focusRect.height+1);
	
    
protected voidpaintIcon(java.awt.Graphics g, javax.swing.AbstractButton b, java.awt.Rectangle iconRect)
Paints the appropriate icon of the button b in the space iconRect.

param
g Graphics to paint to
param
b Button to render for
param
iconRect space to render in
throws
NullPointerException if any of the arguments are null.
since
1.5

        super.paintIcon(g, b, iconRect);
    
protected voidpaintText(java.awt.Graphics g, javax.swing.JComponent c, java.awt.Rectangle textRect, java.lang.String text)

	AbstractButton b = (AbstractButton) c;			     
	ButtonModel model = b.getModel();
	FontMetrics fm = SwingUtilities2.getFontMetrics(b, g);
        int mnemIndex = b.getDisplayedMnemonicIndex();

	/* Draw the Text */
	if(model.isEnabled()) {
	    /*** paint the text normally */
	    g.setColor(b.getForeground());
	}
	else {
	    /*** paint the text disabled ***/
	    if (model.isSelected()) {
		g.setColor(c.getBackground());
	    } else {
	        g.setColor(getDisabledTextColor());
	    }
        }
        SwingUtilities2.drawStringUnderlineCharAt(c, g, text, mnemIndex,
                textRect.x, textRect.y + fm.getAscent());
    
protected voiduninstallDefaults(javax.swing.AbstractButton b)

	super.uninstallDefaults(b);
	defaults_initialized = false;
    
public voidupdate(java.awt.Graphics g, javax.swing.JComponent c)
If necessary paints the background of the component, then invokes paint.

param
g Graphics to paint to
param
c JComponent painting on
throws
NullPointerException if g or c is null
see
javax.swing.plaf.ComponentUI#update
see
javax.swing.plaf.ComponentUI#paint
since
1.5

        AbstractButton button = (AbstractButton)c;
        if ((c.getBackground() instanceof UIResource) &&
                        button.isContentAreaFilled() && c.isEnabled()) {
            ButtonModel model = button.getModel();
            if (!MetalUtils.isToolBarButton(c)) {
                if (!model.isArmed() && !model.isPressed() &&
                        MetalUtils.drawGradient(
                        c, g, "ToggleButton.gradient", 0, 0, c.getWidth(),
                        c.getHeight(), true)) {
                    paint(g, c);
                    return;
                }
            }
            else if ((model.isRollover() || model.isSelected()) &&
                        MetalUtils.drawGradient(c, g, "ToggleButton.gradient",
                        0, 0, c.getWidth(), c.getHeight(), true)) {
                paint(g, c);
                return;
            }
        }
        super.update(g, c);