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 Problème dans la gestion des onglets du formulaire 'Avançon' - Closes #1756 (on v7) formulaire composition détaillée - - - - - 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: ===================================== client-core/src/main/java/fr/ird/observe/client/ui/content/data/longline/BranchlineUI.jaxx ===================================== @@ -34,6 +34,7 @@ fr.ird.observe.client.ui.actions.content.BranchlineSetDefaultTimerTimeOnBoard fr.ird.observe.client.ui.util.JComment + fr.ird.observe.client.ui.util.time.UnlimitedTimeEditor org.nuiton.jaxx.widgets.number.NumberEditor io.ultreia.java4all.jaxx.widgets.combobox.JaxxComboBox @@ -122,7 +123,7 @@ public void edit(BranchlineDto branchline) { getHandler().edit(branchline); } <JCheckBox id='timer' styleClass="i18n"/> </cell> <cell columns="2"> - <TimeEditor id='timeSinceContact' constructorParams='this'/> + <UnlimitedTimeEditor id='timeSinceContact' constructorParams='this'/> </cell> </row> ===================================== client-core/src/main/java/fr/ird/observe/client/ui/content/data/longline/BranchlineUI.jcss ===================================== @@ -64,13 +64,13 @@ propertyTime:{BranchlineDto.PROPERTY_TIME_SINCE_CONTACT}; time:{model.getTimeSinceContact()}; bean:{model}; - showTimeEditorSlider:false; + showReset:true; } #timerTimeOnBoard { date:{bean.getTimerTimeOnBoard()}; - showTimeEditorSlider:false; propertyDate: {BranchlineDto.PROPERTY_TIMER_TIME_ON_BOARD}; + showReset:true; } #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; import fr.ird.observe.client.ui.util.UIHelper; import fr.ird.observe.dto.data.longline.BranchlineDto; import fr.ird.observe.dto.data.longline.BranchlineHelper; +import io.ultreia.java4all.i18n.I18n; import org.apache.commons.lang3.BooleanUtils; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.nuiton.decorator.Decorator; -import io.ultreia.java4all.i18n.I18n; import org.nuiton.jaxx.runtime.spi.UIHandler; import org.nuiton.jaxx.validator.swing.SwingValidatorMessage; import org.nuiton.jaxx.validator.swing.SwingValidatorMessageTableModel; -import org.nuiton.util.DateUtil; import org.nuiton.validator.NuitonValidatorScope; import javax.swing.JOptionPane; import javax.swing.event.TableModelListener; import java.awt.Component; import java.awt.Container; -import java.util.Calendar; -import java.util.Date; +import java.beans.PropertyChangeListener; import java.util.HashSet; +import java.util.Objects; import java.util.Set; /** @@ -60,22 +59,23 @@ import java.util.Set; */ public class BranchlineUIHandler extends ContentUIHandler<BranchlineDto, BranchlineUI> implements UIHandler<BranchlineUI> { - /** Logger */ + /** + * Logger + */ private static final Logger log = LogManager.getLogger(BranchlineUIHandler.class); // Compute valid state of tab from the error table protected final TableModelListener computeTabValidStateListener; - + private final PropertyChangeListener timerChanged; private Decorator<BranchlineDto> branchlineDecorator; public BranchlineUIHandler() { super(DataContextType.SetLongline, null); computeTabValidStateListener = e -> { - SwingValidatorMessageTableModel source = (SwingValidatorMessageTableModel) e.getSource(); computeTabValidState(source); - }; + timerChanged = evt -> onTimerChanged((Boolean) evt.getNewValue()); } @Override @@ -112,6 +112,7 @@ public class BranchlineUIHandler extends ContentUIHandler<BranchlineDto, Branchl evt -> getUi().getValidator().setChanged(true)); ui.getTimerTimeOnBoard().getSliderHidorToolBar().setVisible(true); + ui.getTimerTimeOnBoard().getSliderHidor().setVisible(false); ui.getTimerTimeOnBoard().getSliderHidorToolBar().add(ui.getSetDefaultTimerTimeOnBoard()); } @@ -127,10 +128,7 @@ public class BranchlineUIHandler extends ContentUIHandler<BranchlineDto, Branchl BranchlineHelper.copyBranchlineDto(branchline, getBean()); if (branchline == null) { - - Date timeSinceContactDate = DateUtil.createDate(0, 0, 0, 0, 0, 0); - model.setTimeSinceContact(timeSinceContactDate); - + model.setTimeSinceContact(null); // stop edit stopEditUI(); @@ -138,13 +136,9 @@ public class BranchlineUIHandler extends ContentUIHandler<BranchlineDto, Branchl if (BooleanUtils.isTrue(branchline.getTimer())) { Long timeSinceContact = branchline.getTimeSinceContact(); - if (timeSinceContact != null) { - Date timeSinceContactDate = DateUtil.createDate(0, (int) (timeSinceContact % 60), (int) (timeSinceContact / 60f), 0, 0, 0); - model.setTimeSinceContact(timeSinceContactDate); - } + model.setTimeSinceContact(timeSinceContact==null?null:timeSinceContact.intValue()); } else { - Date timeSinceContactDate = DateUtil.createDate(0, 0, 0, 0, 0, 0); - model.setTimeSinceContact(timeSinceContactDate); + model.setTimeSinceContact(null); } if (model.isEnabled() && !model.isEditing()) { @@ -203,9 +197,6 @@ public class BranchlineUIHandler extends ContentUIHandler<BranchlineDto, Branchl log.info("OpenUI: " + getModel()); } - getUi().getTimeSinceContact().getSliderHidor().setVisible(false); - getUi().getTimerTimeOnBoard().getSliderHidor().setVisible(false); - boolean canWrite = computeCanWrite(getDataSource()); getModel().setCanWrite(canWrite); @@ -258,10 +249,19 @@ public class BranchlineUIHandler extends ContentUIHandler<BranchlineDto, Branchl BranchlineUI.BINDING_TIMER_TIME_ON_BOARD_DATE ); + ui.getBean().removePropertyChangeListener(BranchlineDto.PROPERTY_TIMER, timerChanged); + ui.getBean().addPropertyChangeListener(BranchlineDto.PROPERTY_TIMER, timerChanged); + model.setModified(false); } + @Override + public void stopEditUI() { + ui.getBean().removePropertyChangeListener(BranchlineDto.PROPERTY_TIMER, timerChanged); + super.stopEditUI(); + } + @Override protected boolean doSave(BranchlineDto bean) { @@ -270,18 +270,13 @@ public class BranchlineUIHandler extends ContentUIHandler<BranchlineDto, Branchl BranchlineHelper.copyBranchlineDto(bean, beanToSave); if (BooleanUtils.isTrue(bean.getTimer())) { - Calendar calendar = Calendar.getInstance(); - calendar.setTime(getModel().getTimeSinceContact()); - int minutes = calendar.get(Calendar.MINUTE); - int hours = calendar.get(Calendar.HOUR_OF_DAY); - beanToSave.setTimeSinceContact(minutes + 60L * hours); + Integer timeSinceContact = getModel().getTimeSinceContact(); + beanToSave.setTimeSinceContact(timeSinceContact == null ? null : timeSinceContact.longValue()); } else { beanToSave.setTimeSinceContact(null); } - if (log.isInfoEnabled()) { - log.info("Time since contact: " + beanToSave.getTimeSinceContact()); - } + log.info(String.format("Save time since contact: %d", beanToSave.getTimeSinceContact())); // for external models getModel().fireSaved(); @@ -417,4 +412,13 @@ public class BranchlineUIHandler extends ContentUIHandler<BranchlineDto, Branchl } + void onTimerChanged(Boolean newValue) { + if (Objects.equals(true, newValue)) { + // with timer + ui.getModel().setTimeSinceContact(0); + } else { + // without timer + ui.getModel().setTimeSinceContact(null); + } + } } ===================================== 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> { private boolean hookAndBaitTabValid; - private Date timeSinceContact; + private Integer timeSinceContact; private Date haulingStartTimeStamp; public BranchlineUIModel() { @@ -106,13 +106,14 @@ public class BranchlineUIModel extends ContentUIModel<BranchlineDto> { firePropertyChange(PROPERTY_HOOK_AND_BAIT_TAB_VALID, null, hookAndBaitTabValid); } - public Date getTimeSinceContact() { + public Integer getTimeSinceContact() { return timeSinceContact; } - public void setTimeSinceContact(Date timeSinceContact) { + public void setTimeSinceContact(Integer timeSinceContact) { + Integer oldValue = getTimeSinceContact(); this.timeSinceContact = timeSinceContact; - firePropertyChange(BranchlineDto.PROPERTY_TIME_SINCE_CONTACT, null, getTimeSinceContact()); + firePropertyChange(BranchlineDto.PROPERTY_TIME_SINCE_CONTACT, oldValue, getTimeSinceContact()); } // 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 { date:{branchlineBean.getTimerTimeOnBoard()}; propertyDate: {BranchlineDto.PROPERTY_TIMER_TIME_ON_BOARD}; bean:{branchlineBean}; - showTimeEditorSlider:false; showReset:true; } ===================================== 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 ui.getTimerTimeOnBoard().getSliderHidorToolBar().setVisible(true); ui.getTimerTimeOnBoard().getSliderHidor().setVisible(false); ui.getTimerTimeOnBoard().getSliderHidorToolBar().add(ui.getSetDefaultTimerTimeOnBoard()); -// ui.getTimeSinceContact().getReset().setVisible(true); } @Override ===================================== observe-i18n/src/main/i18n/translations/observe_en_GB.properties ===================================== @@ -1,4 +1,5 @@ ClientConfig.description=ObServe configuration +DateTimeEditor.action.reset.tip=Reset ObserveWebApplicationConfig.description=ObServe Web configuration TimeEditor.H=H observe.action.about=About ===================================== observe-i18n/src/main/i18n/translations/observe_es_ES.properties ===================================== @@ -1,4 +1,5 @@ ClientConfig.description=Configuración de ObServe +DateTimeEditor.action.reset.tip=Cancelar ObserveWebApplicationConfig.description=Configuración de Observe web TimeEditor.H=H observe.action.about=Acerca de ===================================== observe-i18n/src/main/i18n/translations/observe_fr_FR.properties ===================================== @@ -1,4 +1,5 @@ ClientConfig.description=Configuration d'ObServe +DateTimeEditor.action.reset.tip=Réinitialiser la valeur ObserveWebApplicationConfig.description=Observe web Configuration TimeEditor.H=H observe.action.about=À propos View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/32bd71682b812db55e4244c4e6... -- View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/32bd71682b812db55e4244c4e6... You're receiving this email because of your account on gitlab.com.