package xapi.jre.ui.impl;
import com.github.javaparser.ast.expr.UiContainerExpr;
import javafx.scene.control.Button;
import xapi.dev.source.MethodBuffer;
import xapi.dev.source.SourceBuilder;
import xapi.dev.ui.ContainerMetadata;
import xapi.dev.ui.UiComponentGenerator;
import xapi.dev.ui.UiGeneratorTools;
import xapi.dev.ui.UiVisitScope;
/**
* Created by james on 6/17/16.
*/
public class JavaFxButtonComponentGenerator extends UiComponentGenerator {
public JavaFxButtonComponentGenerator() {
}
@Override
public UiVisitScope startVisit(
UiGeneratorTools service, ContainerMetadata me, UiContainerExpr n
) {
String parentName = me.peekPanelName();
final MethodBuffer mb = me.getMethod(parentName);
final SourceBuilder<?> out = me.getSourceBuilder();
String button = out.addImport(Button.class);
String ref = me.getRefName("button");
mb.println(button + " " + ref + " = new " + button + "();");
mb.println(parentName + ".getChildren().add(" + ref + ");");
me.pushPanelName(ref);
me.saveMethod(ref, mb);
return super.startVisit(service, me, n);
}
@Override
public void endVisit(
UiGeneratorTools service, ContainerMetadata me, UiContainerExpr n,
UiVisitScope scope
) {
String pop = me.popPanelName();
me.removeMethod(pop);
super.endVisit(service, me, n, scope);
}
}