package magic.ui.widget.M; import java.awt.Color; import java.awt.event.ActionListener; import java.awt.event.ItemListener; import javax.swing.Icon; import javax.swing.ImageIcon; import javax.swing.JCheckBox; import javax.swing.JComponent; import javax.swing.event.ChangeListener; import magic.data.MagicIcon; import magic.ui.MagicImages; import magic.ui.helpers.ImageHelper; @SuppressWarnings("serial") public class MCheckBox extends MWidget { private static final ImageIcon OFF_ICON = MagicImages.getIcon(MagicIcon.CHECKBOX_OFF); private static final ImageIcon ON_ICON = MagicImages.getIcon(MagicIcon.CHECKBOX_ON); private static final Icon DISABLED_OFF_ICON = ImageHelper.getRecoloredIcon(OFF_ICON, Color.BLACK, Color.GRAY); private static final Icon DISABLED_ON_ICON = ImageHelper.getRecoloredIcon(ON_ICON, Color.BLACK, Color.GRAY); private final JCheckBox cb = new JCheckBox(); public MCheckBox(String text, boolean selected) { cb.setText(text); cb.setSelected(selected); setIcons(); } public MCheckBox(String text) { this(text, false); } public MCheckBox() { setIcons(); } @Override public JComponent component() { return cb; } private void setIcons() { cb.setIcon(OFF_ICON); cb.setSelectedIcon(ON_ICON); cb.setDisabledIcon(DISABLED_OFF_ICON); cb.setDisabledSelectedIcon(DISABLED_ON_ICON); cb.setPressedIcon(cb.getIcon()); cb.setRolloverIcon(OFF_ICON); cb.setIconTextGap(6); } // // JCheckBox delegates // public void addItemListener(ItemListener l) { cb.addItemListener(l); } public boolean isSelected() { return cb.isSelected(); } public void setSelected(boolean b) { cb.setSelected(b); } public void setVerticalTextPosition(int i) { cb.setVerticalTextPosition(i); } public void addChangeListener(ChangeListener l) { cb.addChangeListener(l); } public void addActionListener(ActionListener l) { cb.addActionListener(l); } public String getText() { return cb.getText(); } public void setActionCommand(String s) { cb.setActionCommand(s); } public void doClick() { cb.doClick(); } }