At the moment the error message is not shown, wenn clearing the selected items for the first time. I think methods setErrorMessage and setInvalid should look like this:
@Override
public void setErrorMessage(String errorMessage) {
this.errorMessage = errorMessage;
errorLabel.setText(errorMessage);
}
...
@Override
public void setInvalid(boolean invalid) {
if (invalid) {
list2.getStyle().set("border",LIST_BORDER_ERROR);
list2.getStyle().set("background",LIST_BACKGROUND_ERROR);
errorLabel.setVisible(true);
} else {
list2.getStyle().set("border",LIST_BORDER);
list2.getStyle().set("background",LIST_BACKGROUND);
errorLabel.setVisible(false);
}
}