/*
 * Copyright (c) 1995-1997 Sun Microsystems, Inc. All Rights Reserved.
 *
 * Permission to use, copy, modify, and distribute this software
 * and its documentation for NON-COMMERCIAL purposes and without
 * fee is hereby granted provided that this copyright notice
 * appears in all copies. Please refer to the file "copyright.html"
 * for further important copyright and licensing information.
 *
 * SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF
 * THE SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
 * TO THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
 * PARTICULAR PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR
 * ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR
 * DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES.
 */
package bingo.player;

import java.awt.*;
import com.sun.java.swing.*;
import com.sun.java.swing.event.*;

class NumberButton extends JToggleButton 
		   implements ChangeListener {
    static protected Font font;
    static protected ImageIcon selectedIcon, invisibleIcon;

    NumberButton(String label) {
	super(label);
	setHorizontalTextPosition(AbstractButton.CENTER);
	setFocusPainted(false);
	setBorderPainted(false);

	if (font == null) {
	    font = new Font("serif", Font.BOLD, 24);
 	}
	setFont(font);

	if (selectedIcon == null) {
	    selectedIcon = new ImageIcon("chit.gif");
	}
	setSelectedIcon(selectedIcon);

	//In 0.5, the selected or pressed or rollover icons never 
	//get shown unless setIcon has been called.
	//This is a bug.  The workaround is to create
	//a transparent, full-sized icon for the default icon.
	if (invisibleIcon == null) {
	    invisibleIcon = new ImageIcon("invisible.gif");
	}

	setIcon(invisibleIcon);
    }

    public void stateChanged(ChangeEvent e) {
        NumberButton button = (NumberButton)e.getSource();
        if (button.isSelected()) {
            setIcon(selectedIcon);
        } else {
            setIcon(null);
	}
    }    
}
