From 0bd39a83a11e58111f4e2291c6fb009a4b5768fa Mon Sep 17 00:00:00 2001 From: =?utf8?q?Ga=C3=ABl=20L=27hopital?= Date: Mon, 8 May 2023 20:54:50 +0200 Subject: [PATCH] [Meteoalerte] Add an IconProvider (#14811) * Solving activation / deactivation of IT4Wifi thing glitches. * Some code enhancements * Addition of an IconProvider --------- Signed-off-by: clinique --- .../org.openhab.binding.meteoalerte/README.md | 57 ++++-- .../internal/MeteoAlertIconProvider.java | 126 ++++++++++++ .../internal/MeteoAlerteBindingConstants.java | 5 +- .../internal/MeteoAlerteHandlerFactory.java | 12 +- .../internal/handler/MeteoAlerteHandler.java | 80 +++----- .../internal/json/ApiResponse.java | 6 +- .../meteoalerte/internal/json/Parameters.java | 6 +- .../meteoalerte/internal/json/Record.java | 6 +- .../internal/json/ResponseFieldDTO.java | 16 +- .../OH-INF/i18n/meteoalerte.properties | 189 ++++++++++++++++++ .../resources/OH-INF/thing/thing-types.xml | 168 +++++++++++++--- .../resources/OH-INF/update/instructions.xml | 40 ++++ .../src/main/resources/icon/avalanches.svg | 18 ++ .../src/main/resources/icon/canicule.svg | 21 ++ .../src/main/resources/icon/grand-froid.svg | 20 ++ .../src/main/resources/icon/inondation.svg | 11 + .../src/main/resources/icon/meteo_france.svg | 13 ++ .../src/main/resources/icon/neige.svg | 7 + .../src/main/resources/icon/orage.svg | 13 ++ .../main/resources/icon/pluie-inondation.svg | 16 ++ .../main/resources/icon/vague-submersion.svg | 7 + .../src/main/resources/icon/vent.svg | 29 +++ .../src/main/resources/picto/avalanches.svg | 70 ------- .../src/main/resources/picto/canicule.svg | 74 ------- .../src/main/resources/picto/grand-froid.svg | 79 -------- .../src/main/resources/picto/inondation.svg | 69 ------- .../src/main/resources/picto/neige.svg | 69 ------- .../src/main/resources/picto/orage.svg | 69 ------- .../main/resources/picto/pluie-inondation.svg | 74 ------- .../main/resources/picto/vague-submersion.svg | 74 ------- .../src/main/resources/picto/vent.svg | 84 -------- 31 files changed, 744 insertions(+), 784 deletions(-) create mode 100644 bundles/org.openhab.binding.meteoalerte/src/main/java/org/openhab/binding/meteoalerte/internal/MeteoAlertIconProvider.java create mode 100644 bundles/org.openhab.binding.meteoalerte/src/main/resources/OH-INF/i18n/meteoalerte.properties create mode 100644 bundles/org.openhab.binding.meteoalerte/src/main/resources/OH-INF/update/instructions.xml create mode 100644 bundles/org.openhab.binding.meteoalerte/src/main/resources/icon/avalanches.svg create mode 100644 bundles/org.openhab.binding.meteoalerte/src/main/resources/icon/canicule.svg create mode 100644 bundles/org.openhab.binding.meteoalerte/src/main/resources/icon/grand-froid.svg create mode 100644 bundles/org.openhab.binding.meteoalerte/src/main/resources/icon/inondation.svg create mode 100644 bundles/org.openhab.binding.meteoalerte/src/main/resources/icon/meteo_france.svg create mode 100644 bundles/org.openhab.binding.meteoalerte/src/main/resources/icon/neige.svg create mode 100644 bundles/org.openhab.binding.meteoalerte/src/main/resources/icon/orage.svg create mode 100644 bundles/org.openhab.binding.meteoalerte/src/main/resources/icon/pluie-inondation.svg create mode 100644 bundles/org.openhab.binding.meteoalerte/src/main/resources/icon/vague-submersion.svg create mode 100644 bundles/org.openhab.binding.meteoalerte/src/main/resources/icon/vent.svg delete mode 100644 bundles/org.openhab.binding.meteoalerte/src/main/resources/picto/avalanches.svg delete mode 100644 bundles/org.openhab.binding.meteoalerte/src/main/resources/picto/canicule.svg delete mode 100644 bundles/org.openhab.binding.meteoalerte/src/main/resources/picto/grand-froid.svg delete mode 100644 bundles/org.openhab.binding.meteoalerte/src/main/resources/picto/inondation.svg delete mode 100644 bundles/org.openhab.binding.meteoalerte/src/main/resources/picto/neige.svg delete mode 100644 bundles/org.openhab.binding.meteoalerte/src/main/resources/picto/orage.svg delete mode 100644 bundles/org.openhab.binding.meteoalerte/src/main/resources/picto/pluie-inondation.svg delete mode 100644 bundles/org.openhab.binding.meteoalerte/src/main/resources/picto/vague-submersion.svg delete mode 100644 bundles/org.openhab.binding.meteoalerte/src/main/resources/picto/vent.svg diff --git a/bundles/org.openhab.binding.meteoalerte/README.md b/bundles/org.openhab.binding.meteoalerte/README.md index 160820015b..7af859b6fd 100644 --- a/bundles/org.openhab.binding.meteoalerte/README.md +++ b/bundles/org.openhab.binding.meteoalerte/README.md @@ -1,6 +1,7 @@ # Meteo Alerte Binding The Meteo Alerte binding gives alert level regarding major weather related risk factors. +This binding provides its own icon set and provides appropriate static and dynamic SVG icons (see items examples below). ## Supported Things @@ -58,6 +59,24 @@ The Météo Alerte information that are retrieved is available as these channels | 2 | Orange | Be "very vigilant" in the concerned areas | | 3 | Red | Absolute vigilance required | +## Provided icon set + +This binding has its own IconProvider and makes available the following list of icons + +| Icon Name | Dynamic | Illustration | +|---------------------------------|---------|--------------| +| oh:meteoalerte:vent | Yes | ![](src/main/resources/icon/vent.svg) | +| oh:meteoalerte:pluie-inondation | Yes | ![](src/main/resources/icon/pluie-inondation.svg) | +| oh:meteoalerte:orage | Yes | ![](src/main/resources/icon/orage.svg) | +| oh:meteoalerte:inondation | Yes | ![](src/main/resources/icon/inondation.svg) | +| oh:meteoalerte:neige | Yes | ![](src/main/resources/icon/neige.svg) | +| oh:meteoalerte:canicule | Yes | ![](src/main/resources/icon/canicule.svg) | +| oh:meteoalerte:grand-froid | Yes | ![](src/main/resources/icon/grand-froid.svg) | +| oh:meteoalerte:avalanches | Yes | ![](src/main/resources/icon/avalanches.svg) | +| oh:meteoalerte:vague-submersion | Yes | ![](src/main/resources/icon/vague-submersion.svg) | +| oh:meteoalerte:meteo_france | No | ![](src/main/resources/icon/meteo_france.svg) | + + ## Full Example meteoalert.things: @@ -69,26 +88,26 @@ Thing meteoalerte:department:yvelines @ "MyCity" [department="YVELINES", refresh meteoalert.items: ```java -Group gMeteoAlert "Alertes Météo" - String MA_Dept78 "Département 78 [%s]" (gMeteoAlert) {channel="meteoalerte:department:yvelines:comment"} - Number MA_etat_canicule "Canicule [%s]" (gMeteoAlert) {channel="meteoalerte:department:yvelines:canicule"} - Number MA_etat_grand_froid "Grand Froid [%s]" (gMeteoAlert) {channel="meteoalerte:department:yvelines:grand-froid"} - Number MA_etat_pluie_inondation "Pluie-Inondation [%s]" (gMeteoAlert) {channel="meteoalerte:department:yvelines:pluie-inondation"} - Number MA_etat_neige "Neige [%s]" (gMeteoAlert) {channel="meteoalerte:department:yvelines:neige"} - Number MA_etat_vent "Vent [%s]" (gMeteoAlert) {channel="meteoalerte:department:yvelines:vent"} - Number MA_etat_inondation "Inondation [%s]" (gMeteoAlert) {channel="meteoalerte:department:yvelines:inondation"} - Number MA_etat_orage "Orage [%s]" (gMeteoAlert) {channel="meteoalerte:department:yvelines:orage"} - Number MA_etat_avalanche "Avalanches [%s]" (gMeteoAlert) {channel="meteoalerte:department:yvelines:avalanches"} +Group gMeteoAlert "Alertes Météo" +String MA_Dept78 "Département 78 [%s]" (gMeteoAlert) {channel="meteoalerte:department:yvelines:comment"} +Number MA_etat_canicule "Canicule [%s]" (gMeteoAlert) {channel="meteoalerte:department:yvelines:canicule"} +Number MA_etat_grand_froid "Grand Froid [%s]" (gMeteoAlert) {channel="meteoalerte:department:yvelines:grand-froid"} +Number MA_etat_pluie_inondation "Pluie-Inondation [%s]" (gMeteoAlert) {channel="meteoalerte:department:yvelines:pluie-inondation"} +Number MA_etat_neige "Neige [%s]" (gMeteoAlert) {channel="meteoalerte:department:yvelines:neige"} +Number MA_etat_vent "Vent [%s]" (gMeteoAlert) {channel="meteoalerte:department:yvelines:vent"} +Number MA_etat_inondation "Inondation [%s]" (gMeteoAlert) {channel="meteoalerte:department:yvelines:inondation"} +Number MA_etat_orage "Orage [%s]" (gMeteoAlert) {channel="meteoalerte:department:yvelines:orage"} +Number MA_etat_avalanche "Avalanches [%s]" (gMeteoAlert) {channel="meteoalerte:department:yvelines:avalanches"} - Image MA_icon_canicule "Canicule" (gMeteoAlert) {channel="meteoalerte:department:yvelines:canicule-icon"} - Image MA_icon_grand_froid "Grand Froid" (gMeteoAlert) {channel="meteoalerte:department:yvelines:grand-froid-icon"} - Image MA_icon_pluie_inondation "Pluie-Inondation" (gMeteoAlert) {channel="meteoalerte:department:yvelines:pluie-inondation-icon"} - Image MA_icon_neige "Neige" (gMeteoAlert) {channel="meteoalerte:department:yvelines:neige-icon"} - Image MA_icon_vent "Vent" (gMeteoAlert) {channel="meteoalerte:department:yvelines:vent-icon"} - Image MA_icon_inondation "Inondation" (gMeteoAlert) {channel="meteoalerte:department:yvelines:inondation-icon"} - Image MA_icon_orage "Orage" (gMeteoAlert) {channel="meteoalerte:department:yvelines:orage-icon"} - Image MA_icon_avalanche "Avalanche" (gMeteoAlert) {channel="meteoalerte:department:yvelines:avalanches-icon"} +Image MA_icon_canicule "Canicule" (gMeteoAlert) {channel="meteoalerte:department:yvelines:canicule-icon"} +Image MA_icon_grand_froid "Grand Froid" (gMeteoAlert) {channel="meteoalerte:department:yvelines:grand-froid-icon"} +Image MA_icon_pluie_inondation "Pluie-Inondation" (gMeteoAlert) {channel="meteoalerte:department:yvelines:pluie-inondation-icon"} +Image MA_icon_neige "Neige" (gMeteoAlert) {channel="meteoalerte:department:yvelines:neige-icon"} +Image MA_icon_vent "Vent" (gMeteoAlert) {channel="meteoalerte:department:yvelines:vent-icon"} +Image MA_icon_inondation "Inondation" (gMeteoAlert) {channel="meteoalerte:department:yvelines:inondation-icon"} +Image MA_icon_orage "Orage" (gMeteoAlert) {channel="meteoalerte:department:yvelines:orage-icon"} +Image MA_icon_avalanche "Avalanche" (gMeteoAlert) {channel="meteoalerte:department:yvelines:avalanches-icon"} - DateTime MA_ObservationTS "Timestamp [%1$tH:%1$tM]"