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

Commits:

9 changed files:

Changes:

  • client-core/src/main/java/fr/ird/observe/client/ui/content/data/longline/BranchlineUI.jaxx
    ... ... @@ -34,6 +34,7 @@
    34 34
         fr.ird.observe.client.ui.actions.content.BranchlineSetDefaultTimerTimeOnBoard
    
    35 35
     
    
    36 36
         fr.ird.observe.client.ui.util.JComment
    
    37
    +    fr.ird.observe.client.ui.util.time.UnlimitedTimeEditor
    
    37 38
     
    
    38 39
         org.nuiton.jaxx.widgets.number.NumberEditor
    
    39 40
         io.ultreia.java4all.jaxx.widgets.combobox.JaxxComboBox
    
    ... ... @@ -122,7 +123,7 @@ public void edit(BranchlineDto branchline) { getHandler().edit(branchline); }
    122 123
                           <JCheckBox id='timer' styleClass="i18n"/>
    
    123 124
                         </cell>
    
    124 125
                         <cell columns="2">
    
    125
    -                      <TimeEditor id='timeSinceContact' constructorParams='this'/>
    
    126
    +                      <UnlimitedTimeEditor id='timeSinceContact' constructorParams='this'/>
    
    126 127
                         </cell>
    
    127 128
                       </row>
    
    128 129
     
    

  • client-core/src/main/java/fr/ird/observe/client/ui/content/data/longline/BranchlineUI.jcss
    ... ... @@ -64,13 +64,13 @@
    64 64
       propertyTime:{BranchlineDto.PROPERTY_TIME_SINCE_CONTACT};
    
    65 65
       time:{model.getTimeSinceContact()};
    
    66 66
       bean:{model};
    
    67
    -  showTimeEditorSlider:false;
    
    67
    +  showReset:true;
    
    68 68
     }
    
    69 69
     
    
    70 70
     #timerTimeOnBoard {
    
    71 71
       date:{bean.getTimerTimeOnBoard()};
    
    72
    -  showTimeEditorSlider:false;
    
    73 72
       propertyDate: {BranchlineDto.PROPERTY_TIMER_TIME_ON_BOARD};
    
    73
    +  showReset:true;
    
    74 74
     }
    
    75 75
     
    
    76 76
     #topType {
    

  • client-core/src/main/java/fr/ird/observe/client/ui/content/data/longline/BranchlineUIHandler.java
    ... ... @@ -32,24 +32,23 @@ import fr.ird.observe.client.ui.content.ObserveLayoutFocusTraversalPolicy;
    32 32
     import fr.ird.observe.client.ui.util.UIHelper;
    
    33 33
     import fr.ird.observe.dto.data.longline.BranchlineDto;
    
    34 34
     import fr.ird.observe.dto.data.longline.BranchlineHelper;
    
    35
    +import io.ultreia.java4all.i18n.I18n;
    
    35 36
     import org.apache.commons.lang3.BooleanUtils;
    
    36 37
     import org.apache.logging.log4j.LogManager;
    
    37 38
     import org.apache.logging.log4j.Logger;
    
    38 39
     import org.nuiton.decorator.Decorator;
    
    39
    -import io.ultreia.java4all.i18n.I18n;
    
    40 40
     import org.nuiton.jaxx.runtime.spi.UIHandler;
    
    41 41
     import org.nuiton.jaxx.validator.swing.SwingValidatorMessage;
    
    42 42
     import org.nuiton.jaxx.validator.swing.SwingValidatorMessageTableModel;
    
    43
    -import org.nuiton.util.DateUtil;
    
    44 43
     import org.nuiton.validator.NuitonValidatorScope;
    
    45 44
     
    
    46 45
     import javax.swing.JOptionPane;
    
    47 46
     import javax.swing.event.TableModelListener;
    
    48 47
     import java.awt.Component;
    
    49 48
     import java.awt.Container;
    
    50
    -import java.util.Calendar;
    
    51
    -import java.util.Date;
    
    49
    +import java.beans.PropertyChangeListener;
    
    52 50
     import java.util.HashSet;
    
    51
    +import java.util.Objects;
    
    53 52
     import java.util.Set;
    
    54 53
     
    
    55 54
     /**
    
    ... ... @@ -60,22 +59,23 @@ import java.util.Set;
    60 59
      */
    
    61 60
     public class BranchlineUIHandler extends ContentUIHandler<BranchlineDto, BranchlineUI> implements UIHandler<BranchlineUI> {
    
    62 61
     
    
    63
    -    /** Logger */
    
    62
    +    /**
    
    63
    +     * Logger
    
    64
    +     */
    
    64 65
         private static final Logger log = LogManager.getLogger(BranchlineUIHandler.class);
    
    65 66
     
    
    66 67
         // Compute valid state of tab from the error table
    
    67 68
         protected final TableModelListener computeTabValidStateListener;
    
    68
    -
    
    69
    +    private final PropertyChangeListener timerChanged;
    
    69 70
         private Decorator<BranchlineDto> branchlineDecorator;
    
    70 71
     
    
    71 72
         public BranchlineUIHandler() {
    
    72 73
             super(DataContextType.SetLongline, null);
    
    73 74
             computeTabValidStateListener = e -> {
    
    74
    -
    
    75 75
                 SwingValidatorMessageTableModel source = (SwingValidatorMessageTableModel) e.getSource();
    
    76 76
                 computeTabValidState(source);
    
    77
    -
    
    78 77
             };
    
    78
    +        timerChanged = evt -> onTimerChanged((Boolean) evt.getNewValue());
    
    79 79
         }
    
    80 80
     
    
    81 81
         @Override
    
    ... ... @@ -112,6 +112,7 @@ public class BranchlineUIHandler extends ContentUIHandler<BranchlineDto, Branchl
    112 112
                                                  evt -> getUi().getValidator().setChanged(true));
    
    113 113
     
    
    114 114
             ui.getTimerTimeOnBoard().getSliderHidorToolBar().setVisible(true);
    
    115
    +        ui.getTimerTimeOnBoard().getSliderHidor().setVisible(false);
    
    115 116
             ui.getTimerTimeOnBoard().getSliderHidorToolBar().add(ui.getSetDefaultTimerTimeOnBoard());
    
    116 117
         }
    
    117 118
     
    
    ... ... @@ -127,10 +128,7 @@ public class BranchlineUIHandler extends ContentUIHandler<BranchlineDto, Branchl
    127 128
             BranchlineHelper.copyBranchlineDto(branchline, getBean());
    
    128 129
     
    
    129 130
             if (branchline == null) {
    
    130
    -
    
    131
    -            Date timeSinceContactDate = DateUtil.createDate(0, 0, 0, 0, 0, 0);
    
    132
    -            model.setTimeSinceContact(timeSinceContactDate);
    
    133
    -
    
    131
    +            model.setTimeSinceContact(null);
    
    134 132
                 // stop edit
    
    135 133
                 stopEditUI();
    
    136 134
     
    
    ... ... @@ -138,13 +136,9 @@ public class BranchlineUIHandler extends ContentUIHandler<BranchlineDto, Branchl
    138 136
     
    
    139 137
                 if (BooleanUtils.isTrue(branchline.getTimer())) {
    
    140 138
                     Long timeSinceContact = branchline.getTimeSinceContact();
    
    141
    -                if (timeSinceContact != null) {
    
    142
    -                    Date timeSinceContactDate = DateUtil.createDate(0, (int) (timeSinceContact % 60), (int) (timeSinceContact / 60f), 0, 0, 0);
    
    143
    -                    model.setTimeSinceContact(timeSinceContactDate);
    
    144
    -                }
    
    139
    +                model.setTimeSinceContact(timeSinceContact==null?null:timeSinceContact.intValue());
    
    145 140
                 } else {
    
    146
    -                Date timeSinceContactDate = DateUtil.createDate(0, 0, 0, 0, 0, 0);
    
    147
    -                model.setTimeSinceContact(timeSinceContactDate);
    
    141
    +                model.setTimeSinceContact(null);
    
    148 142
                 }
    
    149 143
     
    
    150 144
                 if (model.isEnabled() && !model.isEditing()) {
    
    ... ... @@ -203,9 +197,6 @@ public class BranchlineUIHandler extends ContentUIHandler<BranchlineDto, Branchl
    203 197
                 log.info("OpenUI: " + getModel());
    
    204 198
             }
    
    205 199
     
    
    206
    -        getUi().getTimeSinceContact().getSliderHidor().setVisible(false);
    
    207
    -        getUi().getTimerTimeOnBoard().getSliderHidor().setVisible(false);
    
    208
    -
    
    209 200
             boolean canWrite = computeCanWrite(getDataSource());
    
    210 201
     
    
    211 202
             getModel().setCanWrite(canWrite);
    
    ... ... @@ -258,10 +249,19 @@ public class BranchlineUIHandler extends ContentUIHandler<BranchlineDto, Branchl
    258 249
                               BranchlineUI.BINDING_TIMER_TIME_ON_BOARD_DATE
    
    259 250
             );
    
    260 251
     
    
    252
    +        ui.getBean().removePropertyChangeListener(BranchlineDto.PROPERTY_TIMER, timerChanged);
    
    253
    +        ui.getBean().addPropertyChangeListener(BranchlineDto.PROPERTY_TIMER, timerChanged);
    
    254
    +
    
    261 255
             model.setModified(false);
    
    262 256
     
    
    263 257
         }
    
    264 258
     
    
    259
    +    @Override
    
    260
    +    public void stopEditUI() {
    
    261
    +        ui.getBean().removePropertyChangeListener(BranchlineDto.PROPERTY_TIMER, timerChanged);
    
    262
    +        super.stopEditUI();
    
    263
    +    }
    
    264
    +
    
    265 265
         @Override
    
    266 266
         protected boolean doSave(BranchlineDto bean) {
    
    267 267
     
    
    ... ... @@ -270,18 +270,13 @@ public class BranchlineUIHandler extends ContentUIHandler<BranchlineDto, Branchl
    270 270
             BranchlineHelper.copyBranchlineDto(bean, beanToSave);
    
    271 271
     
    
    272 272
             if (BooleanUtils.isTrue(bean.getTimer())) {
    
    273
    -            Calendar calendar = Calendar.getInstance();
    
    274
    -            calendar.setTime(getModel().getTimeSinceContact());
    
    275
    -            int minutes = calendar.get(Calendar.MINUTE);
    
    276
    -            int hours = calendar.get(Calendar.HOUR_OF_DAY);
    
    277
    -            beanToSave.setTimeSinceContact(minutes + 60L * hours);
    
    273
    +            Integer timeSinceContact = getModel().getTimeSinceContact();
    
    274
    +            beanToSave.setTimeSinceContact(timeSinceContact == null ? null : timeSinceContact.longValue());
    
    278 275
             } else {
    
    279 276
                 beanToSave.setTimeSinceContact(null);
    
    280 277
             }
    
    281 278
     
    
    282
    -        if (log.isInfoEnabled()) {
    
    283
    -            log.info("Time since contact: " + beanToSave.getTimeSinceContact());
    
    284
    -        }
    
    279
    +        log.info(String.format("Save time since contact: %d", beanToSave.getTimeSinceContact()));
    
    285 280
     
    
    286 281
             // for external models
    
    287 282
             getModel().fireSaved();
    
    ... ... @@ -417,4 +412,13 @@ public class BranchlineUIHandler extends ContentUIHandler<BranchlineDto, Branchl
    417 412
     
    
    418 413
         }
    
    419 414
     
    
    415
    +    void onTimerChanged(Boolean newValue) {
    
    416
    +        if (Objects.equals(true, newValue)) {
    
    417
    +            // with timer
    
    418
    +            ui.getModel().setTimeSinceContact(0);
    
    419
    +        } else {
    
    420
    +            // without timer
    
    421
    +            ui.getModel().setTimeSinceContact(null);
    
    422
    +        }
    
    423
    +    }
    
    420 424
     }

  • client-core/src/main/java/fr/ird/observe/client/ui/content/data/longline/BranchlineUIModel.java
    ... ... @@ -73,7 +73,7 @@ public class BranchlineUIModel extends ContentUIModel<BranchlineDto> {
    73 73
     
    
    74 74
         private boolean hookAndBaitTabValid;
    
    75 75
     
    
    76
    -    private Date timeSinceContact;
    
    76
    +    private Integer timeSinceContact;
    
    77 77
         private Date haulingStartTimeStamp;
    
    78 78
     
    
    79 79
         public BranchlineUIModel() {
    
    ... ... @@ -106,13 +106,14 @@ public class BranchlineUIModel extends ContentUIModel<BranchlineDto> {
    106 106
             firePropertyChange(PROPERTY_HOOK_AND_BAIT_TAB_VALID, null, hookAndBaitTabValid);
    
    107 107
         }
    
    108 108
     
    
    109
    -    public Date getTimeSinceContact() {
    
    109
    +    public Integer getTimeSinceContact() {
    
    110 110
             return timeSinceContact;
    
    111 111
         }
    
    112 112
     
    
    113
    -    public void setTimeSinceContact(Date timeSinceContact) {
    
    113
    +    public void setTimeSinceContact(Integer timeSinceContact) {
    
    114
    +        Integer oldValue = getTimeSinceContact();
    
    114 115
             this.timeSinceContact = timeSinceContact;
    
    115
    -        firePropertyChange(BranchlineDto.PROPERTY_TIME_SINCE_CONTACT, null, getTimeSinceContact());
    
    116
    +        firePropertyChange(BranchlineDto.PROPERTY_TIME_SINCE_CONTACT, oldValue, getTimeSinceContact());
    
    116 117
         }
    
    117 118
     
    
    118 119
         // For external model known when a saved action was done
    

  • client-core/src/main/java/fr/ird/observe/client/ui/content/data/longline/CatchLonglineUI.jcss
    ... ... @@ -338,7 +338,6 @@ JCheckBox {
    338 338
       date:{branchlineBean.getTimerTimeOnBoard()};
    
    339 339
       propertyDate: {BranchlineDto.PROPERTY_TIMER_TIME_ON_BOARD};
    
    340 340
       bean:{branchlineBean};
    
    341
    -  showTimeEditorSlider:false;
    
    342 341
       showReset:true;
    
    343 342
     }
    
    344 343
     
    

  • client-core/src/main/java/fr/ird/observe/client/ui/content/data/longline/CatchLonglineUIHandler.java
    ... ... @@ -252,7 +252,6 @@ public class CatchLonglineUIHandler extends ContentTableUIHandler<SetLonglineCat
    252 252
             ui.getTimerTimeOnBoard().getSliderHidorToolBar().setVisible(true);
    
    253 253
             ui.getTimerTimeOnBoard().getSliderHidor().setVisible(false);
    
    254 254
             ui.getTimerTimeOnBoard().getSliderHidorToolBar().add(ui.getSetDefaultTimerTimeOnBoard());
    
    255
    -//        ui.getTimeSinceContact().getReset().setVisible(true);
    
    256 255
         }
    
    257 256
     
    
    258 257
         @Override
    

  • observe-i18n/src/main/i18n/translations/observe_en_GB.properties
    1 1
     ClientConfig.description=ObServe configuration
    
    2
    +DateTimeEditor.action.reset.tip=Reset
    
    2 3
     ObserveWebApplicationConfig.description=ObServe Web configuration
    
    3 4
     TimeEditor.H=H
    
    4 5
     observe.action.about=About
    

  • observe-i18n/src/main/i18n/translations/observe_es_ES.properties
    1 1
     ClientConfig.description=Configuración de ObServe
    
    2
    +DateTimeEditor.action.reset.tip=Cancelar
    
    2 3
     ObserveWebApplicationConfig.description=Configuración de Observe web
    
    3 4
     TimeEditor.H=H
    
    4 5
     observe.action.about=Acerca de
    

  • observe-i18n/src/main/i18n/translations/observe_fr_FR.properties
    1 1
     ClientConfig.description=Configuration d'ObServe
    
    2
    +DateTimeEditor.action.reset.tip=Réinitialiser la valeur
    
    2 3
     ObserveWebApplicationConfig.description=Observe web Configuration
    
    3 4
     TimeEditor.H=H
    
    4 5
     observe.action.about=À propos