From ffb2f0a79bfcedaf88b8c5102f252b169d27ea29 Mon Sep 17 00:00:00 2001 From: Felipe Lang Date: Thu, 10 Apr 2025 15:54:04 -0300 Subject: [PATCH 1/2] feat: add method for setting tooltip to days of week Close #12 --- .../dayofweekselector/DayOfWeekSelector.java | 23 ++++++++++++++++++- .../DayOfWeekSelectorI18NDemo.java | 18 +++++++++++++++ 2 files changed, 40 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/flowingcode/vaadin/addons/dayofweekselector/DayOfWeekSelector.java b/src/main/java/com/flowingcode/vaadin/addons/dayofweekselector/DayOfWeekSelector.java index 9a25595..522180f 100644 --- a/src/main/java/com/flowingcode/vaadin/addons/dayofweekselector/DayOfWeekSelector.java +++ b/src/main/java/com/flowingcode/vaadin/addons/dayofweekselector/DayOfWeekSelector.java @@ -178,7 +178,12 @@ public void setValue(DayOfWeek first, DayOfWeek... rest) { * @param i18n the internationalized properties, not null */ public void setI18N(DatePickerI18n i18n) { - setWeekDaysShort(i18n.getWeekdaysShort()); + if (i18n.getWeekdaysShort() != null) { + setWeekDaysShort(i18n.getWeekdaysShort()); + } + if (i18n.getWeekdays() != null) { + setWeekDaysTooltip(i18n.getWeekdays()); + } if (i18n.getFirstDayOfWeek() == 0) { setFirstDayOfWeek(DayOfWeek.SUNDAY); } else { @@ -202,6 +207,22 @@ public void setWeekDaysShort(List weekdaysShort) { } } + /** + * Sets the tooltips of the week days, starting from {@code sun} and ending on {@code sat}. + * + * @param weekdaysTooltip the tooltips of the week days + */ + public void setWeekDaysTooltip(List weekdaysTooltip) { + Objects.requireNonNull(weekdaysTooltip); + + for (DayOfWeek day : DayOfWeek.values()) { + int index = day.getValue() % 7; + String text = weekdaysTooltip.get(index); + getButtons().filter(button -> button.getDayOfWeek() == day) + .forEach(button -> button.setTooltipText(text)); + } + } + /** * Sets the first day of the week. *

diff --git a/src/test/java/com/flowingcode/vaadin/addons/dayofweekselector/DayOfWeekSelectorI18NDemo.java b/src/test/java/com/flowingcode/vaadin/addons/dayofweekselector/DayOfWeekSelectorI18NDemo.java index 67754f5..de6c665 100644 --- a/src/test/java/com/flowingcode/vaadin/addons/dayofweekselector/DayOfWeekSelectorI18NDemo.java +++ b/src/test/java/com/flowingcode/vaadin/addons/dayofweekselector/DayOfWeekSelectorI18NDemo.java @@ -20,11 +20,14 @@ package com.flowingcode.vaadin.addons.dayofweekselector; import com.flowingcode.vaadin.addons.demo.DemoSource; +import com.vaadin.flow.component.datepicker.DatePicker.DatePickerI18n; import com.vaadin.flow.component.html.Div; import com.vaadin.flow.router.PageTitle; import com.vaadin.flow.router.Route; import java.time.DayOfWeek; +import java.time.format.TextStyle; import java.util.List; +import java.util.stream.Stream; @DemoSource @PageTitle("I18N") @@ -34,6 +37,21 @@ public class DayOfWeekSelectorI18NDemo extends Div { public DayOfWeekSelectorI18NDemo() { DayOfWeekSelector selector = new DayOfWeekSelector(); + selector.setLabel("I18N with DatePickerI18n"); + + DatePickerI18n i18n = new DatePickerI18n(); + i18n.setWeekdaysShort(Stream.of(DayOfWeek.values()) + .map(d -> d.getDisplayName(TextStyle.NARROW_STANDALONE, getLocale())).toList()); + i18n.setWeekdays(Stream.of(DayOfWeek.values()) + .map(d -> d.getDisplayName(TextStyle.FULL_STANDALONE, getLocale())).toList()); + i18n.setFirstDayOfWeek(DayOfWeek.MONDAY.getValue() - 1); + selector.setI18N(i18n); + add(selector); + + selector = new DayOfWeekSelector(); + selector.setLabel("I18N without DatePickerI18n"); + selector.setWeekDaysTooltip( + List.of("Domingo", "Lunes", "Martes", "Miércoles", "Jueves", "Viernes", "Sábado")); selector.setWeekDaysShort(List.of("D", "L", "M", "X", "J", "V", "S")); selector.setFirstDayOfWeek(DayOfWeek.MONDAY); add(selector); From 6d77200ae51204d323cb05adc7f5b99c4f353b6b Mon Sep 17 00:00:00 2001 From: Felipe Lang Date: Thu, 10 Apr 2025 15:56:59 -0300 Subject: [PATCH 2/2] build: increase version to 1.1.0-SNAPSHOT --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 58e4c65..fa043f9 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.flowingcode.vaadin.addons day-of-week-selector-addon - 1.0.2-SNAPSHOT + 1.1.0-SNAPSHOT Day of Week Selector Add-on Day of Week Selector Add-on for Vaadin Flow https://www.flowingcode.com/en/open-source/