AbstractButton.java [plain text]
package javax.swing;
import java.awt.*;
import java.awt.event.*;
import javax.swing.event.*;
import javax.swing.plaf.*;
import javax.swing.text.*;
import javax.accessibility.*;
import java.util.*;
import java.beans.*;
public abstract class AbstractButton extends JComponent
implements ItemSelectable, SwingConstants
{
Icon default_icon, pressed_button, disabled_button,
selected_button, disabled_selected_button, current_icon;
String text;
int vert_align = CENTER;
int hori_align = CENTER;
int hori_text_pos = CENTER;
int vert_text_pos = CENTER;
boolean paint_border = true, paint_focus;
Action action_taken;
ButtonModel model;
Insets margin;
public static final String FOCUS_PAINTED_CHANGED_PROPERTY = "focusPainted";
protected abstract class AccessibleAbstractButton
extends AccessibleJComponent
implements AccessibleAction, AccessibleValue, AccessibleText {
protected AccessibleAbstractButton(AbstractButton component) {
super(component);
}
public AccessibleStateSet getAccessibleStateSet() {
return null; }
public String getAccessibleName() {
return null; }
public AccessibleIcon[] getAccessibleIcon() {
return null; }
public AccessibleRelationSet getAccessibleRelationSet() {
return null; }
public AccessibleAction getAccessibleAction() {
return null; }
public AccessibleValue getAccessibleValue() {
return null; }
public int getAccessibleActionCount() {
return 0; }
public String getAccessibleActionDescription(int value0) {
return null; }
public boolean doAccessibleAction(int value0) {
return false; }
public Number getCurrentAccessibleValue() {
return null; }
public boolean setCurrentAccessibleValue(Number value0) {
return false; }
public Number getMinimumAccessibleValue() {
return null; }
public Number getMaximumAccessibleValue() {
return null; }
public AccessibleText getAccessibleText() {
return null; }
public int getIndexAtPoint(Point value0) {
return 0; }
public Rectangle getCharacterBounds(int value0) {
return null; }
public int getCharCount() {
return 0; }
public int getCaretPosition() {
return 0; }
public String getAtIndex(int value0, int value1) {
return null; }
public String getAfterIndex(int value0, int value1) {
return null; }
public String getBeforeIndex(int value0, int value1) {
return null; }
public AttributeSet getCharacterAttribute(int value0) {
return null; }
public int getSelectionStart() {
return 0; }
public int getSelectionEnd() {
return 0; }
public String getSelectedText() {
return null; }
private Rectangle getTextRectangle() {
return null; }
}
static private class JFocusListener implements FocusListener
{
AbstractButton c;
JFocusListener(AbstractButton c)
{
this.c = c;
}
public void focusLost(FocusEvent event)
{
c.getModel().setArmed(false);
System.out.println("LOST FOCUS");
if (c.isFocusPainted())
{
c.repaint();
}
}
public void focusGained(FocusEvent event)
{
System.out.println("GAIN FOCUS");
}
}
AbstractButton()
{
this("",null);
}
AbstractButton(String text,
Icon icon)
{
this.text = text;
setIcon(icon);
setAlignmentX(LEFT_ALIGNMENT);
setAlignmentY(CENTER_ALIGNMENT);
addFocusListener( new JFocusListener(this) );
setModel(new DefaultButtonModel(this));
updateUI(); }
public ButtonModel getModel()
{ return model; }
public void setModel(ButtonModel newModel)
{ model = newModel; }
public String getActionCommand()
{ return getModel().getActionCommand(); }
public void setActionCommand(String aCommand)
{ getModel().setActionCommand(aCommand); }
public void addActionListener(ActionListener l)
{ getModel().addActionListener(l); }
public void removeActionListener(ActionListener l)
{ getModel().removeActionListener(l); }
public void addChangeListener(ChangeListener l)
{ getModel().addChangeListener(l); }
public void removeChangeListener(ChangeListener l)
{ getModel().removeChangeListener(l); }
public void addItemListener(ItemListener l)
{ getModel().addItemListener(l); }
public void removeItemListener(ItemListener l)
{ getModel().removeItemListener(l); }
public int getHorizontalAlignment()
{ return hori_align; }
public int getHorizontalTextPosition()
{ return hori_text_pos; }
public int getVerticalAlignment()
{ return vert_align; }
public int getVerticalTextPosition()
{ return vert_text_pos; }
protected void fireItemStateChanged(ItemEvent event)
{ getModel().fireItemStateChanged(event); }
protected void fireStateChanged(ChangeEvent event)
{ getModel().fireStateChanged(event); }
protected void fireActionPerformed(ActionEvent event)
{ getModel().fireActionPerformed(event); }
public void setVerticalAlignment(int alignment)
{ vert_align = alignment; }
public void setHorizontalAlignment(int alignment)
{ hori_align = alignment; }
public void setVerticalTextPosition(int textPosition)
{ vert_text_pos = textPosition; }
public void setHorizontalTextPosition(int textPosition)
{ hori_text_pos = textPosition; }
public int getMnemonic()
{ return getModel().getMnemonic(); }
public void setMnemonic(char mne)
{ getModel().setMnemonic(mne); }
public void setMnemonic(int mne)
{ getModel().setMnemonic(mne); }
public void setRolloverEnabled(boolean b)
{ getModel().setRollover(b); }
public boolean isRolloverEnabled()
{ return getModel().isRollover(); }
public boolean isBorderPainted()
{ return paint_border; }
public void setBorderPainted(boolean b)
{
if (b != paint_border)
{
paint_border = b;
revalidate();
repaint();
}
}
public Action getAction()
{ return action_taken; }
public void setAction(Action a)
{
action_taken = a;
revalidate();
repaint();
}
public void setSelected(boolean b)
{ getModel().setSelected(b); }
public boolean isSelected()
{ return getModel().isSelected(); }
public Icon getIcon()
{ return default_icon; }
public void setIcon(Icon defaultIcon)
{
if (default_icon == defaultIcon)
return;
default_icon = defaultIcon;
if (default_icon != null)
{
}
revalidate();
repaint();
}
public String getText()
{ return text; }
public void setLabel(String label)
{ setText(label); }
public String getLabel()
{ return getText(); }
public void setText(String text)
{
this.text = text;
revalidate();
repaint();
}
public Insets getMargin()
{ return margin; }
public void setMargin(Insets m)
{
margin = m;
revalidate();
repaint();
}
public void setEnabled(boolean b)
{
super.setEnabled(b);
getModel().setEnabled(b);
repaint();
}
public Icon getPressedIcon()
{ return pressed_button; }
public void setPressedIcon(Icon pressedIcon)
{
pressed_button = pressedIcon;
revalidate();
repaint();
}
public Icon getDisabledIcon()
{ return disabled_button; }
public void setDisabledIcon(Icon disabledIcon)
{
disabled_button = disabledIcon;
revalidate();
repaint();
}
public boolean isFocusPainted()
{ return paint_focus; }
public void setFocusPainted(boolean b)
{
boolean old = paint_focus;
paint_focus = b;
firePropertyChange(FOCUS_PAINTED_CHANGED_PROPERTY,
old,
b);
if (hasFocus())
{
revalidate();
repaint();
}
}
public boolean isFocusTraversable()
{
return true;
}
protected int checkHorizontalKey(int key, String exception)
{
return 0;
}
protected int checkVerticalKey(int key, String exception)
{
return 0;
}
protected void configurePropertiesFromAction(Action a)
{
}
protected ActionListener createActionListener()
{
return new ActionListener()
{
public void actionPerformed(ActionEvent e) { }
};
}
protected PropertyChangeListener createActionPropertyChangeListener(Action a)
{
return null;
}
protected ChangeListener createChangeListener()
{
return new ChangeListener()
{
public void stateChanged(ChangeEvent e) { }
};
}
protected ItemListener createItemListener()
{
return new ItemListener()
{
public void itemStateChanged(ItemEvent e) { }
};
}
public void doClick()
{
doClick(100);
}
public void doClick(int pressTime)
{
}
public Icon getDisabledSelectedIcon()
{
return disabled_selected_button;
}
public Icon getRolloverIcon()
{
return null;
}
Icon getRolloverSelectedIcon()
{
return null;
}
Icon getSelectedIcon()
{
return selected_button;
}
public Object[] getSelectedObjects()
{
return null;
}
public boolean imageUpdate(Image img, int infoflags, int x, int y, int w, int h)
{
return current_icon == img;
}
public boolean isContentAreaFilled()
{
return false;
}
protected void paintBorder(Graphics g)
{
if (isBorderPainted())
super.paintBorder(g);
}
protected String paramString()
{
return "AbstractButton";
}
public void setContentAreaFilled(boolean b)
{
}
public void setDisabledSelectedIcon(Icon disabledSelectedIcon)
{
}
public void setRolloverIcon(Icon rolloverIcon)
{
}
public void setRolloverSelectedIcon(Icon rolloverSelectedIcon)
{
}
public void setSelectedIcon(Icon selectedIcon)
{
}
public void setUI(ButtonUI ui)
{ super.setUI(ui);
}
public ButtonUI getUI()
{
return (ButtonUI) ui;
}
public void updateUI()
{
}
protected void processActionEvent(ActionEvent e)
{
System.out.println("PROCESS-ACTION-EVENT: " + e);
}
protected void processMouseEvent(MouseEvent e)
{
switch (e.getID())
{
case MouseEvent.MOUSE_MOVED:
{
break;
}
case MouseEvent.MOUSE_PRESSED:
{
if (! isEnabled())
{
System.out.println("button not enabled, ignoring press");
}
else
{
System.out.println("telling model:press: " + getModel());
getModel().setPressed(true);
repaint();
}
break;
}
case MouseEvent.MOUSE_RELEASED:
{
if (! isEnabled())
{
System.out.println("button not enabled, ignoring release");
}
else
{
int flags = 0;
System.out.println(" XXX--> " + getActionCommand());
fireActionPerformed(new ActionEvent(this,
ActionEvent.ACTION_PERFORMED,
getActionCommand(),
flags));
getModel().setPressed(false);
repaint();
}
break;
}
case MouseEvent.MOUSE_CLICKED:
{
break;
}
}
}
}