package de.lessvoid.nifty.builder; import de.lessvoid.nifty.Nifty; import de.lessvoid.nifty.controls.Controller; import de.lessvoid.nifty.controls.dynamic.ControlDefinitionCreator; import de.lessvoid.nifty.loaderv2.types.ControlDefinitionType; import javax.annotation.Nonnull; public class ControlDefinitionBuilder extends ElementBuilder { @Nonnull private final ControlDefinitionCreator creator; private ControlDefinitionBuilder(@Nonnull final ControlDefinitionCreator creator) { super(creator); this.creator = creator; } public ControlDefinitionBuilder(@Nonnull String name) { this(new ControlDefinitionCreator(name)); } @Override public void controller(@Nonnull final Controller controller) { creator.setController(controller.getClass().getName()); } @Override public void controller(@Nonnull final String controllerClass) { creator.setController(controllerClass); } @Nonnull public String controlParameter(@Nonnull final String parameterName) { return "$" + parameterName; } public void registerControlDefintion(@Nonnull final Nifty nifty) { ControlDefinitionType controlDefinitionType = (ControlDefinitionType) buildElementType(); if (controlDefinitionType != null) { controlDefinitionType.translateSpecialValues(nifty, null); controlDefinitionType.makeFlat(); nifty.registerControlDefintion(controlDefinitionType); } } }