package org.ripple.power.ui;
import javax.swing.Action;
import javax.swing.BorderFactory;
import javax.swing.ButtonModel;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.border.Border;
import javax.swing.border.CompoundBorder;
import javax.swing.border.EmptyBorder;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import org.ripple.power.ui.graphics.LColor;
public class RPCButton extends JButton {
/**
*
*/
private static final long serialVersionUID = 1L;
public RPCButton() {
this("");
}
private void initString() {
setForeground(new LColor(255, 255, 255));
setBackground(new LColor(18, 18, 18));
setContentAreaFilled(true);
setFocusPainted(false);
Border line = BorderFactory.createLineBorder(new LColor(80, 80, 80));
Border empty = new EmptyBorder(4, 4, 4, 4);
CompoundBorder border = new CompoundBorder(line, empty);
setBorder(border);
getModel().addChangeListener(new ChangeListener() {
@Override
public void stateChanged(ChangeEvent e) {
ButtonModel model = (ButtonModel) e.getSource();
if (model.isRollover()) {
setBackground(new LColor(120, 20, 20));
} else if (model.isArmed() || model.isPressed()) {
setBackground(new LColor(0, 0, 0));
} else if (model.isSelected()) {
setBackground(new LColor(0, 0, 0));
} else {
setBackground(new LColor(18, 18, 18));
}
}
});
}
private void initImage() {
setForeground(LColor.black);
setBackground(LColor.white);
setContentAreaFilled(true);
setFocusPainted(false);
Border line = BorderFactory.createLineBorder(new LColor(80, 80, 80));
Border empty = new EmptyBorder(4, 4, 4, 4);
CompoundBorder border = new CompoundBorder(line, empty);
setBorder(border);
getModel().addChangeListener(new ChangeListener() {
@Override
public void stateChanged(ChangeEvent e) {
ButtonModel model = (ButtonModel) e.getSource();
if (model.isRollover()) {
setBackground(LColor.lightSkyBlue);
} else if (model.isArmed() || model.isPressed()) {
setBackground(LColor.lightSkyBlue);
} else if (model.isSelected()) {
setBackground(LColor.white);
} else {
setBackground(LColor.white);
}
}
});
}
public RPCButton(String name) {
super(name);
initString();
}
public RPCButton(Action action) {
super(action);
initString();
}
public RPCButton(ImageIcon icon) {
super(icon);
initImage();
}
}