Skip to content

Latest commit

 

History

History
312 lines (233 loc) · 11.4 KB

File metadata and controls

312 lines (233 loc) · 11.4 KB

Widget and validation gallery

This gallery shows how widgets and validations are rendered in both Studio and web environments, along with sample implementation code.

You can also find sample working components for each of the configuration cases below:

Widgets

Widgets allow to easily implement different types of input fields to your components.

Input/Text

@Option
String config;
Studio Rendering Web Rendering
Studio Input
Web Input

Password

@Option
@Credential
String config;
Studio Rendering Web Rendering
Studio Password
Web Password

Textarea

@Option
@Textarea
String config;
Studio Rendering Web Rendering
Studio Textarea
Web Textarea

Integer

@Option
@Documentation("This is a number")
public Integer number;
Studio Rendering Web Rendering
Studio Integer
Web Textarea

Checkbox

@Option
Boolean config;
Studio Rendering Web Rendering
Studio Checkbox
Web Checkbox

Datetime

Datetime fields rely on the Java Date Time API, including LocalTime, LocalDate, LocalDateTime and ZonedDateTime classes.

@Option
LocalDateTime startTime;
Studio Rendering Web Rendering
Studio Calendar
Web Calendar

List

@Option
@Proposable("valuesProvider")
String config;
/** service class */
@DynamicValues("valuesProvider")
public Values actions(){
  return new Values(asList(new Values.Item("1", "Delete"),
                    new Values.Item("2", "Insert"),
                    new Values.Item("3", "Update")));
}

or

@Option
ActionEnum config;

/** Define enum */
enum ActionEnum {
    Delete,
    Insert,
    Update
}
Studio Rendering Web Rendering
Studio List
Web List

Suggestions

@Option
@Suggestable(value = "loadModules", parameters = { "myconfig" })
@Documentation("module names are loaded using service")
public String moduleName;


// In Service class
@Suggestions("loadModules")
public SuggestionValues loadModules(@Option final MyConfig myconfig) { }
Studio Rendering Web Rendering
Studio suggestions loading
Web suggestions loading
Studio suggestions loaded
Web suggestions loaded

Table

@Option
List<MyObject> config;
Studio Rendering Web Rendering
Studio Table
Web Table

Code

@Code("java")
@Option
String config;
Studio Rendering Web Rendering
Studio Code
Web Code

Schema

@Option
@Structure
List<String> config;
Studio Rendering Web Rendering
Studio Schema
Web Schema

Validations

Validations help restricting what can be entered or selected in an input field, to make sure that the value complies with the expected type of information.

Property validation

/** configuration class */
@Option
@Validable("url")
String config;

/** service class */
@AsyncValidation("url")
ValidationResult doValidate(String url) {
//validate the property
}
Studio Rendering Web Rendering
Studio Code
Web Code

Property validation with Pattern

/** configuration class */
@Option
@Pattern("/^[a-zA-Z\\-]+$/")
String username;
Studio Rendering Web Rendering
Studio Code
Web Code

Data store validation

@Datastore
@Checkable
public class config {
/** config ...*/
}

/** service class */
@HealthCheck
public HealthCheckStatus testConnection(){

//validate the connection
}
Studio Rendering Web Rendering
Studio Code
Web Code

You can also use other types of validation that are similar to @Pattern:

  • @Min, @Max to specify a minimum and maximum value for numerical fields.

  • @Uniques for collection values.

  • @Required for a required configuration.