package com.github.czyzby.lml.vis.parser.impl.tag.spinner;
import com.github.czyzby.lml.parser.LmlParser;
import com.github.czyzby.lml.parser.tag.LmlActorBuilder;
import com.github.czyzby.lml.parser.tag.LmlTag;
import com.github.czyzby.lml.vis.parser.impl.tag.builder.IntRangeLmlActorBuilder;
import com.kotcrab.vis.ui.widget.spinner.IntSpinnerModel;
import com.kotcrab.vis.ui.widget.spinner.Spinner;
import com.kotcrab.vis.ui.widget.spinner.SpinnerModel;
/** Constructs {@link Spinner} with {@link IntSpinnerModel}. Mapped to "intSpinner".
*
* @author MJ */
public class IntSpinnerLmlTag extends AbstractSpinnerLmlTag {
private IntSpinnerModel model;
public IntSpinnerLmlTag(final LmlParser parser, final LmlTag parentTag, final StringBuilder rawTagData) {
super(parser, parentTag, rawTagData);
}
@Override
protected LmlActorBuilder getNewInstanceOfBuilder() {
return new IntRangeLmlActorBuilder();
}
@Override
protected SpinnerModel createModel(final LmlActorBuilder builder) {
final IntRangeLmlActorBuilder rangeBuilder = (IntRangeLmlActorBuilder) builder;
return new IntSpinnerModel(rangeBuilder.getValue(), rangeBuilder.getMin(), rangeBuilder.getMax(),
rangeBuilder.getStep());
}
@Override
protected void handlePlainTextLine(final String plainTextLine) {
model.setValue(getParser().parseInt(plainTextLine, getActor()), false);
}
}