Search in sources :

Example 11 with Ui

use of org.talend.sdk.component.form.model.Ui in project component-runtime by Talend.

the class UiSpecService method convert.

private CompletionStage<Ui> convert(final Supplier<String> displayName, final Supplier<String> family, final Supplier<Collection<SimplePropertyDefinition>> properties, final Supplier<Collection<ActionReference>> actions, final Predicate<SimplePropertyDefinition> isRootProperty) {
    final Collection<SimplePropertyDefinition> props = properties.get();
    final Ui ui = new Ui();
    ui.setUiSchema(new ArrayList<>());
    ui.setProperties(new HashMap<>());
    ui.setJsonSchema(new JsonSchema());
    ui.getJsonSchema().setTitle(displayName.get());
    ui.getJsonSchema().setType("object");
    ui.getJsonSchema().setRequired(props.stream().filter(isRootProperty).filter(p -> new PropertyContext(p).isRequired()).map(SimplePropertyDefinition::getName).collect(toSet()));
    final JsonSchemaConverter jsonSchemaConverter = new JsonSchemaConverter(jsonb, ui.getJsonSchema(), props);
    final UiSchemaConverter uiSchemaConverter = new UiSchemaConverter(null, family.get(), ui.getUiSchema(), new ArrayList<>(), client, props, actions.get());
    final PropertiesConverter propertiesConverter = new PropertiesConverter(jsonb, Map.class.cast(ui.getProperties()), props);
    return CompletableFuture.allOf(props.stream().filter(Objects::nonNull).filter(isRootProperty).map(PropertyContext::new).map(CompletableFuture::completedFuture).map(jsonSchemaConverter::convert).map(uiSchemaConverter::convert).map(propertiesConverter::convert).toArray(CompletableFuture[]::new)).thenApply(r -> ui);
}
Also used : PropertiesConverter(org.talend.sdk.component.form.internal.converter.impl.PropertiesConverter) HashMap(java.util.HashMap) CompletableFuture(java.util.concurrent.CompletableFuture) PropertyContext(org.talend.sdk.component.form.internal.converter.PropertyContext) Supplier(java.util.function.Supplier) JsonbConfig(javax.json.bind.JsonbConfig) ArrayList(java.util.ArrayList) ComponentDetail(org.talend.sdk.component.server.front.model.ComponentDetail) ActionReference(org.talend.sdk.component.server.front.model.ActionReference) Map(java.util.Map) JsonSchemaConverter(org.talend.sdk.component.form.internal.converter.impl.JsonSchemaConverter) Collectors.toSet(java.util.stream.Collectors.toSet) JsonbBuilder(javax.json.bind.JsonbBuilder) Iterator(java.util.Iterator) Predicate(java.util.function.Predicate) Collection(java.util.Collection) JsonSchema(org.talend.sdk.component.form.model.jsonschema.JsonSchema) Objects(java.util.Objects) Slf4j(lombok.extern.slf4j.Slf4j) CompletionStage(java.util.concurrent.CompletionStage) SimplePropertyDefinition(org.talend.sdk.component.server.front.model.SimplePropertyDefinition) Ui(org.talend.sdk.component.form.model.Ui) UiSchemaConverter(org.talend.sdk.component.form.internal.converter.impl.UiSchemaConverter) Jsonb(javax.json.bind.Jsonb) ConfigTypeNode(org.talend.sdk.component.server.front.model.ConfigTypeNode) SimplePropertyDefinition(org.talend.sdk.component.server.front.model.SimplePropertyDefinition) JsonSchema(org.talend.sdk.component.form.model.jsonschema.JsonSchema) UiSchemaConverter(org.talend.sdk.component.form.internal.converter.impl.UiSchemaConverter) CompletableFuture(java.util.concurrent.CompletableFuture) JsonSchemaConverter(org.talend.sdk.component.form.internal.converter.impl.JsonSchemaConverter) Ui(org.talend.sdk.component.form.model.Ui) PropertyContext(org.talend.sdk.component.form.internal.converter.PropertyContext) PropertiesConverter(org.talend.sdk.component.form.internal.converter.impl.PropertiesConverter) HashMap(java.util.HashMap) Map(java.util.Map)

Example 12 with Ui

use of org.talend.sdk.component.form.model.Ui in project component-runtime by Talend.

the class UiSpecServiceTest method defaultValues.

@Test
void defaultValues() throws Exception {
    final Ui payload = service.convert(load("rest-api.json")).toCompletableFuture().get();
    assertEquals(10000., read(payload.getProperties(), "tableDataSet.limit"));
}
Also used : Ui(org.talend.sdk.component.form.model.Ui) Test(org.junit.jupiter.api.Test)

Aggregations

Ui (org.talend.sdk.component.form.model.Ui)12 Test (org.junit.jupiter.api.Test)11 UiSchema (org.talend.sdk.component.form.model.uischema.UiSchema)7 ArrayList (java.util.ArrayList)6 JsonbConfig (javax.json.bind.JsonbConfig)6 JsonSchema (org.talend.sdk.component.form.model.jsonschema.JsonSchema)6 Collection (java.util.Collection)5 HashMap (java.util.HashMap)5 Iterator (java.util.Iterator)5 Map (java.util.Map)5 TreeMap (java.util.TreeMap)5 CompletableFuture (java.util.concurrent.CompletableFuture)5 CompletionStage (java.util.concurrent.CompletionStage)5 Collectors.toSet (java.util.stream.Collectors.toSet)5 Jsonb (javax.json.bind.Jsonb)5 JsonbBuilder (javax.json.bind.JsonbBuilder)5 Disabled (org.junit.jupiter.api.Disabled)5 ComponentDetail (org.talend.sdk.component.server.front.model.ComponentDetail)5 InputStream (java.io.InputStream)4 Arrays.asList (java.util.Arrays.asList)4