/*
* #######################################################
*
* Copyright (c) 2013, A. Weinberger. All rights reserved.
* --------------------------------------------------------
*/
package ale.view.gui.editor.fields;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.BorderFactory;
import javax.swing.JCheckBox;
import ale.view.gui.GUIConstants;
import ale.view.gui.util.VerticalLayout;
public abstract class CheckField extends Field {
private static final long serialVersionUID = 1L;
private static final int FIELDHEIGHT = 48;
public CheckField(boolean initialValue, Color bg, String fieldTitle, String checkboxFunction) {
if (bg == null) {
setBackground(Color.WHITE);
}
if (fieldTitle == null) {
fieldTitle = "";
}
if (checkboxFunction == null) {
checkboxFunction = "";
}
create(initialValue, bg, fieldTitle, checkboxFunction);
}
public abstract void btnPressed(boolean selected);
private void create(boolean initialValue, Color bg, String fieldTitle, String checkboxFunction) {
setBackground(bg);
setPreferredSize(new Dimension(GUIConstants.DEFAULT_FIELD_WIDTH, FIELDHEIGHT));
setLayout(new VerticalLayout(0, VerticalLayout.CENTER));
setBorder(BorderFactory.createTitledBorder(fieldTitle));
final JCheckBox checkbox = new JCheckBox();
checkbox.setText(checkboxFunction);
checkbox.setBackground(bg);
checkbox.setSelected(initialValue);
checkbox.addMouseListener(new MouseAdapter() {
@Override
public void mousePressed(MouseEvent e) {
btnPressed(!checkbox.isSelected());
}
});
this.add(checkbox);
}
}