branch feature/8238 updated (eb69d62 -> 41f51b7)
This is an automated email from the git hooks/post-receive script. New change to branch feature/8238 in repository tutti. See https://gitlab.nuiton.org/codelutin/tutti.git omits eb69d62 - passage à jaxx 2.29 - désactivation de la suppresion des maturités sélectionnées si elles sont utilisées (RAF : gérer la suppression des lignes d'espèce ou de benthos) (refs #8238) adds e2b2a0e Clean code adds 29ac08e Compacter la table des observations individuelles à l'ouverture de l'écran (See #8202) adds 03a5c31 Livrable #8202 Merge branch 'feature/8202' into develop adds c47e59e Revue du changement de mode de recopie adds 2b893cc renommage des classes de l'ichtyometre en vue de l'ajout de module du pied à coulisse, pour eviter les confusions (refs #7459) adds 70c6707 creation du module pour le pied à coulisse (caliper) (refs #7459) adds 5c79f17 implem de la réception des données du pied a coulisse (refs #7459) adds fa669e5 ajout de la conf du port série du pied a coulisse (refs #7459) adds 0ad86dc ajout de la connexion au pied à coulisse depuis l'appli (refs #7459) adds 1961579 lecture des données reçues sur le pied à coulisse (refs #7459) adds 6607ccd modif de la conif de port série : nombre au lieu de faire une liste des ports dispo (refs #7459) adds 6500c3c affichage du port série écouté dans la barre de statut (refs #7459) adds b8e1fa0 modif de l'icone du pied à coulisse (fixes #7459) adds 151e005 Fix import from merge adds 593e87e Meilleur gestion des dépendences adds 9e61304 Pouvoir éditer des int dans l'éditeur de configuration adds c8b8e53 Reformat code adds 01a9569 Meilleure gestion de l'erreur de connection au pied à coulisse (See #7459) adds 26cfd5f Bien fermer la connection au pied à coulisse lorsque l'on ferme le contexte applicatif adds faa62fe Livrable #7459 Merge branch 'feature/7459' into develop adds f1d0845 libération de listeners quand on quitte l'écran adds b780b8e Le sexe a changé... adds 820b1e5 il se peut que ni la taille, ni le poids n'ai changé adds 02f97ea Gestion de la nullité du quota dans l'algorithme adds 342d5b9 Bien recalculer le cache des échantillons lors d'un import multi-poste adds 068770c Corrections et améliorations diverses sur l'écran des observations individuelles adds 5e7552f Suppression des bons lots adds 6e821cb Correction de la suppression d'une opération de pêche dans le cache des échantillons adds fba0a6a Mieux recharger l'opération dans le contexte de données adds 0b290b1 Ajout de plus de logs suite à la suppression d'une opération dans le cache adds 5dbc8d1 Ajout d'une méthode pour nettoyer les caches (supprimer les clefs vides) + afficher les caches adds 95043cf A la sauvegarde d'une opération, on doit rafraîchir le contexte de données adds 8a3df5d Envoyer un signal quand l'opération est rechargée adds 1f4faad Bien recharger l'opération de pêche lorsqu'elle change dans le contexte de données adds 30b65be Intrudcion PmfmId2 et renommahe de certainnes méthodes (See #8270) adds 06aefae Livrable #8270 Merge branch 'feature/8270' into develop adds c46a071 Amélioration du démarrage d'un chargement d'un trait adds 8feb4a7 [jgitflow-maven-plugin]updating develop poms to master versions to avoid merge conflicts adds f73378a [jgitflow-maven-plugin]updating poms for 4.5-rc-5 branch with snapshot versions adds b918c8a Ajout entete de licenses adds 7b4b579 [jgitflow-maven-plugin]updating poms for branch'release/4.5-rc-5' with non-snapshot versions adds e228463 [jgitflow-maven-plugin]merging 'release/4.5-rc-5' into 'master' adds f0a2e7d [jgitflow-maven-plugin]merging 'master' into 'develop' adds 84f2b2d [jgitflow-maven-plugin]Updating develop poms back to pre merge state adds 9a9ad6f Ne pas supprimer-ajouter le sampling si on fait cela déjà au niveau des observations (See #8274) adds 06d4652 Livrable #8274 Merge branch 'feature/8274' into develop adds a3aa8bc Suppression exception inutile adds 3e4a1e8 Ajout d'une méthode pour bloquer la sortie de l'écran des mensurations s'il y a des modifications (See #8272) adds c4910c8 Bloquer la sortie de l'écran des mensurations si modification pour aller vers l'onglet capture (See #8272) adds 9149fbc femrer l'écran des mensuration dès que l'on quitte son onglet (See #8272) adds f7eb183 Livrable #8272 Merge branch 'feature/8272' into develop new 71cab34 - passage à jaxx 2.29 - désactivation de la suppresion des maturités sélectionnées si elles sont utilisées (RAF : gérer la suppression des lignes d'espèce ou de benthos) (refs #8238) new 41f51b7 - Quand on supprime des lignes d'espece ou benthos du protocole, on enlève leur maturité des maturités utilisées. - On met à jour l'état des boutons de la double liste de maturité quand on arrive sur l'onglet des caractéristiques. Sinon, si la maturité sélectionné a été ajoutée ou supprimée, le bouton n'est plus dans le bon état. fixes #8238 This update added new revisions after undoing existing revisions. That is to say, some revisions that were in the old version of the branch are not in the new version. This situation occurs when a user --force pushes a change and generates a repository containing something like this: * -- * -- B -- O -- O -- O (eb69d62) \ N -- N -- N refs/heads/feature/8238 (41f51b7) You should already have received notification emails for all of the O revisions, and so the following emails describe only the N revisions from the common base, B. Any revisions marked "omits" are not gone; other references still refer to them. Any revisions marked "discards" are gone forever. The 2 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "adds" were already present in the repository and have only been added to this reference. Detailed log of new commits: commit 41f51b7935fa9ab05d539a47b90eb6cdcceaa75c Author: Kevin Morin <morin@codelutin.com> Date: Mon Apr 25 17:48:36 2016 +0200 - Quand on supprime des lignes d'espece ou benthos du protocole, on enlève leur maturité des maturités utilisées. - On met à jour l'état des boutons de la double liste de maturité quand on arrive sur l'onglet des caractéristiques. Sinon, si la maturité sélectionné a été ajoutée ou supprimée, le bouton n'est plus dans le bon état. fixes #8238 commit 71cab34afe5d43e608e8e5c997fe41fc416a980b Author: Kevin Morin <morin@codelutin.com> Date: Fri Apr 22 15:44:36 2016 +0200 - passage à jaxx 2.29 - désactivation de la suppresion des maturités sélectionnées si elles sont utilisées (RAF : gérer la suppression des lignes d'espèce ou de benthos) (refs #8238) Summary of changes: pom.xml | 8 + {tutti-ui-swing => tutti-caliper}/LICENSE.txt | 0 {tutti-ui-swing => tutti-caliper}/README.md | 0 {tutti-ui-swing-updater => tutti-caliper}/pom.xml | 78 ++-- .../caliper/feed/CaliperConnectionException.java | 14 +- .../tutti/caliper/feed/CaliperFeedReader.java | 206 +++++++++ .../caliper/feed/event/CaliperFeedReaderEvent.java | 24 +- .../feed/event/CaliperFeedReaderListener.java | 14 +- .../record/CaliperFeedReaderMeasureRecord.java | 19 +- .../record/CaliperFeedReaderRecordFactory.java | 42 +- .../record/CaliperFeedReaderRecordSupport.java | 13 +- ...{FeedReader.java => IchtyometerFeedReader.java} | 46 +- ...rEvent.java => IchtyometerFeedReaderEvent.java} | 16 +- ...ner.java => IchtyometerFeedReaderListener.java} | 4 +- ...ava => IchtyometerFeedReaderMeasureRecord.java} | 4 +- ...ava => IchtyometerFeedReaderRecordFactory.java} | 26 +- ...ava => IchtyometerFeedReaderRecordSupport.java} | 4 +- ...> IchtyometerFeedReaderStylusMotionRecord.java} | 4 +- .../tutti/ichtyometer/tool/FeedReaderTool.java | 8 +- ...derTest.java => IchtyometerFeedReaderTest.java} | 10 +- .../java/fr/ifremer/tutti/TuttiConfiguration.java | 28 +- .../fr/ifremer/tutti/TuttiConfigurationOption.java | 31 +- .../tutti/persistence/TuttiPersistenceImpl.java | 4 +- .../persistence/TuttiPersistenceNoDbImpl.java | 2 +- .../persistence/dao/referential/pmfm/PmfmId2.java | 192 ++++++++ .../CaracteristicPersistenceService.java | 10 +- .../CaracteristicPersistenceServiceImpl.java | 15 +- .../main/java/fr/ifremer/tutti/util/Numbers.java | 14 +- .../src/main/java/fr/ifremer/tutti/util/Units.java | 24 + .../i18n/tutti-persistence_en_GB.properties | 11 + .../i18n/tutti-persistence_fr_FR.properties | 16 +- .../ifremer/tutti/service/PersistenceService.java | 12 +- .../fr/ifremer/tutti/service/TuttiDataContext.java | 8 +- .../ifremer/tutti/service/cruise/CruiseCache.java | 24 + .../tutti/service/cruise/CruiseCacheAble.java | 24 + ...cesSamplingAlgorithmEntryNotFoundException.java | 24 + .../service/sampling/CruiseSamplingCache.java | 106 +++-- .../sampling/CruiseSamplingInternalCache.java | 78 ++-- .../IndividualObservationSamplingCacheRequest.java | 48 ++ .../IndividualObservationSamplingContext.java | 24 + .../IndividualObservationSamplingStatus.java | 93 +++- ...lObservationSamplingStatusExceptionSupport.java | 24 + .../tutti/service/sampling/SamplingCodeCache.java | 24 + ...NotDefinedOnIndividualObservationException.java | 24 + .../ZoneNotDefinedOnFishingOperationException.java | 24 + .../resources/i18n/tutti-service_en_GB.properties | 127 ------ tutti-ui-swing/pom.xml | 5 + .../filtered-resources/tutti-help-fr.properties | 5 +- .../fr/ifremer/tutti/ui/swing/TuttiUIContext.java | 36 +- .../fr/ifremer/tutti/ui/swing/content/MainUI.jaxx | 3 + .../fr/ifremer/tutti/ui/swing/content/MainUI.jcss | 30 ++ .../tutti/ui/swing/content/MainUIHandler.java | 25 +- .../content/actions/ConnectCaliperAction.java | 74 ++++ .../content/actions/ConnectIchtyometerAction.java | 6 +- ...terAction.java => DisconnectCaliperAction.java} | 22 +- .../actions/DisconnectIchtyometerAction.java | 4 +- .../content/actions/EditCatchesSupportAction.java | 42 +- .../swing/content/config/TuttiConfigUIHandler.java | 58 ++- .../operation/catches/EditCatchesUIHandler.java | 419 ++++-------------- .../SamplingCodeCellEditor.java | 36 +- .../catches/species/BenthosBatchUISupportImpl.java | 10 + .../catches/species/SpeciesBatchUISupportImpl.java | 9 + .../species/SpeciesOrBenthosBatchUISupport.java | 3 + .../edit/actions/RemoveSpeciesBatchAction.java | 6 +- .../edit/actions/RemoveSpeciesSubBatchAction.java | 6 +- .../frequency/AverageWeightsHistogramHandler.java | 24 + .../frequency/AverageWeightsHistogramModel.java | 24 + .../frequency/FrequenciesHistogramHandler.java | 24 + .../frequency/FrequenciesHistogramModel.java | 24 + .../IndividualObservationBatchRowModel.java | 28 +- .../IndividualObservationBatchRowState.java | 24 + .../IndividualObservationBatchTableHandler.java | 387 +++++++--------- .../IndividualObservationBatchTableModel.java | 46 +- .../IndividualObservationBatchUIModel.java | 86 +++- .../IndividualObservationToFrequencyEngine.java | 200 ++++----- ...IndividualObservationToSamplingCacheEngine.java | 137 ++++++ ...dividualObservationToSamplingCacheResolver.java | 147 ------- .../frequency/IndividualObservationUICache.java | 202 +++------ .../species/frequency/SamplingCodeUICache.java | 254 +++++++++++ .../frequency/SamplingNotificationZoneHandler.java | 218 ++++++--- .../frequency/SamplingNotificationZoneModel.java | 54 ++- .../frequency/SamplingNotificationZoneStatus.java | 26 ++ .../frequency/SpeciesFrequencyTableModel.java | 82 +++- .../species/frequency/SpeciesFrequencyUI.jaxx | 9 +- .../frequency/SpeciesFrequencyUIHandler.java | 489 +++++++++++++-------- .../species/frequency/SpeciesFrequencyUIModel.java | 176 +++++--- .../actions/ApplySpeciesFrequencyRafaleAction.java | 15 +- .../actions/CancelEditSpeciesFrequencyAction.java | 15 +- .../frequency/actions/EditSampleCodeAction.java | 29 +- .../ImportMultiPostSpeciesSupportAction.java | 11 +- .../frequency/actions/RemoveObservationAction.java | 2 +- .../actions/ResetSpeciesFrequencyAction.java | 8 +- .../actions/SaveFishingOperationAction.java | 102 +++-- .../protocol/EditProtocolSpeciesTableModel.java | 42 +- .../content/protocol/EditProtocolUIHandler.java | 16 +- .../actions/RemoveBenthosProtocolAction.java | 5 + .../actions/RemoveSpeciesProtocolAction.java | 5 + .../ifremer/tutti/ui/swing/util/SoundEngine.java | 18 +- .../resources/i18n/tutti-ui-swing_en_GB.properties | 60 ++- .../resources/i18n/tutti-ui-swing_fr_FR.properties | 49 ++- .../main/resources/icons/action-caliper-down.png | Bin 0 -> 426 bytes .../src/main/resources/icons/action-caliper-up.png | Bin 0 -> 436 bytes .../fr/ifremer/tutti/ui/swing/SoundUtilTest.java | 19 +- 103 files changed, 3454 insertions(+), 1953 deletions(-) copy {tutti-ui-swing => tutti-caliper}/LICENSE.txt (100%) copy {tutti-ui-swing => tutti-caliper}/README.md (100%) copy {tutti-ui-swing-updater => tutti-caliper}/pom.xml (52%) copy tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/BatchSavedListener.java => tutti-caliper/src/main/java/fr/ifremer/tutti/caliper/feed/CaliperConnectionException.java (77%) create mode 100644 tutti-caliper/src/main/java/fr/ifremer/tutti/caliper/feed/CaliperFeedReader.java copy tutti-ichtyometer/src/main/java/fr/ifremer/tutti/ichtyometer/feed/event/FeedReaderEvent.java => tutti-caliper/src/main/java/fr/ifremer/tutti/caliper/feed/event/CaliperFeedReaderEvent.java (61%) copy tutti-ichtyometer/src/main/java/fr/ifremer/tutti/ichtyometer/feed/event/FeedReaderListener.java => tutti-caliper/src/main/java/fr/ifremer/tutti/caliper/feed/event/CaliperFeedReaderListener.java (76%) copy tutti-ichtyometer/src/main/java/fr/ifremer/tutti/ichtyometer/feed/record/FeedReaderMeasureRecord.java => tutti-caliper/src/main/java/fr/ifremer/tutti/caliper/feed/record/CaliperFeedReaderMeasureRecord.java (78%) copy tutti-ichtyometer/src/main/java/fr/ifremer/tutti/ichtyometer/feed/record/FeedReaderRecordFactory.java => tutti-caliper/src/main/java/fr/ifremer/tutti/caliper/feed/record/CaliperFeedReaderRecordFactory.java (51%) copy tutti-ichtyometer/src/main/java/fr/ifremer/tutti/ichtyometer/feed/record/FeedReaderRecordSupport.java => tutti-caliper/src/main/java/fr/ifremer/tutti/caliper/feed/record/CaliperFeedReaderRecordSupport.java (82%) rename tutti-ichtyometer/src/main/java/fr/ifremer/tutti/ichtyometer/feed/{FeedReader.java => IchtyometerFeedReader.java} (73%) rename tutti-ichtyometer/src/main/java/fr/ifremer/tutti/ichtyometer/feed/event/{FeedReaderEvent.java => IchtyometerFeedReaderEvent.java} (66%) rename tutti-ichtyometer/src/main/java/fr/ifremer/tutti/ichtyometer/feed/event/{FeedReaderListener.java => IchtyometerFeedReaderListener.java} (89%) rename tutti-ichtyometer/src/main/java/fr/ifremer/tutti/ichtyometer/feed/record/{FeedReaderMeasureRecord.java => IchtyometerFeedReaderMeasureRecord.java} (93%) rename tutti-ichtyometer/src/main/java/fr/ifremer/tutti/ichtyometer/feed/record/{FeedReaderRecordFactory.java => IchtyometerFeedReaderRecordFactory.java} (65%) rename tutti-ichtyometer/src/main/java/fr/ifremer/tutti/ichtyometer/feed/record/{FeedReaderRecordSupport.java => IchtyometerFeedReaderRecordSupport.java} (91%) rename tutti-ichtyometer/src/main/java/fr/ifremer/tutti/ichtyometer/feed/record/{FeedReaderStylusMotionRecord.java => IchtyometerFeedReaderStylusMotionRecord.java} (92%) rename tutti-ichtyometer/src/test/java/fr/ifremer/tutti/ichtyometer/feed/{FeedReaderTest.java => IchtyometerFeedReaderTest.java} (81%) create mode 100644 tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/dao/referential/pmfm/PmfmId2.java create mode 100644 tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/actions/ConnectCaliperAction.java copy tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/actions/{DisconnectIchtyometerAction.java => DisconnectCaliperAction.java} (65%) create mode 100644 tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/IndividualObservationToSamplingCacheEngine.java delete mode 100644 tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/IndividualObservationToSamplingCacheResolver.java create mode 100644 tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SamplingCodeUICache.java create mode 100644 tutti-ui-swing/src/main/resources/icons/action-caliper-down.png create mode 100644 tutti-ui-swing/src/main/resources/icons/action-caliper-up.png -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch feature/8238 in repository tutti. See https://gitlab.nuiton.org/codelutin/tutti.git commit 71cab34afe5d43e608e8e5c997fe41fc416a980b Author: Kevin Morin <morin@codelutin.com> Date: Fri Apr 22 15:44:36 2016 +0200 - passage à jaxx 2.29 - désactivation de la suppresion des maturités sélectionnées si elles sont utilisées (RAF : gérer la suppression des lignes d'espèce ou de benthos) (refs #8238) --- pom.xml | 2 +- .../protocol/EditProtocolSpeciesTableModel.java | 30 ++++++++++++++++++++++ .../content/protocol/EditProtocolUIHandler.java | 14 ++++++++-- 3 files changed, 43 insertions(+), 3 deletions(-) diff --git a/pom.xml b/pom.xml index b68d3ea..15d4871 100644 --- a/pom.xml +++ b/pom.xml @@ -128,7 +128,7 @@ <nuitonI18nVersion>3.4.1</nuitonI18nVersion> <nuitonValidatorVersion>3.0</nuitonValidatorVersion> <eugenePluginVersion>2.14</eugenePluginVersion> - <jaxxVersion>2.28.2</jaxxVersion> + <jaxxVersion>2.29-SNAPSHOT</jaxxVersion> <swingXVersion>1.6.4</swingXVersion> <slf4jVersion>1.7.13</slf4jVersion> <!-- Can't use now adagio previous to 3.9.1 after this version --> diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolSpeciesTableModel.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolSpeciesTableModel.java index 4b0e7ee..3c0ab77 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolSpeciesTableModel.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolSpeciesTableModel.java @@ -24,11 +24,14 @@ package fr.ifremer.tutti.ui.swing.content.protocol; import com.google.common.collect.Lists; import fr.ifremer.tutti.persistence.entities.data.SampleCategoryModel; +import fr.ifremer.tutti.persistence.entities.referential.Caracteristic; import fr.ifremer.tutti.persistence.entities.referential.Species; import org.jdesktop.swingx.table.TableColumnModelExt; import org.nuiton.jaxx.application.swing.table.AbstractApplicationTableModel; import org.nuiton.jaxx.application.swing.table.ColumnIdentifier; +import java.util.ArrayList; +import java.util.Collection; import java.util.List; import static org.nuiton.i18n.I18n.n; @@ -81,6 +84,9 @@ public class EditProtocolSpeciesTableModel extends AbstractApplicationTableModel protected final SampleCategoryModel sampleCategoryModel; + // FIXME check if ok to add benthos AND species together + private static final List<Caracteristic> maturitiesUsed = new ArrayList<>(); + private static final long serialVersionUID = 1L; public EditProtocolSpeciesTableModel(SampleCategoryModel sampleCategoryModel, @@ -88,6 +94,16 @@ public class EditProtocolSpeciesTableModel extends AbstractApplicationTableModel super(columnModel, false, false); this.sampleCategoryModel = sampleCategoryModel; setNoneEditableCols(SPECIES_ID); + +// addTableModelListener(new TableModelListener() { +// +// @Override +// public void tableChanged(TableModelEvent e) { +// if (e.getType() == TableModelEvent.DELETE) { +// e.getFirstRow(); +// } +// } +// }); } public static EditProtocolSpeciesRowModel newRow(SampleCategoryModel sampleCategoryModel) { @@ -116,6 +132,17 @@ public class EditProtocolSpeciesTableModel extends AbstractApplicationTableModel }); + //FIXME gérer les maturités des lignes suprpimées + result.addPropertyChangeListener(EditProtocolSpeciesRowModel.PROPERTY_MATURITY_PMFM, + evt -> { + if (evt.getOldValue() != null) { + maturitiesUsed.remove(evt.getOldValue()); + } + if (evt.getNewValue() != null) { + maturitiesUsed.add((Caracteristic) evt.getNewValue()); + } + }); + return result; } @@ -170,4 +197,7 @@ public class EditProtocolSpeciesTableModel extends AbstractApplicationTableModel return result; } + public static boolean isNoneOfTheMaturitiesUsed(Collection<Caracteristic> caracteristics) { + return maturitiesUsed.stream().noneMatch(caracteristics::contains); + } } diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIHandler.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIHandler.java index bfeca14..ef52875 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIHandler.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIHandler.java @@ -551,6 +551,9 @@ public class EditProtocolUIHandler extends AbstractTuttiUIHandler<EditProtocolUI model.getCaracteristics().stream().filter(caracteristic -> !caracteristic.isQualitativeValueEmpty()).collect(Collectors.toList()), model.getMaturityPmfmId()); + maturityList.getModel().addCanRemoveItemsPredicate( + input -> EditProtocolSpeciesTableModel.isNoneOfTheMaturitiesUsed(maturityList.getSelectedList().getSelectedValuesList())); + JMenuItem editMaturity = ui.getEditMaturityCaracteristicAction(); maturityList.getSelectedListPopup().add(editMaturity); @@ -1662,11 +1665,18 @@ public class EditProtocolUIHandler extends AbstractTuttiUIHandler<EditProtocolUI public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) { Component result = defaultRenderer.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus); Caracteristic maturityCaracteristic = (Caracteristic) value; + + Color backgroud; if (!EditProtocolUIHandler.this.getModel().isMaturityValid(maturityCaracteristic)) { - result.setBackground(invalidColor); + backgroud= invalidColor; } else { - result.setBackground(validColor); + backgroud = validColor; } + if (isSelected) { + backgroud = backgroud.darker(); + } + result.setBackground(backgroud); + if (result instanceof JComponent) { ((JComponent) result).setToolTipText(createToolTipText(maturityCaracteristic)); -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch feature/8238 in repository tutti. See https://gitlab.nuiton.org/codelutin/tutti.git commit 41f51b7935fa9ab05d539a47b90eb6cdcceaa75c Author: Kevin Morin <morin@codelutin.com> Date: Mon Apr 25 17:48:36 2016 +0200 - Quand on supprime des lignes d'espece ou benthos du protocole, on enlève leur maturité des maturités utilisées. - On met à jour l'état des boutons de la double liste de maturité quand on arrive sur l'onglet des caractéristiques. Sinon, si la maturité sélectionné a été ajoutée ou supprimée, le bouton n'est plus dans le bon état. fixes #8238 --- .../protocol/EditProtocolSpeciesTableModel.java | 42 ++++++++++++++++------ .../content/protocol/EditProtocolUIHandler.java | 16 ++++++++- .../actions/RemoveBenthosProtocolAction.java | 5 +++ .../actions/RemoveSpeciesProtocolAction.java | 5 +++ 4 files changed, 56 insertions(+), 12 deletions(-) diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolSpeciesTableModel.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolSpeciesTableModel.java index 3c0ab77..936aab4 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolSpeciesTableModel.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolSpeciesTableModel.java @@ -95,15 +95,6 @@ public class EditProtocolSpeciesTableModel extends AbstractApplicationTableModel this.sampleCategoryModel = sampleCategoryModel; setNoneEditableCols(SPECIES_ID); -// addTableModelListener(new TableModelListener() { -// -// @Override -// public void tableChanged(TableModelEvent e) { -// if (e.getType() == TableModelEvent.DELETE) { -// e.getFirstRow(); -// } -// } -// }); } public static EditProtocolSpeciesRowModel newRow(SampleCategoryModel sampleCategoryModel) { @@ -135,11 +126,12 @@ public class EditProtocolSpeciesTableModel extends AbstractApplicationTableModel //FIXME gérer les maturités des lignes suprpimées result.addPropertyChangeListener(EditProtocolSpeciesRowModel.PROPERTY_MATURITY_PMFM, evt -> { + // update the used maturities if (evt.getOldValue() != null) { - maturitiesUsed.remove(evt.getOldValue()); + removeUsedMaturity((Caracteristic) evt.getOldValue()); } if (evt.getNewValue() != null) { - maturitiesUsed.add((Caracteristic) evt.getNewValue()); + addUsedMaturity((Caracteristic) evt.getNewValue()); } }); @@ -197,7 +189,35 @@ public class EditProtocolSpeciesTableModel extends AbstractApplicationTableModel return result; } + // operations on the used maturities + + public static void addUsedMaturity(Caracteristic maturity) { + maturitiesUsed.add(maturity); + } + + public static void removeUsedMaturity(Caracteristic maturity) { + maturitiesUsed.remove(maturity); + } + + public static void removeUsedMaturities(Collection<Caracteristic> maturities) { + maturitiesUsed.removeAll(maturities); + } + + /** + * Check if the caracteristics are used in the maturity caracteristics of the species or benthos + * @param caracteristics the list of caracteristics to check + * @return true if none of the maturities are used + */ public static boolean isNoneOfTheMaturitiesUsed(Collection<Caracteristic> caracteristics) { return maturitiesUsed.stream().noneMatch(caracteristics::contains); } + + /** + * Check if the caracteristic is used in the maturity caracteristics of the species or benthos + * @param caracteristic the caracteristic to check + * @return true if the maturity is used + */ + public static boolean isMaturityUsed(Caracteristic caracteristic) { + return maturitiesUsed.contains(caracteristic); + } } diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIHandler.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIHandler.java index ef52875..58ea42d 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIHandler.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIHandler.java @@ -554,6 +554,15 @@ public class EditProtocolUIHandler extends AbstractTuttiUIHandler<EditProtocolUI maturityList.getModel().addCanRemoveItemsPredicate( input -> EditProtocolSpeciesTableModel.isNoneOfTheMaturitiesUsed(maturityList.getSelectedList().getSelectedValuesList())); + // update maturity list button states when the user goes back to the caracteristic panel + // to update the remove state in case the selected maturity has been added or removed from the species or benthos + ui.getTabPanel().addChangeListener(e -> { + JTabbedPane source = (JTabbedPane) e.getSource(); + if (ui.getCaracteristicPanel().equals(source.getSelectedComponent())) { + maturityList.getHandler().recomputeButtonStates(); + } + }); + JMenuItem editMaturity = ui.getEditMaturityCaracteristicAction(); maturityList.getSelectedListPopup().add(editMaturity); @@ -1657,6 +1666,8 @@ public class EditProtocolUIHandler extends AbstractTuttiUIHandler<EditProtocolUI private Color invalidColor = getConfig().getColorRowInvalid(); + private Color notRemovableColor = getConfig().getColorWarningRow(); + MaturityCaracteristicCellRenderer(ListCellRenderer defaultRenderer) { this.defaultRenderer = defaultRenderer; } @@ -1667,7 +1678,10 @@ public class EditProtocolUIHandler extends AbstractTuttiUIHandler<EditProtocolUI Caracteristic maturityCaracteristic = (Caracteristic) value; Color backgroud; - if (!EditProtocolUIHandler.this.getModel().isMaturityValid(maturityCaracteristic)) { + if (isSelected && EditProtocolSpeciesTableModel.isMaturityUsed((Caracteristic) value)) { + backgroud= notRemovableColor; + + } else if (!EditProtocolUIHandler.this.getModel().isMaturityValid(maturityCaracteristic)) { backgroud= invalidColor; } else { backgroud = validColor; diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/actions/RemoveBenthosProtocolAction.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/actions/RemoveBenthosProtocolAction.java index ea0a8d5..0568fe2 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/actions/RemoveBenthosProtocolAction.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/actions/RemoveBenthosProtocolAction.java @@ -153,6 +153,11 @@ public class RemoveBenthosProtocolAction extends LongActionSupport<EditProtocolU // remove all rows from model getModel().getBenthosRow().removeAll(removedRows); + // remove the maturities of the rows from the used maturities + EditProtocolSpeciesTableModel.removeUsedMaturities(removedRows.stream() + .map(EditProtocolSpeciesRowModel::getMaturityPmfm) + .collect(Collectors.toList())); + // remove the protocolSpecies from the cps table or combobox if (!cpsRowsToDelete.isEmpty()) { handler.deleteCpsRows(cpsRowsToDelete); diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/actions/RemoveSpeciesProtocolAction.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/actions/RemoveSpeciesProtocolAction.java index e9bff10..049f602 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/actions/RemoveSpeciesProtocolAction.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/actions/RemoveSpeciesProtocolAction.java @@ -150,6 +150,11 @@ public class RemoveSpeciesProtocolAction extends LongActionSupport<EditProtocolU // remove all rows from model getModel().getSpeciesRow().removeAll(removedRows); + // remove the maturities of the rows from the used maturities + EditProtocolSpeciesTableModel.removeUsedMaturities(removedRows.stream() + .map(EditProtocolSpeciesRowModel::getMaturityPmfm) + .collect(Collectors.toList())); + // remove the protocolSpecies from the cps table or combobox if (!cpsRowsToDelete.isEmpty()) { handler.deleteCpsRows(cpsRowsToDelete); -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
participants (1)
-
codelutin.com scm