Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe Commits: dacba01b by Tony Chemit at 2022-08-03T11:30:28+02:00 Client - Aucune barre de progression Closes #2409 - - - - - 22 changed files: - client/core/src/main/java/fr/ird/observe/client/ClientUIContext.java - client/core/src/main/java/fr/ird/observe/client/ClientUIContextApi.java - client/core/src/main/java/fr/ird/observe/client/WithClientUIContextApi.java - client/core/src/main/java/fr/ird/observe/client/main/MainUIModel.java - client/core/src/main/java/fr/ird/observe/client/main/ObserveMainUI.jaxx - client/core/src/main/java/fr/ird/observe/client/main/ObserveMainUIHandler.java - client/core/src/main/java/fr/ird/observe/client/main/focus/MainUIFocusModel.java - client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/DataSourceEditorBodyContent.java - client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/avdth/ImportDialogHandler.java - client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/avdth/ImportDialogModel.java - client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/content/data/edit/actions/DeleteEdit.java - client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/menu/DataSourceEditorMenu.jaxx - client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/menu/DataSourceEditorMenuModel.java - client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/navigation/NavigationTree.java - toolkit/api/src/main/i18n/getters/java.getter - toolkit/api/src/main/i18n/translations/toolkit_en_GB.properties - toolkit/api/src/main/i18n/translations/toolkit_es_ES.properties - toolkit/api/src/main/i18n/translations/toolkit_fr_FR.properties - toolkit/api/src/main/java/fr/ird/observe/navigation/tree/navigation/NavigationTreeSelectionModel.java - toolkit/api/src/main/java/fr/ird/observe/navigation/tree/navigation/NavigationTreeSupport.java - client/core/src/main/java/fr/ird/observe/client/util/busy/BusyLayerUI.java → toolkit/api/src/main/java/fr/ird/observe/spi/ui/BusyLayerUI.java - client/core/src/main/java/fr/ird/observe/client/util/busy/BusyModel.java → toolkit/api/src/main/java/fr/ird/observe/spi/ui/BusyModel.java Changes: ===================================== client/core/src/main/java/fr/ird/observe/client/ClientUIContext.java ===================================== @@ -33,7 +33,7 @@ import fr.ird.observe.client.main.body.NoBodyContentComponent; import fr.ird.observe.client.main.callback.ObserveUICallbackManager; import fr.ird.observe.client.main.focus.MainUIFocusModel; import fr.ird.observe.client.util.action.ObserveExecutorService; -import fr.ird.observe.client.util.busy.BusyModel; +import fr.ird.observe.spi.ui.BusyModel; import fr.ird.observe.client.util.session.ObserveSwingSessionHelper; import fr.ird.observe.dto.data.ps.dcp.FloatingObjectPresetsManager; import fr.ird.observe.navigation.id.IdProjectManager; ===================================== client/core/src/main/java/fr/ird/observe/client/ClientUIContextApi.java ===================================== @@ -32,7 +32,7 @@ import fr.ird.observe.client.main.ObserveMainUI; import fr.ird.observe.client.main.callback.ObserveUICallbackManager; import fr.ird.observe.client.main.focus.MainUIFocusModel; import fr.ird.observe.client.util.UIHelper; -import fr.ird.observe.client.util.busy.BusyModel; +import fr.ird.observe.spi.ui.BusyModel; import fr.ird.observe.client.util.session.ObserveSwingSessionHelper; import fr.ird.observe.dto.ObserveUtil; import fr.ird.observe.dto.data.ps.dcp.FloatingObjectPresetsManager; ===================================== client/core/src/main/java/fr/ird/observe/client/WithClientUIContextApi.java ===================================== @@ -31,7 +31,7 @@ import fr.ird.observe.client.main.MainUIModel; import fr.ird.observe.client.main.ObserveMainUI; import fr.ird.observe.client.main.callback.ObserveUICallbackManager; import fr.ird.observe.client.main.focus.MainUIFocusModel; -import fr.ird.observe.client.util.busy.BusyModel; +import fr.ird.observe.spi.ui.BusyModel; import fr.ird.observe.client.util.session.ObserveSwingSessionHelper; import fr.ird.observe.dto.data.ps.dcp.FloatingObjectPresetsManager; import fr.ird.observe.navigation.id.IdProjectManager; ===================================== client/core/src/main/java/fr/ird/observe/client/main/MainUIModel.java ===================================== @@ -24,7 +24,7 @@ package fr.ird.observe.client.main; import fr.ird.observe.client.configuration.ClientConfig; import fr.ird.observe.client.main.focus.MainUIFocusModel; -import fr.ird.observe.client.util.busy.BusyModel; +import fr.ird.observe.spi.ui.BusyModel; import io.ultreia.java4all.bean.AbstractJavaBean; import io.ultreia.java4all.bean.spi.GenerateJavaBeanDefinition; ===================================== client/core/src/main/java/fr/ird/observe/client/main/ObserveMainUI.jaxx ===================================== @@ -22,7 +22,7 @@ <import> fr.ird.observe.client.util.JMenuWithAccelerator - fr.ird.observe.client.util.busy.BusyModel + fr.ird.observe.spi.ui.BusyModel fr.ird.observe.client.configuration.ClientConfig fr.ird.observe.client.main.MainUIModel fr.ird.observe.client.main.body.MainUIBodyContentManager ===================================== client/core/src/main/java/fr/ird/observe/client/main/ObserveMainUIHandler.java ===================================== @@ -27,8 +27,8 @@ import fr.ird.observe.client.configuration.ClientConfig; import fr.ird.observe.client.main.body.MainUIBodyContentManager; import fr.ird.observe.client.util.ObserveKeyStrokesSupport; import fr.ird.observe.client.util.UIHelper; -import fr.ird.observe.client.util.busy.BusyLayerUI; -import fr.ird.observe.client.util.busy.BusyModel; +import fr.ird.observe.spi.ui.BusyLayerUI; +import fr.ird.observe.spi.ui.BusyModel; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.nuiton.jaxx.runtime.spi.UIHandler; ===================================== client/core/src/main/java/fr/ird/observe/client/main/focus/MainUIFocusModel.java ===================================== @@ -22,7 +22,7 @@ package fr.ird.observe.client.main.focus; * #L% */ -import fr.ird.observe.client.util.busy.BusyModel; +import fr.ird.observe.spi.ui.BusyModel; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; ===================================== client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/DataSourceEditorBodyContent.java ===================================== @@ -44,7 +44,7 @@ import fr.ird.observe.client.main.ObserveMainUI; import fr.ird.observe.client.main.body.MainUIBodyContent; import fr.ird.observe.client.main.focus.MainUIFocusModel; import fr.ird.observe.client.util.UIHelper; -import fr.ird.observe.client.util.busy.BusyModel; +import fr.ird.observe.spi.ui.BusyModel; import fr.ird.observe.dto.ProgressionModel; import fr.ird.observe.dto.ProtectedIdsCommon; import fr.ird.observe.dto.db.BabModelVersionException; ===================================== client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/avdth/ImportDialogHandler.java ===================================== @@ -25,7 +25,7 @@ package fr.ird.observe.client.datasource.editor.api.avdth; import fr.ird.observe.client.WithClientUIContextApi; import fr.ird.observe.client.util.ObserveBlockingLayerUI; import fr.ird.observe.client.util.UIHelper; -import fr.ird.observe.client.util.busy.BusyLayerUI; +import fr.ird.observe.spi.ui.BusyLayerUI; import fr.ird.observe.client.util.init.UIInitHelper; import fr.ird.observe.dto.referential.common.OceanReference; import fr.ird.observe.dto.referential.ps.common.ProgramReference; ===================================== client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/avdth/ImportDialogModel.java ===================================== @@ -27,7 +27,7 @@ import fr.ird.observe.client.configuration.ClientConfig; import fr.ird.observe.client.datasource.api.ObserveSwingDataSource; import fr.ird.observe.client.datasource.validation.ContentMessageTableModel; import fr.ird.observe.client.main.focus.FocusDispatcher; -import fr.ird.observe.client.util.busy.BusyModel; +import fr.ird.observe.spi.ui.BusyModel; import fr.ird.observe.dto.ProgressionModel; import fr.ird.observe.services.service.data.ps.AvdthDataImportConfiguration; import fr.ird.observe.services.service.data.ps.AvdthDataImportResult; ===================================== client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/content/data/edit/actions/DeleteEdit.java ===================================== @@ -29,7 +29,7 @@ import fr.ird.observe.client.datasource.editor.api.content.ContentUIHandler; import fr.ird.observe.client.datasource.editor.api.content.data.edit.ContentEditUI; import fr.ird.observe.client.datasource.editor.api.navigation.NavigationTree; import fr.ird.observe.client.datasource.editor.api.navigation.tree.NavigationNode; -import fr.ird.observe.client.util.busy.BusyModel; +import fr.ird.observe.spi.ui.BusyModel; import fr.ird.observe.dto.IdDto; import fr.ird.observe.dto.data.EditableDto; import fr.ird.observe.spi.decoration.DecoratorService; ===================================== client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/menu/DataSourceEditorMenu.jaxx ===================================== @@ -18,20 +18,7 @@ #L% --> <JMenu id='menuStorage'> - - <!-- <import>--> - <!-- fr.ird.observe.client.main.MainUIModel--> - <!-- fr.ird.observe.client.util.busy.BusyModel--> - <!-- fr.ird.observe.client.util.UIHelper--> - <!-- java.util.Locale--> - <!-- java.awt.Dimension--> - <!-- javax.swing.BoxLayout--> - <!-- javax.swing.JComponent--> - <!-- </import>--> - <DataSourceEditorMenuModel id="uiModel" initializer="getContextValue(DataSourceEditorMenuModel.class)"/> - <!-- <BusyModel id='busyModel' initializer='uiModel.getBusyModel()'/>--> - <!-- <MainUIModel id="mainUiModel" initializer="uiModel.getMainUIModel()"/>--> <JMenuItem id='changeStorage'/> <JMenuItem id='reloadStorage' styleClass="optional"/> <JMenuItem id='closeStorage' styleClass="optional"/> ===================================== client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/menu/DataSourceEditorMenuModel.java ===================================== @@ -30,7 +30,7 @@ import fr.ird.observe.client.main.MainUIModel; import fr.ird.observe.client.main.body.MainUIBodyContentManager; import fr.ird.observe.client.main.body.NoBodyContentComponent; import fr.ird.observe.client.util.UIHelper; -import fr.ird.observe.client.util.busy.BusyModel; +import fr.ird.observe.spi.ui.BusyModel; import io.ultreia.java4all.bean.AbstractJavaBean; import io.ultreia.java4all.bean.spi.GenerateJavaBeanDefinition; import org.apache.logging.log4j.LogManager; ===================================== client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/navigation/NavigationTree.java ===================================== @@ -93,7 +93,7 @@ public class NavigationTree extends JXTree implements WithClientUIContextApi { @Override public void updateUI() { - setSelectionModel(new NavigationTreeSelectionModel()); + setSelectionModel(new NavigationTreeSelectionModel(getBusyModel())); super.updateUI(); } ===================================== toolkit/api/src/main/i18n/getters/java.getter ===================================== @@ -87,3 +87,4 @@ observe.ui.datasource.storage.error.rest.password.required observe.ui.datasource.storage.error.rest.user.required observe.ui.datasource.storage.error.rest.user.unknown observe.ui.message.warning.will.be.delete +observe.ui.tree.loading.node ===================================== toolkit/api/src/main/i18n/translations/toolkit_en_GB.properties ===================================== @@ -155,3 +155,4 @@ observe.ui.datasource.storage.error.rest.password.required=Password is mandatory observe.ui.datasource.storage.error.rest.user.required=User login is mandatory observe.ui.datasource.storage.error.rest.user.unknown=User "%s" is not defined on server observe.ui.message.warning.will.be.delete=%1$s\n\nBe ware, export will replace existing data. +observe.ui.tree.loading.node=Loading selected node ===================================== toolkit/api/src/main/i18n/translations/toolkit_es_ES.properties ===================================== @@ -155,3 +155,4 @@ observe.ui.datasource.storage.error.rest.password.required=Le contraseña es obl observe.ui.datasource.storage.error.rest.user.required=El usuario es obligatorio observe.ui.datasource.storage.error.rest.user.unknown=El usuario "%s" no es conocido del servidor observe.ui.message.warning.will.be.delete=%1$s\n\nAtención, la exportación reemplazará la marea existente. +observe.ui.tree.loading.node=Loading selected node ===================================== toolkit/api/src/main/i18n/translations/toolkit_fr_FR.properties ===================================== @@ -155,3 +155,4 @@ observe.ui.datasource.storage.error.rest.password.required=Le mot de passe est o observe.ui.datasource.storage.error.rest.user.required=L'utilisateur est obligatoire observe.ui.datasource.storage.error.rest.user.unknown=L'utilisateur "%s" est inconnu sur le serveur observe.ui.message.warning.will.be.delete=%1$s\n\nAttention, l'export remplacera la marée existante. +observe.ui.tree.loading.node=Chargement du nœud sélectionné ===================================== toolkit/api/src/main/java/fr/ird/observe/navigation/tree/navigation/NavigationTreeSelectionModel.java ===================================== @@ -25,9 +25,12 @@ package fr.ird.observe.navigation.tree.navigation; import fr.ird.observe.navigation.tree.navigation.event.NavigationTreeSelectionEvent; import fr.ird.observe.navigation.tree.navigation.event.NavigationTreeSelectionListener; import fr.ird.observe.navigation.tree.navigation.event.NavigationTreeSelectionVetoException; +import fr.ird.observe.spi.ui.BusyModel; +import io.ultreia.java4all.i18n.I18n; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; +import javax.swing.SwingUtilities; import javax.swing.event.TreeExpansionEvent; import javax.swing.tree.DefaultTreeSelectionModel; import javax.swing.tree.ExpandVetoException; @@ -47,8 +50,10 @@ public class NavigationTreeSelectionModel extends DefaultTreeSelectionModel { private static final Logger log = LogManager.getLogger(NavigationTreeSelectionModel.class); private boolean skipCheckPreviousContent; + private final BusyModel busyModel; - public NavigationTreeSelectionModel() { + public NavigationTreeSelectionModel(BusyModel busyModel) { + this.busyModel = busyModel; setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION); } @@ -84,29 +89,35 @@ public class NavigationTreeSelectionModel extends DefaultTreeSelectionModel { return; } TreePath path = pPaths[0]; - boolean[] newness = new boolean[pPaths.length]; - Arrays.fill(newness, true); - NavigationTreeSelectionEvent event = new NavigationTreeSelectionEvent(this, pPaths, newness, getLeadSelectionPath(), path, skipCheckPreviousContent); boolean canChange = !Objects.equals(path, getSelectionPath()); if (canChange) { + boolean[] newness = new boolean[pPaths.length]; + Arrays.fill(newness, true); + NavigationTreeSelectionEvent event = new NavigationTreeSelectionEvent(this, pPaths, newness, getLeadSelectionPath(), path, skipCheckPreviousContent); try { fireVetoValueChanged(event); } catch (NavigationTreeSelectionVetoException e) { canChange = false; } } - -// boolean canChange = skipCheckPreviousContent || (!Objects.equals(path, getSelectionPath()) && contentUIManager.closeSelectedContentUI()); if (!canChange) { // cancel the change of node log.warn(String.format("Do not change selection path: %s against: %s", path, getSelectionPath())); return; } -// FIXME Move this in a listener -// if (skipCheckPreviousContent) { -// contentUIManager.closeSafeSelectedContentUI(); -// } - super.setSelectionPaths(pPaths); + // can now safely select new path + if (busyModel == null) { + super.setSelectionPaths(pPaths); + } else { + busyModel.addTask(I18n.t("observe.ui.tree.loading.node")); + SwingUtilities.invokeLater(() -> { + try { + super.setSelectionPaths(pPaths); + } finally { + busyModel.popTask(); + } + }); + } } @Override ===================================== toolkit/api/src/main/java/fr/ird/observe/navigation/tree/navigation/NavigationTreeSupport.java ===================================== @@ -54,7 +54,7 @@ public class NavigationTreeSupport<R extends NavigationTreeNode, M extends Navig @Override public void updateUI() { - setSelectionModel(new NavigationTreeSelectionModel()); + setSelectionModel(new NavigationTreeSelectionModel(null)); super.updateUI(); } ===================================== client/core/src/main/java/fr/ird/observe/client/util/busy/BusyLayerUI.java → toolkit/api/src/main/java/fr/ird/observe/spi/ui/BusyLayerUI.java ===================================== @@ -1,8 +1,8 @@ -package fr.ird.observe.client.util.busy; +package fr.ird.observe.spi.ui; /*- * #%L - * ObServe Client :: Core + * ObServe Toolkit :: API * %% * Copyright (C) 2008 - 2022 IRD, Ultreia.io * %% ===================================== client/core/src/main/java/fr/ird/observe/client/util/busy/BusyModel.java → toolkit/api/src/main/java/fr/ird/observe/spi/ui/BusyModel.java ===================================== @@ -1,8 +1,8 @@ -package fr.ird.observe.client.util.busy; +package fr.ird.observe.spi.ui; /*- * #%L - * ObServe Client :: Core + * ObServe Toolkit :: API * %% * Copyright (C) 2008 - 2022 IRD, Ultreia.io * %% View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/dacba01b05b44e8d408c9a0aa4... -- View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/dacba01b05b44e8d408c9a0aa4... You're receiving this email because of your account on gitlab.com.
participants (1)
-
Tony CHEMIT (@tchemit)