Tony CHEMIT pushed to branch develop-7.x at ultreiaio / ird-observe
Commits:
-
32bd7168
by Tony Chemit at 2021-01-20T11:24:27+01:00
9 changed files:
- client-core/src/main/java/fr/ird/observe/client/ui/content/data/longline/BranchlineUI.jaxx
- client-core/src/main/java/fr/ird/observe/client/ui/content/data/longline/BranchlineUI.jcss
- client-core/src/main/java/fr/ird/observe/client/ui/content/data/longline/BranchlineUIHandler.java
- client-core/src/main/java/fr/ird/observe/client/ui/content/data/longline/BranchlineUIModel.java
- client-core/src/main/java/fr/ird/observe/client/ui/content/data/longline/CatchLonglineUI.jcss
- client-core/src/main/java/fr/ird/observe/client/ui/content/data/longline/CatchLonglineUIHandler.java
- observe-i18n/src/main/i18n/translations/observe_en_GB.properties
- observe-i18n/src/main/i18n/translations/observe_es_ES.properties
- observe-i18n/src/main/i18n/translations/observe_fr_FR.properties
Changes:
| ... | ... | @@ -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 |
|
| ... | ... | @@ -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 {
|
| ... | ... | @@ -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 |
}
|
| ... | ... | @@ -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
|
| ... | ... | @@ -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 |
|
| ... | ... | @@ -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
|
| 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
|
| 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
|
| 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
|