package com.github.czyzby.lml.vis.parser.impl.tag.spinner;
import com.github.czyzby.kiwi.util.gdx.scene2d.Actors;
import com.github.czyzby.lml.parser.LmlParser;
import com.github.czyzby.lml.parser.impl.tag.builder.FloatRangeLmlActorBuilder;
import com.github.czyzby.lml.parser.tag.LmlActorBuilder;
import com.github.czyzby.lml.parser.tag.LmlTag;
import com.kotcrab.vis.ui.widget.spinner.SimpleFloatSpinnerModel;
import com.kotcrab.vis.ui.widget.spinner.Spinner;
import com.kotcrab.vis.ui.widget.spinner.SpinnerModel;
/** Constructs {@link Spinner} with {@link SimpleFloatSpinnerModel}. Mapped to "simpleFloatSpinner".
*
* @author MJ */
public class SimpleFloatSpinnerLmlTag extends AbstractSpinnerLmlTag {
private SimpleFloatSpinnerModel model;
public SimpleFloatSpinnerLmlTag(final LmlParser parser, final LmlTag parentTag, final StringBuilder rawTagData) {
super(parser, parentTag, rawTagData);
}
@Override
protected LmlActorBuilder getNewInstanceOfBuilder() {
final FloatRangeLmlActorBuilder rangeBuilder = new FloatRangeLmlActorBuilder();
rangeBuilder.setStyleName(Actors.DEFAULT_STYLE);
return rangeBuilder;
}
@Override
protected SpinnerModel createModel(final LmlActorBuilder builder) {
final FloatRangeLmlActorBuilder rangeBuilder = (FloatRangeLmlActorBuilder) builder;
return model = new SimpleFloatSpinnerModel(rangeBuilder.getValue(), rangeBuilder.getMin(),
rangeBuilder.getMax(), rangeBuilder.getStepSize(), 2);
}
@Override
protected void handlePlainTextLine(final String plainTextLine) {
model.setValue(getParser().parseFloat(plainTextLine, getActor()), false);
}
}