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

Commits:

1 changed file:

Changes:

  • client/datasource/editor/ps/src/main/java/fr/ird/observe/client/datasource/editor/ps/data/logbook/ActivityUIHandler.java
    ... ... @@ -34,7 +34,9 @@ import fr.ird.observe.dto.data.ps.logbook.ActivityReference;
    34 34
     import fr.ird.observe.dto.referential.ps.common.VesselActivityReference;
    
    35 35
     import io.ultreia.java4all.i18n.I18n;
    
    36 36
     
    
    37
    +import java.beans.PropertyChangeListener;
    
    37 38
     import java.util.List;
    
    39
    +import java.util.Objects;
    
    38 40
     
    
    39 41
     /**
    
    40 42
      * @author Tony Chemit - dev@tchemit.fr
    
    ... ... @@ -42,6 +44,17 @@ import java.util.List;
    42 44
      */
    
    43 45
     class ActivityUIHandler extends GeneratedActivityUIHandler {
    
    44 46
     
    
    47
    +    /**
    
    48
    +     * To enable or not original coordinate on ActivityDto.originalDataModified flag.
    
    49
    +     * <p>
    
    50
    +     * See <a href="https://gitlab.com/ultreiaio/ird-observe/-/issues/2720">issue 2720</a>
    
    51
    +     */
    
    52
    +    private final PropertyChangeListener originalDataModifiedChanged;
    
    53
    +
    
    54
    +    public ActivityUIHandler() {
    
    55
    +        originalDataModifiedChanged = evt -> onOriginalDataModifiedChanged((Boolean) evt.getNewValue());
    
    56
    +    }
    
    57
    +
    
    45 58
         @Override
    
    46 59
         public void onInit(ActivityUI ui) {
    
    47 60
             super.onInit(ui);
    
    ... ... @@ -49,6 +62,15 @@ class ActivityUIHandler extends GeneratedActivityUIHandler {
    49 62
             fr.ird.observe.client.datasource.editor.ps.data.observation.ActivityUIHandler.initLabels(activities, ui.getVesselActivityInformation(), ui.getVesselActivityInformation2());
    
    50 63
         }
    
    51 64
     
    
    65
    +    @Override
    
    66
    +    public void startEditUI() {
    
    67
    +        ActivityDto bean = getModel().getStates().getBean();
    
    68
    +        bean.removePropertyChangeListener(ActivityDto.PROPERTY_ORIGINAL_DATA_MODIFIED, originalDataModifiedChanged);
    
    69
    +        super.startEditUI();
    
    70
    +        bean.addPropertyChangeListener(ActivityDto.PROPERTY_ORIGINAL_DATA_MODIFIED, originalDataModifiedChanged);
    
    71
    +        onOriginalDataModifiedChanged(bean.isOriginalDataModified());
    
    72
    +    }
    
    73
    +
    
    52 74
         @Override
    
    53 75
         protected void installSaveAction() {
    
    54 76
             SaveAction.create(ui, ActivityDto.class)
    
    ... ... @@ -66,10 +88,41 @@ class ActivityUIHandler extends GeneratedActivityUIHandler {
    66 88
                     })
    
    67 89
                     .install(ui.getSave());
    
    68 90
             CopyCoordinate.install(I18n.t("observe.ui.action.copyCoordinate"),
    
    69
    -                               ObservePsKeyStrokes.KEY_STROKE_COPY_COORDINATE,
    
    70
    -                               ui,
    
    71
    -                               ui.getCoordinate(),
    
    72
    -                               ui.getCoordinateOriginal(),
    
    73
    -                               ui.getCopyFirstCoordinate());
    
    91
    +                ObservePsKeyStrokes.KEY_STROKE_COPY_COORDINATE,
    
    92
    +                ui,
    
    93
    +                ui.getCoordinate(),
    
    94
    +                ui.getCoordinateOriginal(),
    
    95
    +                ui.getCopyFirstCoordinate());
    
    96
    +    }
    
    97
    +
    
    98
    +
    
    99
    +    private void onOriginalDataModifiedChanged(Boolean newValue) {
    
    100
    +
    
    101
    +        ActivityUI ui = getUi();
    
    102
    +
    
    103
    +        ActivityDto bean = getModel().getStates().getBean();
    
    104
    +        if (Objects.equals(true, newValue)) {
    
    105
    +
    
    106
    +            // original data modified
    
    107
    +            ui.getCoordinateOriginal().setEnabled(true);
    
    108
    +            //FIXME In jaxx should be done by previous statement
    
    109
    +            ui.getCoordinateOriginal().getGlobalResetButton().setEnabled(true);
    
    110
    +            ui.getCoordinateOriginal().getDmdFormat().setEnabled(true);
    
    111
    +            ui.getCoordinateOriginal().getDmsFormat().setEnabled(true);
    
    112
    +            ui.getCoordinateOriginal().getDdFormat().setEnabled(true);
    
    113
    +            ui.getCopyFirstCoordinate().setEnabled(true);
    
    114
    +
    
    115
    +        } else {
    
    116
    +
    
    117
    +            // original data not modified
    
    118
    +            ui.getCoordinateOriginal().getGlobalResetButton().doClick();
    
    119
    +            ui.getCoordinateOriginal().setEnabled(false);
    
    120
    +            //FIXME In jaxx should be done by previous statement
    
    121
    +            ui.getCoordinateOriginal().getGlobalResetButton().setEnabled(false);
    
    122
    +            ui.getCoordinateOriginal().getDmdFormat().setEnabled(false);
    
    123
    +            ui.getCoordinateOriginal().getDmsFormat().setEnabled(false);
    
    124
    +            ui.getCoordinateOriginal().getDdFormat().setEnabled(false);
    
    125
    +            ui.getCopyFirstCoordinate().setEnabled(false);
    
    126
    +        }
    
    74 127
         }
    
    75 128
     }