package io.github.minecraftgui.models.components;
import io.github.minecraftgui.controllers.Mouse;
import io.github.minecraftgui.models.listeners.OnClickListener;
import io.github.minecraftgui.models.shapes.Shape;
/**
* Created by Samuel on 2015-11-21.
*/
public class CheckBox extends ComponentValuable<Boolean> {
private boolean value = false;
private final Shape shapeOnValueTrue;
private final Shape shapeOnValueFalse;
public CheckBox(String id, Class<? extends Shape> shapeOnValueFalse, Class<? extends Shape> shapeOnValueTrue) {
super(id, shapeOnValueFalse);
this.shapeOnValueFalse = this.shape;
this.shapeOnValueTrue = getShapeByClass(shapeOnValueTrue);
this.addOnClickListener(new OnClickListener() {
@Override
public void onClick(Component component, Mouse mouse) {
setChecked(!value);
}
});
}
public void setChecked(boolean value) {
this.value = value;
if (value)
shape = shapeOnValueTrue;
else
shape = shapeOnValueFalse;
valueChanged();
}
public Shape getShapeOnValueTrue() {
return shapeOnValueTrue;
}
public Shape getShapeOnValueFalse() {
return shapeOnValueFalse;
}
@Override
public Boolean getValue() {
return value;
}
@Override
public void setValue(Boolean value) {
setChecked(value);
}
}