From c1ab59e9b3655c3bc753f7985530ab46d7da3576 Mon Sep 17 00:00:00 2001 From: Olivier Maury <Olivier.Maury@inrae.fr> Date: Thu, 1 Aug 2024 15:23:03 +0200 Subject: [PATCH] =?UTF-8?q?Correction=20de=20changement=20de=20r=C3=A9gion?= =?UTF-8?q?=20apr=C3=A8s=20s=C3=A9lection=20de=20PRA.=20refs=20#103?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../client/presenter/RightPanelPresenter.java | 7 +++++- .../www/client/view/LayoutView.java | 4 ++-- .../www/client/view/LeftPanelView.java | 8 ++++++- .../www/client/view/RightPanelView.java | 24 ++++++++++++------- 4 files changed, 31 insertions(+), 12 deletions(-) diff --git a/www-client/src/main/java/fr/agrometinfo/www/client/presenter/RightPanelPresenter.java b/www-client/src/main/java/fr/agrometinfo/www/client/presenter/RightPanelPresenter.java index 225431d..b23c312 100644 --- a/www-client/src/main/java/fr/agrometinfo/www/client/presenter/RightPanelPresenter.java +++ b/www-client/src/main/java/fr/agrometinfo/www/client/presenter/RightPanelPresenter.java @@ -109,7 +109,9 @@ public final class RightPanelPresenter implements FeatureSelectHandler, MapClick periodName = pName; view.setPeriodName(pName); App.getEventBus().fireEvent(LoadingEvent.of(LoadingEventType.START)); - if (FeatureLevel.REGION == c.getLevel() && selectedPra != null + if (FeatureLevel.REGION == c.getLevel() // + && selectedPra != null // + && regionOfSelectedPra != null // && !Objects.equals(regionOfSelectedPra, c.getFeatureId())) { c.setLevel(FeatureLevel.PRA); c.setFeatureId(selectedPra); @@ -120,6 +122,8 @@ public final class RightPanelPresenter implements FeatureSelectHandler, MapClick GWT.log("RightPanelPresenter.loadValues() succcess"); if (FeatureLevel.PRA == c.getLevel() && FeatureLevel.REGION == d.getParentFeature().getLevel()) { regionOfSelectedPra = d.getParentFeature().getId(); + } else { + regionOfSelectedPra = null; } view.setSummary(d); }) // @@ -142,6 +146,7 @@ public final class RightPanelPresenter implements FeatureSelectHandler, MapClick @Override public void onFeatureSelect(final FeatureSelectEvent event) { + GWT.log("RightPanelPresenter.onFeatureSelect()"); // keep the selected PRA on the map if (FeatureLevel.PRA == event.getLevel()) { selectedPra = event.getId(); diff --git a/www-client/src/main/java/fr/agrometinfo/www/client/view/LayoutView.java b/www-client/src/main/java/fr/agrometinfo/www/client/view/LayoutView.java index 7380db7..2f628f9 100644 --- a/www-client/src/main/java/fr/agrometinfo/www/client/view/LayoutView.java +++ b/www-client/src/main/java/fr/agrometinfo/www/client/view/LayoutView.java @@ -314,7 +314,7 @@ implements LayoutPresenter.View, LoadingHandler { } private void initRightPanel() { - GWT.log("LayoutView.initRightPannel()"); + GWT.log("LayoutView.initRightPanel()"); // NB cannot get z-index using layout.getFooter().getZIndex() final int footerZIndex = 9; // incrementing z-index to change also z-index in modal @@ -324,7 +324,7 @@ implements LayoutPresenter.View, LoadingHandler { } while (rightPanelZIndex <= footerZIndex); layout.getRightPanel().setZIndex(rightPanelZIndex); - GWT.log("LayoutView.initRightPannel() " + rightPanelZIndex); + GWT.log("LayoutView.initRightPanel() " + rightPanelZIndex); } private void initTopBar() { diff --git a/www-client/src/main/java/fr/agrometinfo/www/client/view/LeftPanelView.java b/www-client/src/main/java/fr/agrometinfo/www/client/view/LeftPanelView.java index 76b6666..d171645 100644 --- a/www-client/src/main/java/fr/agrometinfo/www/client/view/LeftPanelView.java +++ b/www-client/src/main/java/fr/agrometinfo/www/client/view/LeftPanelView.java @@ -252,6 +252,8 @@ public final class LeftPanelView extends AbstractBaseView<LeftPanelPresenter> im if (newValue.length() > 2) { choice.setFeatureId(null); } else { + // France métropolitaine : "0" + choice.setLevel(FeatureLevel.REGION); choice.setFeatureId(newValue); } onChoiceChange(); @@ -269,7 +271,11 @@ public final class LeftPanelView extends AbstractBaseView<LeftPanelPresenter> im @Override public void selectRegionId(final String id) { - regionSelect.selectByKey(id); + if (id == null || id.isEmpty()) { + regionSelect.selectByKey("0"); + } else { + regionSelect.selectByKey(id); + } } @Override diff --git a/www-client/src/main/java/fr/agrometinfo/www/client/view/RightPanelView.java b/www-client/src/main/java/fr/agrometinfo/www/client/view/RightPanelView.java index 3827bb7..b98016a 100644 --- a/www-client/src/main/java/fr/agrometinfo/www/client/view/RightPanelView.java +++ b/www-client/src/main/java/fr/agrometinfo/www/client/view/RightPanelView.java @@ -31,6 +31,7 @@ import fr.agrometinfo.www.client.presenter.RightPanelPresenter; import fr.agrometinfo.www.client.ui.CardDetails; import fr.agrometinfo.www.client.ui.chart.DailyValuesChart; import fr.agrometinfo.www.client.util.UiUtils; +import fr.agrometinfo.www.shared.dto.FeatureLevel; import fr.agrometinfo.www.shared.dto.IndicatorDTO; import fr.agrometinfo.www.shared.dto.SummaryDTO; @@ -230,21 +231,28 @@ public final class RightPanelView implements RightPanelPresenter.View { } } - if (data.getParentFeature() != null) { + if (backBtnClickListener != null) { + backBtn.removeEventListener(EventType.click, backBtnClickListener); + } + if (featureName == null || featureName.isEmpty()) { + backBtn.style().setDisplay("none"); + backBtnClickListener = null; + } else if (data.getParentFeature() != null) { backBtn.getTextSpan().textContent(data.getParentFeature().getName()); - if (backBtnClickListener != null) { - backBtn.removeEventListener(EventType.click, backBtnClickListener); - } backBtnClickListener = e -> { final FeatureSelectEvent event = new FeatureSelectEvent(); event.setId(data.getParentFeature().getId()); event.setLevel(data.getParentFeature().getLevel()); - App.getEventBus().fireEvent(FeatureSelectEvent.of(event.getLevel(), event.getId())); + App.getEventBus().fireEvent(event); }; - backBtn.addClickListener(backBtnClickListener); - backBtn.style().setDisplay("inline-block"); } else { - backBtn.style().setDisplay("none"); + backBtn.getTextSpan().textContent(CSTS.metropolitanFrance()); + backBtnClickListener = e -> App.getEventBus().fireEvent(FeatureSelectEvent.of(FeatureLevel.REGION, "")); + backBtn.style().setDisplay("inline-block"); + } + if (backBtnClickListener != null) { + backBtn.style().setDisplay("inline-block"); + backBtn.addClickListener(backBtnClickListener); } final NumberFormat nf = NumberFormat.getFormat("0.#"); -- GitLab