Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe

Commits:

9 changed files:

Changes:

  • client-core/src/main/java/fr/ird/observe/client/ui/actions/content/api/data/table/SaveTableDataUIAction.java
    ... ... @@ -71,8 +71,10 @@ public class SaveTableDataUIAction<D extends DataDto, C extends DataDto, U exten
    71 71
             ContentTableModel<D, C> tableModel = ui.getTableModel();
    
    72 72
             if (model.isModified() || model.isCanSaveRow()) {
    
    73 73
     
    
    74
    -            // flush modified line to model
    
    75
    -            tableModel.updateRowFromEditBean();
    
    74
    +            // flush modified line to model if table not empty
    
    75
    +            if (!tableModel.isEmpty()) {
    
    76
    +                tableModel.updateRowFromEditBean();
    
    77
    +            }
    
    76 78
             }
    
    77 79
     
    
    78 80
             List<C> objets = tableModel.getData();
    

  • client-core/src/main/java/fr/ird/observe/client/ui/content/api/ContentUIHandler.java
    ... ... @@ -59,25 +59,27 @@ import fr.ird.observe.services.service.actions.synchro.referential.ng.Referentia
    59 59
     import fr.ird.observe.services.service.actions.validate.ValidateService;
    
    60 60
     import fr.ird.observe.services.service.data.NavigationService;
    
    61 61
     import fr.ird.observe.services.service.data.TripManagementService;
    
    62
    -import fr.ird.observe.services.service.data.longline.obs.ActivityLongLineObsEncounterService;
    
    63
    -import fr.ird.observe.services.service.data.longline.obs.ActivityLongLineObsSensorUsedService;
    
    62
    +import fr.ird.observe.services.service.data.longline.TripLonglineGearUseService;
    
    63
    +import fr.ird.observe.services.service.data.longline.TripLonglineSampleLogbookService;
    
    64
    +import fr.ird.observe.services.service.data.longline.TripLonglineService;
    
    65
    +import fr.ird.observe.services.service.data.longline.landing.TripLonglineLandingService;
    
    64 66
     import fr.ird.observe.services.service.data.longline.logbook.ActivityLonglineLogbookSampleService;
    
    65 67
     import fr.ird.observe.services.service.data.longline.logbook.ActivityLonglineLogbookService;
    
    66
    -import fr.ird.observe.services.service.data.longline.obs.ActivityLonglineObsService;
    
    67
    -import fr.ird.observe.services.service.data.longline.obs.BranchlineObsService;
    
    68 68
     import fr.ird.observe.services.service.data.longline.logbook.SetLonglineLogbookCatchService;
    
    69 69
     import fr.ird.observe.services.service.data.longline.logbook.SetLonglineLogbookGlobalCompositionService;
    
    70 70
     import fr.ird.observe.services.service.data.longline.logbook.SetLonglineLogbookService;
    
    71
    +import fr.ird.observe.services.service.data.longline.obs.ActivityLongLineObsEncounterService;
    
    72
    +import fr.ird.observe.services.service.data.longline.obs.ActivityLongLineObsSensorUsedService;
    
    73
    +import fr.ird.observe.services.service.data.longline.obs.ActivityLonglineObsService;
    
    74
    +import fr.ird.observe.services.service.data.longline.obs.BranchlineObsService;
    
    71 75
     import fr.ird.observe.services.service.data.longline.obs.SetLonglineObsCatchService;
    
    72 76
     import fr.ird.observe.services.service.data.longline.obs.SetLonglineObsDetailCompositionService;
    
    73 77
     import fr.ird.observe.services.service.data.longline.obs.SetLonglineObsGlobalCompositionService;
    
    74 78
     import fr.ird.observe.services.service.data.longline.obs.SetLonglineObsService;
    
    75 79
     import fr.ird.observe.services.service.data.longline.obs.TdrObsService;
    
    76
    -import fr.ird.observe.services.service.data.longline.TripLonglineGearUseService;
    
    77
    -import fr.ird.observe.services.service.data.longline.landing.TripLonglineLandingService;
    
    78
    -import fr.ird.observe.services.service.data.longline.TripLonglineSampleLogbookService;
    
    79
    -import fr.ird.observe.services.service.data.longline.TripLonglineService;
    
    80 80
     import fr.ird.observe.services.service.data.longline.pairing.ActivityLonglinePairingService;
    
    81
    +import fr.ird.observe.services.service.data.seine.TripSeineGearUseService;
    
    82
    +import fr.ird.observe.services.service.data.seine.TripSeineService;
    
    81 83
     import fr.ird.observe.services.service.data.seine.obs.ActivitySeineService;
    
    82 84
     import fr.ird.observe.services.service.data.seine.obs.FloatingObjectService;
    
    83 85
     import fr.ird.observe.services.service.data.seine.obs.NonTargetCatchReleaseService;
    
    ... ... @@ -91,8 +93,6 @@ import fr.ird.observe.services.service.data.seine.obs.SetSeineService;
    91 93
     import fr.ird.observe.services.service.data.seine.obs.TargetCatchService;
    
    92 94
     import fr.ird.observe.services.service.data.seine.obs.TargetSampleService;
    
    93 95
     import fr.ird.observe.services.service.data.seine.obs.TransmittingBuoyOperationService;
    
    94
    -import fr.ird.observe.services.service.data.seine.TripSeineGearUseService;
    
    95
    -import fr.ird.observe.services.service.data.seine.TripSeineService;
    
    96 96
     import fr.ird.observe.services.service.referential.ReferentialService;
    
    97 97
     import fr.ird.observe.services.service.sql.SqlScriptProducerService;
    
    98 98
     import fr.ird.observe.spi.DtoModelHelper;
    
    ... ... @@ -387,6 +387,9 @@ public abstract class ContentUIHandler<U extends ContentUI> implements ObserveSe
    387 387
         }
    
    388 388
     
    
    389 389
         final void destroyUI() {
    
    390
    +        if (ui==null) {
    
    391
    +            return;
    
    392
    +        }
    
    390 393
             UIHelper.removeAllDataBindings(getUi());
    
    391 394
             getModel().destroy();
    
    392 395
             UIHelper.destroy(getUi());
    
    ... ... @@ -608,6 +611,11 @@ public abstract class ContentUIHandler<U extends ContentUI> implements ObserveSe
    608 611
     //    }
    
    609 612
     
    
    610 613
         final boolean closeUI() {
    
    614
    +        if (ui == null) {
    
    615
    +            // When a error was found while loading the previous screen
    
    616
    +            // If we do nothing, then we can't ever qui the data source
    
    617
    +            return true;
    
    618
    +        }
    
    611 619
             boolean b = checkEdit(ui);
    
    612 620
             log.debug(prefix + "Can close " + ui.getClass() + " : " + b);
    
    613 621
             if (b) {
    

  • client-core/src/main/java/fr/ird/observe/client/ui/content/api/data/table/ContentTableUIModel.java
    ... ... @@ -118,13 +118,26 @@ public abstract class ContentTableUIModel<D extends DataDto, C extends DataDto>
    118 118
     
    
    119 119
         @Override
    
    120 120
         protected ContentMode computeMode(boolean canWrite) {
    
    121
    -        if (!canWrite || !showData) {
    
    121
    +        if (!canWrite) {
    
    122 122
                 return ContentMode.READ;
    
    123 123
             }
    
    124
    +        ContentMode result;
    
    124 125
             if (getSelectedNode().getType().equals(getEditNode().getType())) {
    
    125
    -            return getContentModeFromSelf();
    
    126
    +            result = getContentModeFromSelf();
    
    127
    +            return result;
    
    126 128
             }
    
    127
    -        return getContentModeFromParent();
    
    129
    +        result = getContentModeFromParent();
    
    130
    +        boolean showData = computeShowData(result);
    
    131
    +        setShowData(showData);
    
    132
    +        if (!showData) {
    
    133
    +            result = ContentMode.READ;
    
    134
    +        }
    
    135
    +        return result;
    
    136
    +    }
    
    137
    +
    
    138
    +    protected boolean computeShowData(ContentMode contentMode) {
    
    139
    +        // by default can show data
    
    140
    +        return true;
    
    128 141
         }
    
    129 142
     
    
    130 143
         @Override
    
    ... ... @@ -209,9 +222,8 @@ public abstract class ContentTableUIModel<D extends DataDto, C extends DataDto>
    209 222
         }
    
    210 223
     
    
    211 224
         public void setShowData(boolean showData) {
    
    212
    -        boolean oldValue = this.showData;
    
    213 225
             this.showData = showData;
    
    214
    -        firePropertyChange(PROPERTY_SHOW_DATA, oldValue, showData);
    
    226
    +        firePropertyChange(PROPERTY_SHOW_DATA, showData);
    
    215 227
         }
    
    216 228
     
    
    217 229
         @Override
    

  • client-core/src/main/java/fr/ird/observe/client/ui/content/data/ps/observation/NonTargetSampleUIHandler.java
    ... ... @@ -68,6 +68,23 @@ public class NonTargetSampleUIHandler extends AbstractSampleUIHandler<NonTargetS
    68 68
             return ui.getModel();
    
    69 69
         }
    
    70 70
     
    
    71
    +    @Override
    
    72
    +    public void beforeInit(NonTargetSampleUI ui) {
    
    73
    +        super.beforeInit(ui);
    
    74
    +    }
    
    75
    +
    
    76
    +    @Override
    
    77
    +    public void afterInit(NonTargetSampleUI ui) {
    
    78
    +        super.afterInit(ui);
    
    79
    +    }
    
    80
    +
    
    81
    +    @Override
    
    82
    +    protected void onOpenBeforeOpenModel() {
    
    83
    +        super.onOpenBeforeOpenModel();
    
    84
    +        // We can't add filter since it uses the model.form, so add them now
    
    85
    +        onAfterInitAddReferentialFilters(getModel().getReferenceCache());
    
    86
    +    }
    
    87
    +
    
    71 88
         @Override
    
    72 89
         protected ObserveLayoutFocusTraversalPolicy<NonTargetSampleUI> createFocusTraversalPolicy() {
    
    73 90
             return new ObserveLayoutFocusTraversalPolicy<NonTargetSampleUI>() {
    
    ... ... @@ -93,6 +110,9 @@ public class NonTargetSampleUIHandler extends AbstractSampleUIHandler<NonTargetS
    93 110
     
    
    94 111
         @Override
    
    95 112
         protected void onAfterInitAddReferentialFilters(ContentUIReferenceCache referenceCache) {
    
    113
    +        if (getModel().getForm() == null) {
    
    114
    +            return;
    
    115
    +        }
    
    96 116
             referenceCache.addReferentialFilter(NonTargetLengthDto.PROPERTY_SPECIES, incomingReferences -> {
    
    97 117
                 ReferentialDtoReferenceSet<SpeciesReference> sampleSpecies = getNonTargetSampleService().getSampleSpecies(getModel().getSelectedId());
    
    98 118
                 return new LinkedList<>(sampleSpecies.toSet());
    
    ... ... @@ -166,8 +186,10 @@ public class NonTargetSampleUIHandler extends AbstractSampleUIHandler<NonTargetS
    166 186
         protected void loadEditBean(String beanId) {
    
    167 187
             Form<NonTargetSampleDto> form = getNonTargetSampleService().loadForm(beanId);
    
    168 188
     //        FIXME
    
    189
    +
    
    169 190
             NonTargetSampleUIModel model = getModel();
    
    170
    -        model.setForm(form);
    
    191
    +//        model.getReferenceCache().loadReferentialReferenceSetsInModel(form);
    
    192
    +//        model.setForm(form);
    
    171 193
             model.openForm(form);
    
    172 194
     //        // on a besoin du formulaire dans cette méthode
    
    173 195
     //        loadReferentialReferenceSetsInModel(form);
    
    ... ... @@ -242,7 +264,7 @@ public class NonTargetSampleUIHandler extends AbstractSampleUIHandler<NonTargetS
    242 264
     
    
    243 265
         @Override
    
    244 266
         public void doPersist(NonTargetSampleDto bean) {
    
    245
    -        SaveResultDto saveResult = getNonTargetSampleService().save(getModel().getSelectedParentId(), bean);
    
    267
    +        SaveResultDto saveResult = getNonTargetSampleService().save(getModel().getSelectedId(), bean);
    
    246 268
             saveResult.toDto(bean);
    
    247 269
         }
    
    248 270
     
    

  • client-core/src/main/java/fr/ird/observe/client/ui/content/data/ps/observation/NonTargetSampleUIModel.java
    ... ... @@ -22,6 +22,7 @@ package fr.ird.observe.client.ui.content.data.ps.observation;
    22 22
      * #L%
    
    23 23
      */
    
    24 24
     
    
    25
    +import fr.ird.observe.client.ui.content.api.ContentMode;
    
    25 26
     import fr.ird.observe.client.ui.content.api.data.table.ContentTableMeta;
    
    26 27
     import fr.ird.observe.client.ui.content.api.data.table.ContentTableModel;
    
    27 28
     import fr.ird.observe.client.ui.content.api.data.table.ContentTableUI;
    
    ... ... @@ -122,6 +123,12 @@ public class NonTargetSampleUIModel extends ContentTableUIModel<NonTargetSampleD
    122 123
             firePropertyChange(PROPERTY_DEFAULT_SIZE_MEASURE_TYPE, oldValue, defaultSizeMeasureType);
    
    123 124
         }
    
    124 125
     
    
    126
    +    @Override
    
    127
    +    protected boolean computeShowData(ContentMode contentMode) {
    
    128
    +        String selectedId = getSelectedId();
    
    129
    +        return ui.getDataSource().getNonTargetSampleService().canUseNonTargetSample(selectedId);
    
    130
    +    }
    
    131
    +
    
    125 132
         //FIXME Voir pourquoi c'est le seul modèle qui surcharge ça ???
    
    126 133
     //    @Override
    
    127 134
     //    public <D extends ReferentialDto, R extends ReferentialDtoReference<D, R>> Optional<Set<R>> tryToGetReferentialReferenceSet(String propertyName) {
    

  • client-core/src/main/java/fr/ird/observe/client/ui/content/data/ps/observation/TargetSampleCaptureUIHandler.java
    ... ... @@ -39,16 +39,16 @@ public class TargetSampleCaptureUIHandler extends TargetSampleUIHandler implemen
    39 39
         TargetSampleCaptureUIHandler() {
    
    40 40
             super(false);
    
    41 41
         }
    
    42
    -//
    
    43
    -//    @Override
    
    44
    -//    public void beforeInit(TargetSampleCaptureUI ui) {
    
    45
    -//        super.beforeInit(ui);
    
    46
    -//    }
    
    47
    -//
    
    48
    -//    @Override
    
    49
    -//    public void afterInit(TargetSampleCaptureUI ui) {
    
    50
    -//        super.afterInit(ui);
    
    51
    -//    }
    
    42
    +
    
    43
    +    @Override
    
    44
    +    public void beforeInit(TargetSampleCaptureUI ui) {
    
    45
    +        super.beforeInit(ui);
    
    46
    +    }
    
    47
    +
    
    48
    +    @Override
    
    49
    +    public void afterInit(TargetSampleCaptureUI ui) {
    
    50
    +        super.afterInit(ui);
    
    51
    +    }
    
    52 52
     
    
    53 53
     
    
    54 54
         @Override
    

  • client-core/src/main/java/fr/ird/observe/client/ui/content/data/ps/observation/TargetSampleRejeteUIHandler.java
    ... ... @@ -40,15 +40,15 @@ public class TargetSampleRejeteUIHandler extends TargetSampleUIHandler implement
    40 40
             super(true);
    
    41 41
         }
    
    42 42
     
    
    43
    -//    @Override
    
    44
    -//    public void beforeInit(TargetSampleRejeteUI targetSampleRejeteUI) {
    
    45
    -//        super.beforeInit(targetSampleRejeteUI);
    
    46
    -//    }
    
    47
    -//
    
    48
    -//    @Override
    
    49
    -//    public void afterInit(TargetSampleRejeteUI targetSampleRejeteUI) {
    
    50
    -//        super.afterInit(targetSampleRejeteUI);
    
    51
    -//    }
    
    43
    +    @Override
    
    44
    +    public void beforeInit(TargetSampleRejeteUI targetSampleRejeteUI) {
    
    45
    +        super.beforeInit(targetSampleRejeteUI);
    
    46
    +    }
    
    47
    +
    
    48
    +    @Override
    
    49
    +    public void afterInit(TargetSampleRejeteUI targetSampleRejeteUI) {
    
    50
    +        super.afterInit(targetSampleRejeteUI);
    
    51
    +    }
    
    52 52
     
    
    53 53
         @Override
    
    54 54
         protected ObserveLayoutFocusTraversalPolicy createFocusTraversalPolicy() {
    

  • client-core/src/main/java/fr/ird/observe/client/ui/content/data/ps/observation/TargetSampleUIHandler.java
    ... ... @@ -39,6 +39,7 @@ import fr.ird.observe.dto.referential.common.SizeMeasureTypeReference;
    39 39
     import fr.ird.observe.dto.referential.common.SpeciesDto;
    
    40 40
     import fr.ird.observe.dto.referential.common.SpeciesReference;
    
    41 41
     import fr.ird.observe.dto.result.SaveResultDto;
    
    42
    +import fr.ird.observe.spi.DtoModelHelper;
    
    42 43
     import org.nuiton.validator.NuitonValidatorScope;
    
    43 44
     
    
    44 45
     import javax.swing.JComponent;
    
    ... ... @@ -130,6 +131,10 @@ public class TargetSampleUIHandler<U extends ContentTableUI<TargetSampleDto, Tar
    130 131
             }
    
    131 132
         }
    
    132 133
     
    
    134
    +    boolean isDiscarded() {
    
    135
    +        return discarded;
    
    136
    +    }
    
    137
    +
    
    133 138
         @Override
    
    134 139
         protected ObserveLayoutFocusTraversalPolicy<U> createFocusTraversalPolicy() {
    
    135 140
             return null;
    
    ... ... @@ -183,6 +188,8 @@ public class TargetSampleUIHandler<U extends ContentTableUI<TargetSampleDto, Tar
    183 188
             List<SizeMeasureTypeReference> sizeMeasureTypes = getReferentialReferences(SizeMeasureTypeReference.class);
    
    184 189
             List<SizeMeasureTypeReference> data = SizeMeasureTypeHelper.filterForSeine(sizeMeasureTypes);
    
    185 190
             log.info(prefix + "Using " + data.size() + " size measure type(s).");
    
    191
    +        // We need to fill the referential cache (normally this is done in onOpenModel method)
    
    192
    +        getModel().getReferenceCache().loadReferentialReferenceSetsInModel(DtoModelHelper.getOptionalFormDefinition(TargetSampleDto.class).get(), true);
    
    186 193
             loadSizeMeasureTypes();
    
    187 194
             checkSizeMeasureTypes(data);
    
    188 195
             ((TargetSampleUI) ui).getSizeMeasureType().setData(data);
    
    ... ... @@ -224,7 +231,7 @@ public class TargetSampleUIHandler<U extends ContentTableUI<TargetSampleDto, Tar
    224 231
     
    
    225 232
         @Override
    
    226 233
         public void doPersist(TargetSampleDto bean) {
    
    227
    -        SaveResultDto saveResult = getTargetSampleService().save(getModel().getSelectedParentId(), bean);
    
    234
    +        SaveResultDto saveResult = getTargetSampleService().save(getModel().getSelectedId(), bean);
    
    228 235
             saveResult.toDto(bean);
    
    229 236
         }
    
    230 237
     
    

  • client-core/src/main/java/fr/ird/observe/client/ui/content/data/ps/observation/TargetSampleUIModel.java
    ... ... @@ -22,6 +22,7 @@ package fr.ird.observe.client.ui.content.data.ps.observation;
    22 22
      * #L%
    
    23 23
      */
    
    24 24
     
    
    25
    +import fr.ird.observe.client.ui.content.api.ContentMode;
    
    25 26
     import fr.ird.observe.client.ui.content.api.data.table.ContentTableMeta;
    
    26 27
     import fr.ird.observe.client.ui.content.api.data.table.ContentTableModel;
    
    27 28
     import fr.ird.observe.client.ui.content.api.data.table.ContentTableUI;
    
    ... ... @@ -104,6 +105,12 @@ public class TargetSampleUIModel extends ContentTableUIModel<TargetSampleDto, Ta
    104 105
             };
    
    105 106
         }
    
    106 107
     
    
    108
    +    @Override
    
    109
    +    protected boolean computeShowData(ContentMode contentMode) {
    
    110
    +        String selectedId = getSelectedId();
    
    111
    +        return ui.getDataSource().getTargetSampleService().canUseTargetSample(selectedId,((TargetSampleUI)ui).getHandler().isDiscarded());
    
    112
    +    }
    
    113
    +
    
    107 114
         public SizeMeasureTypeReference getDefaultSizeMeasureType() {
    
    108 115
             return defaultSizeMeasureType;
    
    109 116
         }