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 de4eeb9b4d3f1469601a34047c0417fcbffe5ab3..e472bc7cc8f685b44eec49339a1ae1b7f8982579 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 @@ -4,6 +4,7 @@ import org.dominokit.domino.ui.utils.DominoElement; import com.google.gwt.core.client.GWT; +import elemental2.dom.DomGlobal; import elemental2.dom.HTMLElement; import fr.agrometinfo.www.client.view.BaseView; import fr.agrometinfo.www.client.view.LayoutView; @@ -28,6 +29,11 @@ public final class RightPanelPresenter implements Presenter { */ void hide(); + /** + * @return boolean, true if the panel is visible and open. + */ + boolean isVisible(); + /** * Display summary data. * @@ -74,7 +80,10 @@ public final class RightPanelPresenter implements Presenter { .onSuccess(view::setSummary)// .onFailed(layoutView::failureNotification)// .send(); - view.show(); + // Do not automatically open the panel on mobile or if it is closed + if (DomGlobal.screen.width > LayoutView.MIN_WIDTH_FOR_PANELS && view.isVisible()) { + view.show(); + } } /** 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 71a8400f0ede786826aa36780150cfa7b992386b..8c172b605baf37ab0f792de2bcc4f89f4a3f8de8 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 @@ -62,6 +62,11 @@ import fr.agrometinfo.www.shared.dto.PeriodDTO; * @author Olivier Maury */ public final class LayoutView extends AbstractBaseView<LayoutPresenter> implements LayoutPresenter.View { + /** + * The minimum screen width to display panels on startup. + */ + public static final int MIN_WIDTH_FOR_PANELS = 1000; + /** * Code of indicator to show by default. */ @@ -214,6 +219,14 @@ public final class LayoutView extends AbstractBaseView<LayoutPresenter> implemen initLeftPanel(); initFooter(); initMapView(); + + if (DomGlobal.screen.width < MIN_WIDTH_FOR_PANELS) { + layout.hideLeftPanel(); + layout.hideRightPanel(); + } else { + layout.showLeftPanel(); + layout.showRightPanel(); + } } private void initFooter() { @@ -357,6 +370,13 @@ public final class LayoutView extends AbstractBaseView<LayoutPresenter> implemen addMenuItem(dotDropMenu, CSTS.logout(), Icons.ALL.exit_to_app_mdi(), () -> getPresenter().logout()); } + /** + * @return boolean, true if the right panel is visible and open. + */ + public boolean isRightPanelVisible() { + return layout.isRightPanelVisible(); + } + private Notification notification(final String msg) { DomGlobal.console.info("Notification!"); return Notification.create(msg).setPosition(Notification.TOP_LEFT).show(); 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 25c86cb37fc52a4a414e7b63398a9b9e4b12e7c6..d6d764404ea7511db58e7630d27ee2ec86546f56 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 @@ -148,6 +148,11 @@ public final class RightPanelView implements RightPanelPresenter.View { container.add(barChartContainer); } + @Override + public boolean isVisible() { + return layoutView.isRightPanelVisible(); + } + @Override public void setPresenter(final RightPanelPresenter p) { // Do nothing