@Override
public void initializeUI(UIBuilder builder) throws Exception
{
dependencyResolver = SimpleContainer.getServices(getClass().getClassLoader(), DependencyResolver.class).get();
InputComponentFactory factory = builder.getInputComponentFactory();
dbType = factory.createSelectOne("dbType", DatabaseType.class).setLabel("Database Type")
.setDescription("The database driver to be added to this project").setRequired(true)
.setNote(() -> {
return (dbType.hasValue()) ? dbType.getValue().getDriverCoordinate().toString() : null;
})
.setValueChoices(DatabaseType.getTypesWithDriverSet());
version = factory.createInput("version", String.class).setLabel("Driver Version")
.setDescription("The JDBC driver version to be used")
.setCompleter(new UICompleter<String>()
{
@Override
public Iterable<String> getCompletionProposals(UIContext context, InputComponent<?, String> input,
String value)
{
return Completers.fromValues(getVersionsFor(dbType.getValue())).getCompletionProposals(context,
input, value);
}
});
scope = factory.createSelectOne("scope", String.class).setLabel("Dependency Scope")
.setDescription("The scope this database driver dependency should use when added to this project")
.setRequired(true)
.setDefaultValue("runtime")
.setValueChoices(Arrays.asList("compile", "provided", "runtime", "test"));
builder.add(dbType).add(version).add(scope);
}