package com.github.czyzby.lml.vis.parser.impl.tag;
import com.badlogic.gdx.scenes.scene2d.ui.Window;
import com.badlogic.gdx.scenes.scene2d.ui.Window.WindowStyle;
import com.github.czyzby.lml.parser.LmlParser;
import com.github.czyzby.lml.parser.impl.tag.actor.WindowLmlTag;
import com.github.czyzby.lml.parser.impl.tag.builder.TextLmlActorBuilder;
import com.github.czyzby.lml.parser.tag.LmlTag;
import com.github.czyzby.lml.vis.parser.impl.tag.builder.VisWindowLmlActorBuilder;
import com.kotcrab.vis.ui.widget.VisWindow;
/** Handles {@link VisWindow} actors. Processes children like a regular window tag. Mapped to "window", "visWindow".
*
* @author MJ */
public class VisWindowLmlTag extends WindowLmlTag {
public VisWindowLmlTag(final LmlParser parser, final LmlTag parentTag, final StringBuilder rawTagData) {
super(parser, parentTag, rawTagData);
}
@Override
protected TextLmlActorBuilder getNewInstanceOfBuilder() {
return new VisWindowLmlActorBuilder();
}
@Override
protected final Window getNewInstanceOfWindow(final TextLmlActorBuilder builder) {
return getNewInstanceOfVisWindow((VisWindowLmlActorBuilder) builder);
}
/** @param builder contains data necessary to build {@link VisWindow}.
* @return a new instance of {@link VisWindow}. */
protected VisWindow getNewInstanceOfVisWindow(final VisWindowLmlActorBuilder builder) {
final VisWindow window = new VisWindow(builder.getText(),
getSkin(builder).get(builder.getStyleName(), WindowStyle.class));
window.setSkin(getSkin(builder));
return window;
}
}