Tony CHEMIT pushed to branch develop-7.x at ultreiaio / ird-observe
Commits:
-
54c95a00
by Tony CHEMIT at 2018-07-13T09:29:41Z
5 changed files:
- client/src/main/java/fr/ird/observe/client/ui/content/data/seine/RouteUIHandler.java
- client/src/main/java/fr/ird/observe/client/ui/tree/navigation/NavigationTree.java
- client/src/main/resources/i18n/client_en_GB.properties
- client/src/main/resources/i18n/client_es_ES.properties
- client/src/main/resources/i18n/client_fr_FR.properties
Changes:
| ... | ... | @@ -6,15 +6,15 @@ |
| 6 | 6 |
* %%
|
| 7 | 7 |
* This program is free software: you can redistribute it and/or modify
|
| 8 | 8 |
* it under the terms of the GNU General Public License as
|
| 9 |
- * published by the Free Software Foundation, either version 3 of the
|
|
| 9 |
+ * published by the Free Software Foundation, either version 3 of the
|
|
| 10 | 10 |
* License, or (at your option) any later version.
|
| 11 |
- *
|
|
| 11 |
+ *
|
|
| 12 | 12 |
* This program is distributed in the hope that it will be useful,
|
| 13 | 13 |
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
| 14 | 14 |
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
| 15 | 15 |
* GNU General Public License for more details.
|
| 16 |
- *
|
|
| 17 |
- * You should have received a copy of the GNU General Public
|
|
| 16 |
+ *
|
|
| 17 |
+ * You should have received a copy of the GNU General Public
|
|
| 18 | 18 |
* License along with this program. If not, see
|
| 19 | 19 |
* <http://www.gnu.org/licenses/gpl-3.0.html>.
|
| 20 | 20 |
* #L%
|
| ... | ... | @@ -33,7 +33,6 @@ import fr.ird.observe.dto.data.seine.ActivitySeineDto; |
| 33 | 33 |
import fr.ird.observe.dto.data.seine.RouteDto;
|
| 34 | 34 |
import fr.ird.observe.dto.data.seine.RouteHelper;
|
| 35 | 35 |
import fr.ird.observe.dto.data.seine.TripSeineDto;
|
| 36 |
-import fr.ird.observe.dto.decoration.ObserveI18nDecoratorHelper;
|
|
| 37 | 36 |
import fr.ird.observe.dto.form.Form;
|
| 38 | 37 |
import fr.ird.observe.dto.referential.seine.VesselActivitySeineHelper;
|
| 39 | 38 |
import fr.ird.observe.dto.referential.seine.VesselActivitySeineReference;
|
| ... | ... | @@ -46,7 +45,6 @@ import org.nuiton.validator.NuitonValidatorScope; |
| 46 | 45 |
|
| 47 | 46 |
import javax.swing.JOptionPane;
|
| 48 | 47 |
import java.util.Date;
|
| 49 |
-import java.util.Objects;
|
|
| 50 | 48 |
|
| 51 | 49 |
import static org.nuiton.i18n.I18n.n;
|
| 52 | 50 |
import static org.nuiton.i18n.I18n.t;
|
| ... | ... | @@ -88,8 +86,8 @@ class RouteUIHandler extends ContentOpenableUIHandler<RouteDto, RouteUI> impleme |
| 88 | 86 |
if (!dataContext.isSelectedOpen(TripSeineDto.class)) {
|
| 89 | 87 |
|
| 90 | 88 |
addMessage(ui, NuitonValidatorScope.INFO,
|
| 91 |
- getTypeI18nKey(TripSeineDto.class),
|
|
| 92 |
- t("observe.common.TripSeineDto.message.not.open"));
|
|
| 89 |
+ getTypeI18nKey(TripSeineDto.class),
|
|
| 90 |
+ t("observe.common.TripSeineDto.message.not.open"));
|
|
| 93 | 91 |
|
| 94 | 92 |
} else {
|
| 95 | 93 |
|
| ... | ... | @@ -157,14 +155,14 @@ class RouteUIHandler extends ContentOpenableUIHandler<RouteDto, RouteUI> impleme |
| 157 | 155 |
|
| 158 | 156 |
if (create) {
|
| 159 | 157 |
addMessage(ui,
|
| 160 |
- NuitonValidatorScope.INFO,
|
|
| 161 |
- getTypeI18nKey(RouteDto.class),
|
|
| 162 |
- t("observe.common.RouteDto.message.creating"));
|
|
| 158 |
+ NuitonValidatorScope.INFO,
|
|
| 159 |
+ getTypeI18nKey(RouteDto.class),
|
|
| 160 |
+ t("observe.common.RouteDto.message.creating"));
|
|
| 163 | 161 |
} else {
|
| 164 | 162 |
addMessage(ui,
|
| 165 |
- NuitonValidatorScope.INFO,
|
|
| 166 |
- getTypeI18nKey(RouteDto.class),
|
|
| 167 |
- t("observe.common.RouteDto.message.updating"));
|
|
| 163 |
+ NuitonValidatorScope.INFO,
|
|
| 164 |
+ getTypeI18nKey(RouteDto.class),
|
|
| 165 |
+ t("observe.common.RouteDto.message.updating"));
|
|
| 168 | 166 |
|
| 169 | 167 |
if (getModel().isHistoricalData()) {
|
| 170 | 168 |
|
| ... | ... | @@ -173,11 +171,11 @@ class RouteUIHandler extends ContentOpenableUIHandler<RouteDto, RouteUI> impleme |
| 173 | 171 |
}
|
| 174 | 172 |
|
| 175 | 173 |
super.startEditUI(RouteUI.BINDING_DATE_DATE,
|
| 176 |
- RouteUI.BINDING_START_LOG_VALUE_NUMBER_VALUE,
|
|
| 177 |
- RouteUI.BINDING_END_LOG_VALUE_ENABLED,
|
|
| 178 |
- RouteUI.BINDING_COMMENT_MODEL,
|
|
| 179 |
- RouteUI.BINDING_CLOSE_ENABLED,
|
|
| 180 |
- RouteUI.BINDING_CLOSE_AND_CREATE_ENABLED);
|
|
| 174 |
+ RouteUI.BINDING_START_LOG_VALUE_NUMBER_VALUE,
|
|
| 175 |
+ RouteUI.BINDING_END_LOG_VALUE_ENABLED,
|
|
| 176 |
+ RouteUI.BINDING_COMMENT_MODEL,
|
|
| 177 |
+ RouteUI.BINDING_CLOSE_ENABLED,
|
|
| 178 |
+ RouteUI.BINDING_CLOSE_AND_CREATE_ENABLED);
|
|
| 181 | 179 |
|
| 182 | 180 |
// le formulaire est en état modifié uniquement si on est en création
|
| 183 | 181 |
getModel().setModified(create);
|
| ... | ... | @@ -270,17 +268,11 @@ class RouteUIHandler extends ContentOpenableUIHandler<RouteDto, RouteUI> impleme |
| 270 | 268 |
|
| 271 | 269 |
RouteDto route = getBean();
|
| 272 | 270 |
|
| 273 |
- // on doit vérifier qu'il existe une activité de fin
|
|
| 274 |
- // de veille (type activity vessel == 16)
|
|
| 271 |
+ // on doit vérifier qu'il existe une activité de fin de veille (type activity vessel == 16)
|
|
| 275 | 272 |
|
| 276 |
- boolean mustAddFinVeille = !route.isActivityFindDeVeilleFound();
|
|
| 273 |
+ boolean mustAddFinVeille = !route.isActivitySeineEmpty() && !route.isActivityFindDeVeilleFound();
|
|
| 277 | 274 |
|
| 278 | 275 |
boolean createActivityFinDeVeille = false;
|
| 279 |
- boolean closeActivityFinDeVeille = false;
|
|
| 280 |
- boolean gotoActivityFinDeVeille = false;
|
|
| 281 |
- |
|
| 282 |
- NavigationTree treeHelper = getNavigationTree();
|
|
| 283 |
- NavigationTreeNodeSupport routeNode = treeHelper.getSelectedNode();
|
|
| 284 | 276 |
|
| 285 | 277 |
if (mustAddFinVeille) {
|
| 286 | 278 |
|
| ... | ... | @@ -292,11 +284,12 @@ class RouteUIHandler extends ContentOpenableUIHandler<RouteDto, RouteUI> impleme |
| 292 | 284 |
t("observe.common.RouteDto.message.need.fin.veille.activity"),
|
| 293 | 285 |
JOptionPane.WARNING_MESSAGE,
|
| 294 | 286 |
new Object[]{
|
| 295 |
- t("observe.common.RouteDto.choice.not.create.fin.veille.activity.and.continue"),
|
|
| 296 |
- t("observe.common.RouteDto.choice.create.fin.veille.activity.and.continue"),
|
|
| 287 |
+ t("observe.choice.cancel"),
|
|
| 297 | 288 |
t("observe.common.RouteDto.choice.create.fin.veille.activity"),
|
| 298 |
- t("observe.choice.cancel")},
|
|
| 299 |
- 0);
|
|
| 289 |
+ t("observe.common.RouteDto.choice.not.create.fin.veille.activity.and.continue"),
|
|
| 290 |
+ |
|
| 291 |
+ },
|
|
| 292 |
+ 2);
|
|
| 300 | 293 |
if (log.isDebugEnabled()) {
|
| 301 | 294 |
log.debug("response : " + reponse);
|
| 302 | 295 |
}
|
| ... | ... | @@ -304,11 +297,11 @@ class RouteUIHandler extends ContentOpenableUIHandler<RouteDto, RouteUI> impleme |
| 304 | 297 |
|
| 305 | 298 |
switch (reponse) {
|
| 306 | 299 |
case JOptionPane.CLOSED_OPTION:
|
| 307 |
- case 3:
|
|
| 300 |
+ case 0:
|
|
| 308 | 301 |
|
| 309 |
- // abandon objectOperation
|
|
| 302 |
+ // abandon operation
|
|
| 310 | 303 |
return false;
|
| 311 |
- case 0:
|
|
| 304 |
+ case 2:
|
|
| 312 | 305 |
|
| 313 | 306 |
// rien a faire
|
| 314 | 307 |
// on veut juste cloturer la route
|
| ... | ... | @@ -319,15 +312,7 @@ class RouteUIHandler extends ContentOpenableUIHandler<RouteDto, RouteUI> impleme |
| 319 | 312 |
// fermeture de l'activity de fin de veille
|
| 320 | 313 |
// fermeture de la route
|
| 321 | 314 |
createActivityFinDeVeille = true;
|
| 322 |
- closeActivityFinDeVeille = true;
|
|
| 323 |
- |
|
| 324 |
- break;
|
|
| 325 |
- case 2:
|
|
| 326 | 315 |
|
| 327 |
- // creation de l'activity de fin de veille
|
|
| 328 |
- // selection de cette activity de fin de veille
|
|
| 329 |
- createActivityFinDeVeille = true;
|
|
| 330 |
- gotoActivityFinDeVeille = true;
|
|
| 331 | 316 |
break;
|
| 332 | 317 |
}
|
| 333 | 318 |
}
|
| ... | ... | @@ -338,18 +323,11 @@ class RouteUIHandler extends ContentOpenableUIHandler<RouteDto, RouteUI> impleme |
| 338 | 323 |
stopEditUI();
|
| 339 | 324 |
|
| 340 | 325 |
// creation de l'action de fin de veille
|
| 341 |
- addActivityFinDeVeille(closeActivityFinDeVeille);
|
|
| 342 |
- |
|
| 343 |
- if (gotoActivityFinDeVeille) {
|
|
| 326 |
+ addActivityFinDeVeille();
|
|
| 344 | 327 |
|
| 345 |
- // on selection l'activity de fin de veille et on y reste
|
|
| 346 |
- // donc on ne continue pas la fermeture de la route
|
|
| 347 |
- return false;
|
|
| 348 |
- }
|
|
| 349 |
- |
|
| 350 |
- // on retourne sur la route
|
|
| 351 |
- // que l'on va refermer
|
|
| 352 |
- treeHelper.selectNode(routeNode);
|
|
| 328 |
+ // on selection l'activity de fin de veille et on y reste
|
|
| 329 |
+ // donc on ne continue pas la fermeture de la route
|
|
| 330 |
+ return false;
|
|
| 353 | 331 |
}
|
| 354 | 332 |
|
| 355 | 333 |
// fermeture de la route
|
| ... | ... | @@ -357,16 +335,18 @@ class RouteUIHandler extends ContentOpenableUIHandler<RouteDto, RouteUI> impleme |
| 357 | 335 |
return true;
|
| 358 | 336 |
}
|
| 359 | 337 |
|
| 360 |
- private ActivitySeineUI addActivityFinDeVeille(boolean close) {
|
|
| 338 |
+ private ActivitySeineUI addActivityFinDeVeille() {
|
|
| 361 | 339 |
|
| 362 | 340 |
NavigationTree treeHelper = getNavigationTree();
|
| 363 | 341 |
|
| 364 | 342 |
// on créee l'activity de fin de veille
|
| 365 | 343 |
NavigationTreeNodeSupport<?> parentNode = treeHelper.getSelectedNode().findChildByClass(ActivitySeineDto.class);
|
| 366 | 344 |
log.debug("PARENT NODE = " + parentNode);
|
| 367 |
- treeHelper.addUnsavedNode(Objects.requireNonNull(parentNode), ActivitySeineDto.class);
|
|
| 368 |
- NavigationTreeNodeSupport activityNode = treeHelper.getSelectedNode();
|
|
| 369 |
- Objects.requireNonNull(activityNode);
|
|
| 345 |
+ // select activities node before adding new node, otherwise, the new unsaved activity node may no more be selected
|
|
| 346 |
+ // at the end of addUnsavedNode method (reloading sub node will empty selection...)
|
|
| 347 |
+ treeHelper.selectNode(parentNode);
|
|
| 348 |
+ treeHelper.addUnsavedNode(parentNode, ActivitySeineDto.class);
|
|
| 349 |
+ |
|
| 370 | 350 |
// on recupère l'écran d'édition
|
| 371 | 351 |
ActivitySeineUI selectedUI = (ActivitySeineUI) ObserveSwingApplicationContext.get().getContentUIManager().getSelectedContentUI();
|
| 372 | 352 |
|
| ... | ... | @@ -387,17 +367,6 @@ class RouteUIHandler extends ContentOpenableUIHandler<RouteDto, RouteUI> impleme |
| 387 | 367 |
// on initialise la fin de veille a la dernière minute du jour
|
| 388 | 368 |
selectedUI.getBean().setTime(DateUtil.getEndOfDay(DateUtil.createDate(0, 0, 0)));
|
| 389 | 369 |
|
| 390 |
- if (close) {
|
|
| 391 |
- |
|
| 392 |
- // on sauvegarde l'activité
|
|
| 393 |
- selectedUI.save(false);
|
|
| 394 |
- |
|
| 395 |
- // on ferme l'activité
|
|
| 396 |
- selectedUI.closeData();
|
|
| 397 |
- |
|
| 398 |
- // on ferme l'écran
|
|
| 399 |
- selectedUI.stopEdit();
|
|
| 400 |
- }
|
|
| 401 | 370 |
return selectedUI;
|
| 402 | 371 |
}
|
| 403 | 372 |
|
| ... | ... | @@ -98,7 +98,7 @@ public class NavigationTree extends JXTree { |
| 98 | 98 |
setSelectionModel(new DefaultTreeSelectionModel() {
|
| 99 | 99 |
@Override
|
| 100 | 100 |
public void setSelectionPath(TreePath path) {
|
| 101 |
- boolean canChange = adjusting || (!Objects.equals(path, getSelectionPath()) && ObserveSwingApplicationContext.get().getContentUIManager().closeSelectedContentUI());
|
|
| 101 |
+ boolean canChange = !Objects.equals(path, getSelectionPath()) && ObserveSwingApplicationContext.get().getContentUIManager().closeSelectedContentUI();
|
|
| 102 | 102 |
if (!canChange) {
|
| 103 | 103 |
// cancel the change of node
|
| 104 | 104 |
return;
|
| ... | ... | @@ -401,8 +401,6 @@ public class NavigationTree extends JXTree { |
| 401 | 401 |
reloadNode(node, refreshChilds);
|
| 402 | 402 |
}
|
| 403 | 403 |
|
| 404 |
- private boolean adjusting;
|
|
| 405 |
- |
|
| 406 | 404 |
public NavigationTreeNodeSupport addUnsavedNode(NavigationTreeNodeSupport parentNode, Class<?> type) {
|
| 407 | 405 |
|
| 408 | 406 |
// noeud en mode creation
|
| ... | ... | @@ -435,13 +433,8 @@ public class NavigationTree extends JXTree { |
| 435 | 433 |
// Fix bug (if no child in parent node, it will not expand...)
|
| 436 | 434 |
fireTreeExpanded(new TreePath(result.getPath()));
|
| 437 | 435 |
|
| 438 |
- adjusting=true;
|
|
| 439 |
- try {
|
|
| 440 |
- // Select new node
|
|
| 441 |
- selectNode(result);
|
|
| 442 |
- } finally {
|
|
| 443 |
- adjusting=false;
|
|
| 444 |
- }
|
|
| 436 |
+ // Select new node
|
|
| 437 |
+ selectNode(result);
|
|
| 445 | 438 |
|
| 446 | 439 |
return result;
|
| 447 | 440 |
}
|
| ... | ... | @@ -844,13 +844,12 @@ observe.common.RouteDto.action.reopen.tip=Reopen route |
| 844 | 844 |
observe.common.RouteDto.action.reopenSelected=Reopen route
|
| 845 | 845 |
observe.common.RouteDto.action.reopenSelected.tip=Reopen route
|
| 846 | 846 |
observe.common.RouteDto.choice.create.fin.veille.activity=Create end activity
|
| 847 |
-observe.common.RouteDto.choice.create.fin.veille.activity.and.continue=Create end watch activity and continue
|
|
| 848 | 847 |
observe.common.RouteDto.choice.not.create.fin.veille.activity.and.continue=do not create end watch activity and continue
|
| 849 | 848 |
observe.common.RouteDto.list=List of routes
|
| 850 | 849 |
observe.common.RouteDto.message.active.found=A route was found.
|
| 851 | 850 |
observe.common.RouteDto.message.active.found.for.other.trip=An open route exists in another trip.
|
| 852 | 851 |
observe.common.RouteDto.message.creating=Route is in creation
|
| 853 |
-observe.common.RouteDto.message.need.fin.veille.activity=No end watch activity was found in route to close.\nyou can\:\n\n\t- Cancel and go back to route\n\t- Create and go the end watch activity\n\t- Create end watch activity and close route\n\t- Close route without creating the end watch activity.
|
|
| 852 |
+observe.common.RouteDto.message.need.fin.veille.activity=No end watch activity was found in route to close.\nyou can\:\n\n\t- Close route without creating the end watch activity\n\t- Create and go the end watch activity\n\t- Cancel and go back to route
|
|
| 854 | 853 |
observe.common.RouteDto.message.no.active.found=No open route found, you can create a new one or reopen one.
|
| 855 | 854 |
observe.common.RouteDto.message.no.active.found.for.other.trip=No open route found on open trip
|
| 856 | 855 |
observe.common.RouteDto.message.not.open=Current route is not open, no modification is possible.
|
| ... | ... | @@ -844,13 +844,12 @@ observe.common.RouteDto.action.reopen.tip=Reabrir la ruta |
| 844 | 844 |
observe.common.RouteDto.action.reopenSelected=Reabrir la ruta
|
| 845 | 845 |
observe.common.RouteDto.action.reopenSelected.tip=Reabrir la ruta seleccionada
|
| 846 | 846 |
observe.common.RouteDto.choice.create.fin.veille.activity=Crear la actividad de fin de guardia
|
| 847 |
-observe.common.RouteDto.choice.create.fin.veille.activity.and.continue=Crear la actividad de fin de guardia y continuar
|
|
| 848 | 847 |
observe.common.RouteDto.choice.not.create.fin.veille.activity.and.continue=No crear la actividad de fin de guardia y continuar
|
| 849 | 848 |
observe.common.RouteDto.list=Lista de rutas
|
| 850 | 849 |
observe.common.RouteDto.message.active.found=Ruta abierta.
|
| 851 | 850 |
observe.common.RouteDto.message.active.found.for.other.trip=Existe una ruta abierta en otra marea.
|
| 852 | 851 |
observe.common.RouteDto.message.creating=Ruta en proceso de creación.
|
| 853 |
-observe.common.RouteDto.message.need.fin.veille.activity=Ninguna actividad de fin de guardia registrada en la ruta a cerrar.\n Puede \:\n\n\t- Cancelar el cierre y continuar con la ruta\n\t- Crear la actividad de fin de guardia e ir a ella.\n\t- Crear la actividad de fin de guardia y a continuación cerra la ruta\n\t- Continuar con el cierra de la ruta sin crear la actividad de fin de guardia.
|
|
| 852 |
+observe.common.RouteDto.message.need.fin.veille.activity=Ninguna actividad de fin de guardia registrada en la ruta a cerrar.\n Puede \:\n\n\t- Continuar con el cierra de la ruta sin crear la actividad de fin de guardia\n\t- Crear la actividad de fin de guardia e ir a ella\n\t- Cancelar el cierre y continuar con la ruta
|
|
| 854 | 853 |
observe.common.RouteDto.message.no.active.found=Ninguna ruta abierta, puede crear una nueva o reabrir una.
|
| 855 | 854 |
observe.common.RouteDto.message.no.active.found.for.other.trip=Ninguna ruta abierta sobre la marea abierta
|
| 856 | 855 |
observe.common.RouteDto.message.not.open=la ruta actual no está abierta, no se pueden hacer modificaciones.
|
| ... | ... | @@ -844,13 +844,12 @@ observe.common.RouteDto.action.reopen.tip=Rouvrir la route |
| 844 | 844 |
observe.common.RouteDto.action.reopenSelected=Rouvrir la route
|
| 845 | 845 |
observe.common.RouteDto.action.reopenSelected.tip=Rouvrir la route sélectionnée
|
| 846 | 846 |
observe.common.RouteDto.choice.create.fin.veille.activity=Créer l'activité de fin de veille
|
| 847 |
-observe.common.RouteDto.choice.create.fin.veille.activity.and.continue=Créer l'activité de fin de veille et continuer
|
|
| 848 | 847 |
observe.common.RouteDto.choice.not.create.fin.veille.activity.and.continue=Ne pas créer l'activité de fin de veille et continuer
|
| 849 | 848 |
observe.common.RouteDto.list=Liste des routes
|
| 850 | 849 |
observe.common.RouteDto.message.active.found=Une route est ouverte.
|
| 851 | 850 |
observe.common.RouteDto.message.active.found.for.other.trip=Une route ouverte existe dans une autre marée.
|
| 852 | 851 |
observe.common.RouteDto.message.creating=La route est en cours de création.
|
| 853 |
-observe.common.RouteDto.message.need.fin.veille.activity=Aucune activité de fin de veille enregistrée sur la route à clôturer.\nVous pouvez \:\n\n\t- Annuler la fermeture et rester sur la route\n\t- Créer l'activité de fin de veille et vous y rendre\n\t- Créer l'activité de fin de veille, la clôturer puis clôturer la route\n\t- Continuer la clôture de la route sans créer cette activité de fin de veille.
|
|
| 852 |
+observe.common.RouteDto.message.need.fin.veille.activity=Aucune activité de fin de veille enregistrée sur la route à clôturer.\nVous pouvez \:\n\n\t- Continuer la clôture de la route sans créer cette activité de fin de veille\n\t- Créer l'activité de fin de veille et vous y rendre\n\t- Annuler la fermeture et rester sur la route
|
|
| 854 | 853 |
observe.common.RouteDto.message.no.active.found=Aucune route ouverte, vous pouvez soit en créer une nouvelle, soit en réouvrir une.
|
| 855 | 854 |
observe.common.RouteDto.message.no.active.found.for.other.trip=Aucune route ouverte sur la marée ouverte
|
| 856 | 855 |
observe.common.RouteDto.message.not.open=La route courante n'est pas ouverte, aucune modification possible.
|