From 248d0519b76be5a715cde7b0b4e45312d9d6c66d Mon Sep 17 00:00:00 2001 From: Olivier Maury <Olivier.Maury@inrae.fr> Date: Tue, 30 Jul 2024 14:33:24 +0200 Subject: [PATCH 1/2] =?UTF-8?q?R=C3=A9-afficher=20le=20panneau=20de=20droi?= =?UTF-8?q?te=20au=20clic=20sur=20une=20PRA=20s=C3=A9lectionn=C3=A9e.=20fi?= =?UTF-8?q?xes=20#103?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../www/client/event/MapClickEvent.java | 37 +++++++++++++++++++ .../www/client/event/MapClickHandler.java | 13 +++++++ .../client/presenter/RightPanelPresenter.java | 10 ++++- .../agrometinfo/www/client/view/MapView.java | 3 ++ 4 files changed, 62 insertions(+), 1 deletion(-) create mode 100644 www-client/src/main/java/fr/agrometinfo/www/client/event/MapClickEvent.java create mode 100644 www-client/src/main/java/fr/agrometinfo/www/client/event/MapClickHandler.java diff --git a/www-client/src/main/java/fr/agrometinfo/www/client/event/MapClickEvent.java b/www-client/src/main/java/fr/agrometinfo/www/client/event/MapClickEvent.java new file mode 100644 index 0000000..636c6ca --- /dev/null +++ b/www-client/src/main/java/fr/agrometinfo/www/client/event/MapClickEvent.java @@ -0,0 +1,37 @@ +package fr.agrometinfo.www.client.event; + +import org.gwtproject.event.shared.Event; + +/** + * Event for map click. + * + * @author Olivier Maury + */ +public final class MapClickEvent extends Event<MapClickHandler> { + + /** + * Event type. + */ + public static final Type<MapClickHandler> TYPE = new Type<>(); + + /** + * Builder. + * + * @return built event + */ + public static MapClickEvent of() { + return new MapClickEvent(); + } + + @Override + protected void dispatch(final MapClickHandler handler) { + handler.onMapClick(this); + } + + @Override + public Type<MapClickHandler> getAssociatedType() { + return TYPE; + } + +} + diff --git a/www-client/src/main/java/fr/agrometinfo/www/client/event/MapClickHandler.java b/www-client/src/main/java/fr/agrometinfo/www/client/event/MapClickHandler.java new file mode 100644 index 0000000..0437f06 --- /dev/null +++ b/www-client/src/main/java/fr/agrometinfo/www/client/event/MapClickHandler.java @@ -0,0 +1,13 @@ +package fr.agrometinfo.www.client.event; + +/** + * Handler for {@link MapClickEvent}. + * + * @author Olivier Maury + */ +public interface MapClickHandler { + /** + * @param event event with type + */ + void onMapClick(MapClickEvent event); +} 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 587783c..6b98316 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 @@ -13,6 +13,8 @@ import fr.agrometinfo.www.client.event.FeatureSelectEvent; import fr.agrometinfo.www.client.event.FeatureSelectHandler; import fr.agrometinfo.www.client.event.LoadingEvent; import fr.agrometinfo.www.client.event.LoadingEvent.LoadingEventType; +import fr.agrometinfo.www.client.event.MapClickEvent; +import fr.agrometinfo.www.client.event.MapClickHandler; import fr.agrometinfo.www.client.view.BaseView; import fr.agrometinfo.www.client.view.LayoutView; import fr.agrometinfo.www.client.view.RightPanelView; @@ -27,7 +29,7 @@ import fr.agrometinfo.www.shared.service.IndicatorServiceFactory; * * @author Olivier Maury */ -public final class RightPanelPresenter implements FeatureSelectHandler, Presenter { +public final class RightPanelPresenter implements FeatureSelectHandler, MapClickHandler, Presenter { /** * Related view interface. */ @@ -134,6 +136,7 @@ public final class RightPanelPresenter implements FeatureSelectHandler, Presente if (DomGlobal.screen.width > LayoutView.MIN_WIDTH_FOR_PANELS && view.isVisible()) { view.show(); } + App.getEventBus().addHandler(MapClickEvent.TYPE, this); GWT.log("RightPanelPresenter.loadValues() done"); } @@ -161,6 +164,11 @@ public final class RightPanelPresenter implements FeatureSelectHandler, Presente view.show(); } + @Override + public void onMapClick(final MapClickEvent event) { + view.show(); + } + /** * @param mapContainer container for the map */ diff --git a/www-client/src/main/java/fr/agrometinfo/www/client/view/MapView.java b/www-client/src/main/java/fr/agrometinfo/www/client/view/MapView.java index a4d4df1..5c82b53 100644 --- a/www-client/src/main/java/fr/agrometinfo/www/client/view/MapView.java +++ b/www-client/src/main/java/fr/agrometinfo/www/client/view/MapView.java @@ -18,6 +18,7 @@ import elemental2.dom.HTMLElement; import fr.agrometinfo.www.client.App; import fr.agrometinfo.www.client.event.FeatureSelectEvent; import fr.agrometinfo.www.client.event.FeatureSelectHandler; +import fr.agrometinfo.www.client.event.MapClickEvent; import fr.agrometinfo.www.client.i18n.MapConstants; import fr.agrometinfo.www.client.presenter.MapPresenter; import fr.agrometinfo.www.client.ui.map.CanvasAttributions; @@ -274,6 +275,7 @@ public final class MapView extends HtmlContentBuilder<HTMLElement> implements Fe map.addInteraction(selectFeature); selectFeature.on("select", event -> onFeatureClick(selectFeature.getFeatures())); + map.on("singleclick", event -> App.getEventBus().fireEvent(MapClickEvent.of())); } private Feature[] colorizeFeatures(final Feature[] features) { @@ -371,6 +373,7 @@ public final class MapView extends HtmlContentBuilder<HTMLElement> implements Fe } private void onFeatureClick(final Collection<Feature> features) { + GWT.log("MapView.onFeatureClick()"); if (features == null || features.isEmpty()) { return; } -- GitLab From 63fd25bfaa469f6c201d6f9811eaf23d791e3710 Mon Sep 17 00:00:00 2001 From: Olivier Maury <Olivier.Maury@inrae.fr> Date: Tue, 30 Jul 2024 14:34:31 +0200 Subject: [PATCH 2/2] =?UTF-8?q?R=C3=A9-afficher=20le=20panneau=20de=20droi?= =?UTF-8?q?te=20au=20clic=20sur=20une=20PRA=20s=C3=A9lectionn=C3=A9e.=20fi?= =?UTF-8?q?xes=20#103?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../agrometinfo/www/client/presenter/RightPanelPresenter.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) 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 6b98316..225431d 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 @@ -166,7 +166,9 @@ public final class RightPanelPresenter implements FeatureSelectHandler, MapClick @Override public void onMapClick(final MapClickEvent event) { - view.show(); + if (!view.isVisible()) { + view.show(); + } } /** -- GitLab