package org.basex.gui.layout; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JCheckBox; import org.basex.gui.dialog.Dialog; /** * Project specific CheckBox implementation. * * @author BaseX Team 2005-12, BSD License * @author Christian Gruen */ public final class BaseXCheckBox extends JCheckBox { /** * Default constructor. * @param txt checkbox text * @param sel initial selection state * @param win parent window */ public BaseXCheckBox(final String txt, final boolean sel, final Window win) { this(txt, sel, 1, win); } /** * Default constructor. * @param label button title * @param sel initial selection state * @param dist distance to next component * @param win parent window */ public BaseXCheckBox(final String label, final boolean sel, final int dist, final Window win) { super(label, sel); setOpaque(false); setMargin(new Insets(0, 0, dist, 0)); if(dist == 0) setFont(getFont().deriveFont(1)); BaseXLayout.addInteraction(this, win); if(!(win instanceof Dialog)) return; addActionListener(new ActionListener() { @Override public void actionPerformed(final ActionEvent e) { ((Dialog) win).action(e.getSource()); } }); } /** * Chooses a large font. * @return self reference */ public BaseXCheckBox large() { final Font f = getFont(); setFont(new Font(f.getName(), Font.PLAIN, (int) f.getSize2D() + 4)); return this; } }