Setting TwinColumn default value

Hello,
I have a TwinColumn component and was wondering how to set a default value?
I have tried twinColumn.setValue() in the postInit() method, but it doesn’t seem to work. What would be the correct syntax?

Thanks.

Hi Francis,

First of all, please check if your TwinColumn has optionsDatasource:


<twinColumn id="teamUsersTwinColumn"
            width="500px" height="400px"
            datasource="teamDs" property="users"
            optionsDatasource="usersCDs"></twinColumn>

The proper way to set default values for entity is to set value of a property from initNewItem method:


@Inject
private CollectionDatasource<User, UUID> usersCDs;

@Inject
private TwinColumn teamUsersTwinColumn;

@Override
protected void initNewItem(Team item) {
    super.initNewItem(item);

    usersCDs.refresh();
    if (usersCDs.size() > 0) {
        User firstUser = usersCDs.getItems().iterator().next();
        item.setUsers(new HashSet<>(Collections.singleton(firstUser)));
    }
}

If you want to set value to component, just set entity or collection of entities using setValue method:


@Override
protected void postInit() {
    super.postInit();

    usersCDs.refresh();
    if (usersCDs.size() > 0) {
        User firstUser = usersCDs.getItems().iterator().next();
        teamUsersTwinColumn.setValue(firstUser);
    }
}

I’ve prepared demo project for you, so you can try it in action.

twincol-demo.zip (26.7K)

1 Like

thanks it worked.

1 Like