package org.ripple.power.ui; import java.awt.Color; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.Insets; import java.awt.RenderingHints; import javax.swing.Action; import javax.swing.BorderFactory; import javax.swing.Icon; import javax.swing.JButton; import org.bootstrap.ui.ButtonUI; import org.ripple.power.ui.view.SoundButtonListener; import org.ripple.power.utils.GraphicsUtils; public class RPButton extends JButton { /** * */ private static final long serialVersionUID = 1L; protected Color selectColor = Color.decode("#EBEBEB"); protected Color focusColor = Color.decode("#EBEBEB"); protected Color disabledTextColor = Color.decode("#878787"); private boolean isLeftNode = false; private boolean isRightNode = false; private RPButtonGroup btnGroup = null; public void setSelectColor(Color selectColor) { this.selectColor = selectColor; } public Color getSelectColor() { return selectColor; } public Color getFocusColor() { return focusColor; } public void setFocusColor(Color focusColor) { this.focusColor = focusColor; } public Color getDisabledTextColor() { return disabledTextColor; } public void setDisabledTextColor(Color disabledTextColor) { this.disabledTextColor = disabledTextColor; } public boolean isLeftNode() { return isLeftNode; } public void setLeftNode(boolean isLeftNode) { this.isLeftNode = isLeftNode; } public boolean isRightNode() { return isRightNode; } public void setRightNode(boolean isRightNode) { this.isRightNode = isRightNode; } public RPButtonGroup getBtnGroup() { return btnGroup; } public void setBtnGroup(RPButtonGroup btnGroup) { this.btnGroup = btnGroup; } public RPButton() { this(null, null); } public RPButton(Action a) { this(); setAction(a); } public RPButton(Icon icon) { this(null, icon); } public RPButton(String text) { this(text, null); } public RPButton(String text, Icon icon) { super(text, icon); setOpaque(false); setBackground(Color.WHITE); setFont(getFont().deriveFont(16f)); setBorder(BorderFactory.createEmptyBorder()); if (text == null) { setMargin(new Insets(0, 10, 0, 10)); } ButtonUI navUI = new ButtonUI(); setUI(navUI); addMouseListener(new SoundButtonListener(this)); } @Override public void paintComponent(Graphics g) { Graphics2D g2d = (Graphics2D) g; if (g != null) { g2d.setRenderingHints(GraphicsUtils.VALUE_TEXT_ANTIALIAS_ON); g2d.setRenderingHints(GraphicsUtils.VALUE_ANTIALIAS_ON); g2d.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BICUBIC); g2d.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON); } super.paintComponent(g2d); g2d.dispose(); } }