Skip to content

Commit e2fe3b1

Browse files
Felipe Langjavier-godoy
authored andcommitted
fix: update chips label when itemLabelGenerator is updated
Close #31
1 parent 9fd37f3 commit e2fe3b1

File tree

1 file changed

+11
-0
lines changed

1 file changed

+11
-0
lines changed

src/main/java/com/flowingcode/vaadin/addons/chipfield/ChipField.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
import java.util.Arrays;
2424
import java.util.Iterator;
2525
import java.util.List;
26+
import java.util.Objects;
2627
import java.util.Optional;
2728
import java.util.concurrent.atomic.AtomicInteger;
2829
import java.util.stream.Stream;
@@ -372,7 +373,11 @@ public Registration addChipCreatedListener(ComponentEventListener<ChipCreatedEve
372373
}
373374

374375
public void setChipLabelGenerator(ItemLabelGenerator<T> itemLabelGenerator) {
376+
Objects.requireNonNull(itemLabelGenerator, "The item label generator can not be null");
375377
this.itemLabelGenerator = itemLabelGenerator;
378+
379+
configureItems();
380+
refreshChipsLabel();
376381
}
377382

378383
public void setNewItemHandler(SerializableFunction<String, T> handler) {
@@ -444,4 +449,10 @@ private void removeSelectedItem(T itemToRemove, boolean fromClient) {
444449
public Registration addChipClickedListener(ComponentEventListener<ChipClickedEvent<T>> listener) {
445450
return addListener(ChipClickedEvent.class, (ComponentEventListener) listener);
446451
}
452+
453+
private void refreshChipsLabel() {
454+
String[] labels = getValue().stream().map(itemLabelGenerator::apply).toArray(String[]::new);
455+
setClientChipWithoutEvent(labels);
456+
}
457+
447458
}

0 commit comments

Comments
 (0)