Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/gatanaso/multiselect-combo-box-flow
Multi-select-combo-box component for Vaadin
https://github.com/gatanaso/multiselect-combo-box-flow
java vaadin vaadin-flow vaadin-platform
Last synced: about 1 month ago
JSON representation
Multi-select-combo-box component for Vaadin
- Host: GitHub
- URL: https://github.com/gatanaso/multiselect-combo-box-flow
- Owner: gatanaso
- License: apache-2.0
- Created: 2019-01-19T07:19:25.000Z (almost 6 years ago)
- Default Branch: main
- Last Pushed: 2022-02-13T10:47:12.000Z (almost 3 years ago)
- Last Synced: 2023-03-02T12:06:38.786Z (over 1 year ago)
- Topics: java, vaadin, vaadin-flow, vaadin-platform
- Language: Java
- Homepage: https://multiselect-combo-box-flow.herokuapp.com/
- Size: 162 KB
- Stars: 29
- Watchers: 7
- Forks: 25
- Open Issues: 21
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[![Published on Vaadin Directory](https://img.shields.io/badge/Vaadin%20Directory-published-00b4f0.svg)](https://vaadin.com/directory/component/multiselect-combo-box)
[![Build Status](https://travis-ci.org/gatanaso/multiselect-combo-box-flow.svg?branch=master)](https://travis-ci.org/gatanaso/multiselect-combo-box-flow)
[![Version on Vaadin Directory](http://img.shields.io/vaadin-directory/version/multiselect-combo-box.svg)](https://vaadin.com/directory/component/multiselect-combo-box)
[![Stars on vaadin.com/directory](https://img.shields.io/vaadin-directory/star/multiselect-combo-box.svg)](https://vaadin.com/directory/component/multiselect-combo-box)# 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`:
```xmlorg.vaadin.gatanaso
multiselect-combo-box-flow
4.0.0-rc2```
Add the `vaadin-addons` repository:
```xmlvaadin-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","[email protected]"),
new User("Ervin Howell","ervin","[email protected]"),
new User("Samantha Doe","samantha","[email protected]")
);// 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).