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); } }