Directory

Multiselect Combo Box - Vaadin Add-on Directory

A multiselection component where items are displayed in a drop-down list. Multiselect Combo Box - Vaadin Add-on Directory
# MultiselectComboBox A multi select combo box component for Vaadin Flow. Integration of of the [multiselect-combo-box](https://github.com/gatanaso/multiselect-combo-box) web component. #### [Live Demo ↗](https://multiselect-combo-box-flow.herokuapp.com/) ## Install Add the `multiselect-combo-box-flow dependency` to your `pom.xml`: ```xml org.vaadin.gatanaso multiselect-combo-box-flow 4.0.0-rc2 ``` Add the `vaadin-addons` repository: ```xml vaadin-addons http://maven.vaadin.com/vaadin-addons ``` ## Basic Usage Create a `MultiselectComboBox` and add items ```java MultiselectComboBox multiselectComboBox = new MultiselectComboBox(); multiselectComboBox.setLabel("Select items"); multiselectComboBox.setItems("Item 1", "Item 2", "Item 3", "Item 4"); ``` Add a value change listener (invoked when the selected items/value is changed): ```java multiselectComboBox.addValueChangeListener(event -> { // handle value change }); ``` Get the selected items/value: ```java // set of selected values, or an empty set if none selected Set value = multiselectComboBox.getValue(); ``` `MultiselectComboBox` also implements the [MultiSelect](https://vaadin.com/api/platform/12.0.3/com/vaadin/flow/data/selection/MultiSelect.html) interface, which makes it easy to listen for selection changes: ```java multiselectComboBox.addSelectionListener(event -> { event.getAddedSelection(); // get added items event.getRemovedSelection() // get removed items }); ``` ## Object items The `MultiselectComboBox` supports object items. Given the following `User` class: ```java class User { private String name; private String username; private String email; public User(String name, String username, String email) { this.username = username; this.email = email; } // getters and setters intentionally omitted for brevity @Override public String toString() { return name; } } ``` Create a `MultiselectComboBox` of `User`s: ```java MultiselectComboBox multiselectComboBox = new MultiselectComboBox(); multiselectComboBox.setLabel("Select users"); List users = Arrays.asList( new User("Leanne Graham","leanne","leanne@demo.dev"), new User("Ervin Howell","ervin","ervin@demo.dev"), new User("Samantha Doe","samantha","samantha@demo.dev") ); // by default uses `User.toString()` to generate item labels multiselectComboBox.setItems(users); ``` The `MultiselectComboBox` uses the `toString()` method to generate the item labels by default. This can be overridden by setting an item label generator: ```java // use the user email as an item label multiselectComboBox.setItemLabelGenerator(User::getEmail) ``` ## Version information * 4.x.x - the version for Vaadin 22+ * 3.x.x - the version for Vaadin 16 and Vaadin 15 * 2.x.x - the version for Vaadin 14 (LTS) * 1.x.x. - the version for Vaadin 13 and Vaadin 12 ## Branch information * `master` the latest version for Vaadin 22+ * `V14` the version for Vaadin 14 (LTS) ## Web Component The `` web component is available on [npm](https://www.npmjs.com/package/multiselect-combo-box), the [Vaadin Directory](https://vaadin.com/directory/component/gatanasomultiselect-combo-box) and [GitHub](https://github.com/gatanaso/multiselect-combo-box).