Tony CHEMIT pushed to branch develop-7.x at ultreiaio / ird-observe Commits: 3276c422 by Tony Chemit at 2021-01-19T15:12:40+01:00 [LL][Observations] Horodatage hook timers par défaut - Closes #1625 Découplage case 'Horloge' et champ 'Horodatage de montée à bord' - Closes #1754 Problème dans la gestion des onglets du formulaire 'Avançon' - Closes #1756 - - - - - 20 changed files: - client-core/src/main/i18n/getters/java.getter - + client-core/src/main/java/fr/ird/observe/client/ui/actions/content/BranchlineSetDefaultTimerTimeOnBoard.java - + client-core/src/main/java/fr/ird/observe/client/ui/actions/content/CatchSetDefaultTimerTimeOnBoard.java - + client-core/src/main/java/fr/ird/observe/client/ui/actions/content/SetDefaultTimerTimeOnBoard.java - 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/BranchlinesTableModel.java - client-core/src/main/java/fr/ird/observe/client/ui/content/data/longline/CatchLonglineUI.jaxx - 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 - client-core/src/main/java/fr/ird/observe/client/ui/content/data/longline/LonglineDetailCompositionUIHandler.java - client-core/src/main/java/fr/ird/observe/client/ui/util/UIHelper.java - dto/src/main/models/Observe.model - 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 - persistence/src/main/java/fr/ird/observe/binder/data/longline/SetLonglineCatchEntityDtoBinder.java - persistence/src/main/java/fr/ird/observe/binder/data/longline/SetLonglineDetailCompositionEntityDtoBinder.java Changes: ===================================== client-core/src/main/i18n/getters/java.getter ===================================== @@ -713,6 +713,7 @@ observe.content.map.west observe.converter.error.float.format observe.converter.error.no.convertor observe.converter.error.noValue +observe.data.ll.observation.Branchline.setDefaultTimerTimeOnBoard.tip observe.entity.message.updating observe.error.can.not.create.directory observe.error.storage.could.not.backup.unsane.local.db ===================================== client-core/src/main/java/fr/ird/observe/client/ui/actions/content/BranchlineSetDefaultTimerTimeOnBoard.java ===================================== @@ -0,0 +1,54 @@ +package fr.ird.observe.client.ui.actions.content; + +/*- + * #%L + * ObServe :: Client core + * %% + * Copyright (C) 2008 - 2021 IRD, Code Lutin, Ultreia.io + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/gpl-3.0.html>. + * #L% + */ + +import fr.ird.observe.client.ui.ObserveMainUI; +import fr.ird.observe.client.ui.content.data.longline.BranchlineUI; +import fr.ird.observe.dto.data.longline.BranchlineDto; + +import java.util.Date; + +/** + * Created on 19/01/2021. + * + * @author Tony Chemit - dev@tchemit.fr + * @since 7.6.7 + */ +public class BranchlineSetDefaultTimerTimeOnBoard extends SetDefaultTimerTimeOnBoard<BranchlineUI> { + + public static final String ACTION_NAME = BranchlineSetDefaultTimerTimeOnBoard.class.getName(); + + public BranchlineSetDefaultTimerTimeOnBoard(ObserveMainUI mainUI) { + super(mainUI,ACTION_NAME); + } + + @Override + protected Date getHaulingStartTimeStamp(BranchlineUI ui) { + return ui.getModel().getHaulingStartTimeStamp(); + } + + @Override + protected BranchlineDto getBranchlineBean(BranchlineUI ui) { + return ui.getBean(); + } +} ===================================== client-core/src/main/java/fr/ird/observe/client/ui/actions/content/CatchSetDefaultTimerTimeOnBoard.java ===================================== @@ -0,0 +1,54 @@ +package fr.ird.observe.client.ui.actions.content; + +/*- + * #%L + * ObServe :: Client core + * %% + * Copyright (C) 2008 - 2021 IRD, Code Lutin, Ultreia.io + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/gpl-3.0.html>. + * #L% + */ + +import fr.ird.observe.client.ui.ObserveMainUI; +import fr.ird.observe.client.ui.content.data.longline.CatchLonglineUI; +import fr.ird.observe.dto.data.longline.BranchlineDto; + +import java.util.Date; + +/** + * Created on 19/01/2021. + * + * @author Tony Chemit - dev@tchemit.fr + * @since 7.6.7 + */ +public class CatchSetDefaultTimerTimeOnBoard extends SetDefaultTimerTimeOnBoard<CatchLonglineUI> { + + public static final String ACTION_NAME = CatchSetDefaultTimerTimeOnBoard.class.getName(); + + public CatchSetDefaultTimerTimeOnBoard(ObserveMainUI mainUI) { + super(mainUI,ACTION_NAME); + } + + @Override + protected Date getHaulingStartTimeStamp(CatchLonglineUI ui) { + return ui.getBean().getHaulingStartTimeStamp(); + } + + @Override + protected BranchlineDto getBranchlineBean(CatchLonglineUI ui) { + return ui.getBranchlineBean(); + } +} ===================================== client-core/src/main/java/fr/ird/observe/client/ui/actions/content/SetDefaultTimerTimeOnBoard.java ===================================== @@ -0,0 +1,58 @@ +package fr.ird.observe.client.ui.actions.content; + +/*- + * #%L + * ObServe Client :: DataSource :: Editor :: LL + * %% + * Copyright (C) 2008 - 2021 IRD, Code Lutin, Ultreia.io + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/gpl-3.0.html>. + * #L% + */ + + +import fr.ird.observe.client.ui.ObserveMainUI; +import fr.ird.observe.client.ui.content.ContentUI; +import fr.ird.observe.dto.data.longline.BranchlineDto; + +import javax.swing.KeyStroke; +import java.util.Date; + +import static io.ultreia.java4all.i18n.I18n.t; + +/** + * Created on 15/01/2021. + * + * @author Tony Chemit - dev@tchemit.fr + * @since 8.0.3 + */ +abstract class SetDefaultTimerTimeOnBoard<U extends ContentUI> extends AbstractContentUIAction { + + SetDefaultTimerTimeOnBoard(ObserveMainUI mainUI, String actionName) { + super(mainUI, actionName, "", t("observe.data.ll.observation.Branchline.setDefaultTimerTimeOnBoard.tip"), "combobox-reset2", KeyStroke.getKeyStroke("alt pressed G")); + } + + protected abstract Date getHaulingStartTimeStamp(U ui); + + protected abstract BranchlineDto getBranchlineBean(U ui); + + @Override + protected void actionPerformed(ContentUI<?, ?> contentUI) { + U ui = (U) contentUI; + BranchlineDto branchlineBean = getBranchlineBean(ui); + Date haulingStartTimeStamp = getHaulingStartTimeStamp(ui); + branchlineBean.setTimerTimeOnBoard(haulingStartTimeStamp); + } +} ===================================== client-core/src/main/java/fr/ird/observe/client/ui/content/data/longline/BranchlineUI.jaxx ===================================== @@ -31,6 +31,7 @@ fr.ird.observe.dto.referential.longline.BaitSettingStatusReference fr.ird.observe.dto.referential.longline.HookSizeReference fr.ird.observe.dto.referential.longline.HookTypeReference + fr.ird.observe.client.ui.actions.content.BranchlineSetDefaultTimerTimeOnBoard fr.ird.observe.client.ui.util.JComment @@ -109,6 +110,7 @@ public void edit(BranchlineDto branchline) { getHandler().edit(branchline); } <JCheckBox id='depthRecorder' styleClass="i18n"/> <JCheckBox id='hookLost' styleClass="i18n"/> <JCheckBox id='traceCutOff' styleClass="i18n"/> + <JButton id='setDefaultTimerTimeOnBoard'/> </JPanel> </cell> </row> ===================================== client-core/src/main/java/fr/ird/observe/client/ui/content/data/longline/BranchlineUI.jcss ===================================== @@ -68,7 +68,6 @@ } #timerTimeOnBoard { - enabled:{BooleanUtils.isTrue(bean.getTimer())}; date:{bean.getTimerTimeOnBoard()}; showTimeEditorSlider:false; propertyDate: {BranchlineDto.PROPERTY_TIMER_TIME_ON_BOARD}; @@ -145,3 +144,7 @@ property:{BranchlineDto.PROPERTY_BAIT_TYPE}; selectedItem:{bean.getBaitType()}; } + +#setDefaultTimerTimeOnBoard { + _observeAction:{BranchlineSetDefaultTimerTimeOnBoard.ACTION_NAME}; +} \ No newline at end of file ===================================== client-core/src/main/java/fr/ird/observe/client/ui/content/data/longline/BranchlineUIHandler.java ===================================== @@ -110,6 +110,9 @@ public class BranchlineUIHandler extends ContentUIHandler<BranchlineDto, Branchl getModel().addPropertyChangeListener(BranchlineDto.PROPERTY_TIME_SINCE_CONTACT, evt -> getUi().getValidator().setChanged(true)); + + ui.getTimerTimeOnBoard().getSliderHidorToolBar().setVisible(true); + ui.getTimerTimeOnBoard().getSliderHidorToolBar().add(ui.getSetDefaultTimerTimeOnBoard()); } public void edit(BranchlineDto branchline) { ===================================== client-core/src/main/java/fr/ird/observe/client/ui/content/data/longline/BranchlineUIModel.java ===================================== @@ -74,6 +74,7 @@ public class BranchlineUIModel extends ContentUIModel<BranchlineDto> { private boolean hookAndBaitTabValid; private Date timeSinceContact; + private Date haulingStartTimeStamp; public BranchlineUIModel() { super(BranchlineDto.class); @@ -119,4 +120,13 @@ public class BranchlineUIModel extends ContentUIModel<BranchlineDto> { firePropertyChange(PROPERTY_SAVED, null, true); } + public Date getHaulingStartTimeStamp() { + return haulingStartTimeStamp; + } + + public void setHaulingStartTimeStamp(Date haulingStartTimeStamp) { + Date oldValue = this.haulingStartTimeStamp; + this.haulingStartTimeStamp = haulingStartTimeStamp; + firePropertyChange("haulingStartTimeStamp", oldValue, haulingStartTimeStamp); + } } ===================================== client-core/src/main/java/fr/ird/observe/client/ui/content/data/longline/BranchlinesTableModel.java ===================================== @@ -24,8 +24,6 @@ package fr.ird.observe.client.ui.content.data.longline; import fr.ird.observe.dto.data.longline.BranchlineDto; -import java.util.Date; - /** * Created on 12/11/14. * @@ -36,23 +34,16 @@ public class BranchlinesTableModel extends LonglineCompositionTableModelSupport< private static final long serialVersionUID = 1L; - protected Date defaultDate; - private boolean useTimer; public BranchlinesTableModel(LonglineDetailCompositionUIModel model) { super(model); } - public void setDefaultDate(Date defaultDate) { - this.defaultDate = defaultDate; - } - @Override public BranchlineDto createNewRow() { BranchlineDto branchline = new BranchlineDto(); - branchline.setTimerTimeOnBoard(defaultDate); branchline.setTimer(useTimer); return branchline; ===================================== client-core/src/main/java/fr/ird/observe/client/ui/content/data/longline/CatchLonglineUI.jaxx ===================================== @@ -49,6 +49,8 @@ fr.ird.observe.client.ui.util.BooleanEditor fr.ird.observe.client.ui.util.JComment + fr.ird.observe.client.ui.actions.content.CatchSetDefaultTimerTimeOnBoard + org.nuiton.jaxx.widgets.number.NumberEditor io.ultreia.java4all.jaxx.widgets.combobox.JaxxComboBox org.nuiton.jaxx.widgets.select.FilterableDoubleList @@ -401,6 +403,7 @@ <JCheckBox id='depthRecorder'/> <JCheckBox id='hookLost'/> <JCheckBox id='traceCutOff'/> + <JButton id='setDefaultTimerTimeOnBoard'/> </JPanel> </cell> </row> ===================================== client-core/src/main/java/fr/ird/observe/client/ui/content/data/longline/CatchLonglineUI.jcss ===================================== @@ -360,3 +360,7 @@ JCheckBox { actionIcon:"save"; enabled:{branchlineValidator.isChanged() && branchlineValidator.isValid()}; } + +#setDefaultTimerTimeOnBoard { + _observeAction:{CatchSetDefaultTimerTimeOnBoard.ACTION_NAME}; +} ===================================== client-core/src/main/java/fr/ird/observe/client/ui/content/data/longline/CatchLonglineUIHandler.java ===================================== @@ -235,6 +235,8 @@ public class CatchLonglineUIHandler extends ContentTableUIHandler<SetLonglineCat model.addPropertyChangeListener(CatchLonglineUIModel.PROPERTY_BRANCHLINE_TIME_SINCE_CONTACT, evt -> ui.getBranchlineValidator().setChanged(true)); + ui.getTimerTimeOnBoard().getSliderHidorToolBar().setVisible(true); + ui.getTimerTimeOnBoard().getSliderHidorToolBar().add(ui.getSetDefaultTimerTimeOnBoard()); } @Override ===================================== client-core/src/main/java/fr/ird/observe/client/ui/content/data/longline/LonglineDetailCompositionUIHandler.java ===================================== @@ -383,6 +383,7 @@ public class LonglineDetailCompositionUIHandler extends ContentUIHandler<SetLong Form<BranchlineDto> branchlineDtoForm = Form.newFormDto(BranchlineDto.class, null); BranchlineUIModel branchlineUIModel = getUi().getBranchlineDetailUI().getModel(); + branchlineUIModel.setHaulingStartTimeStamp(bean.getHaulingStartTimeStamp()); // branchlineUIModel.setReferentialReferenceSets(getModel().getReferentialReferenceSets()); Optional<FormDefinition<BranchlineDto>> optionalFormDefinition = DtoModelHelper.getOptionalFormDefinition(BranchlineDto.class); @@ -390,11 +391,6 @@ public class LonglineDetailCompositionUIHandler extends ContentUIHandler<SetLong branchlineUIModel.setForm(branchlineDtoForm); - //FIXME Validate this default date - if (log.isInfoEnabled()) { - log.info("Use as default branchline timer date: " + bean.getSettingStartTimeStamp()); - } - getBranchlinesTableModel().setDefaultDate(bean.getSettingStartTimeStamp()); getBranchlinesTableModel().setUseTimer(BooleanUtils.isTrue(bean.getMonitored())); // by default, can generate if there is no section in database ===================================== client-core/src/main/java/fr/ird/observe/client/ui/util/UIHelper.java ===================================== @@ -49,6 +49,8 @@ import org.nuiton.jaxx.runtime.swing.renderer.DecoratorTableCellRenderer; import org.nuiton.jaxx.widgets.error.ErrorDialogUI; import org.nuiton.jaxx.widgets.file.JaxxFileChooser; +import javax.swing.AbstractButton; +import javax.swing.Action; import javax.swing.JComponent; import javax.swing.JDialog; import javax.swing.JOptionPane; @@ -697,4 +699,16 @@ public class UIHelper extends SwingUtil { editor.getInputMap() .put(KeyStroke.getKeyStroke(KeyEvent.VK_F2, 0), "none"); } + + public static void setAction(AbstractButton editor, Action action) { + String text = editor.getText(); + String toolTipText = editor.getToolTipText(); + editor.setAction(action); + if (text != null) { + editor.setText(text); + } + if (toolTipText != null) { + editor.setToolTipText(toolTipText); + } + } } ===================================== dto/src/main/models/Observe.model ===================================== @@ -266,13 +266,14 @@ lightsticksColor {*:0..1} fr.ird.observe.dto.referential.longline.LightsticksCol otherSets {*} data.longline.SetLonglineStub data.longline.SetLonglineCatch > data.Data >> data.longline.LonglinePositionSetDto | form=data.longline.CatchLongline +haulingStartTimeStamp + {*:1} Date catchLongline {*} data.longline.CatchLongline | ordered sections {*:*} fr.ird.observe.dto.data.longline.SectionReference baskets {*:*} fr.ird.observe.dto.data.longline.BasketReference branchlines {*:*} fr.ird.observe.dto.data.longline.BranchlineReference data.longline.SetLonglineDetailComposition > data.Data -settingStartTimeStamp + {*:1} Date +haulingStartTimeStamp + {*:1} Date monitored + {*:1} Boolean totalSectionsCount + {*:1} Integer | positiveNumber basketsPerSectionCount + {*:1} Integer | positiveNumber ===================================== observe-i18n/src/main/i18n/translations/observe_en_GB.properties ===================================== @@ -1950,6 +1950,7 @@ observe.content.selection.empty=< Please select a node in the navigation tree > observe.converter.error.float.format=Decimal format not correct for value %s observe.converter.error.no.convertor=could not convert decimal %s using convertor %s observe.converter.error.noValue=No value to convert using convertor %s +observe.data.ll.observation.Branchline.setDefaultTimerTimeOnBoard.tip=Set hauling start timestamp observe.entity.message.updating=object '%1$s' is in editing mode. observe.error.DuplicateLengthLengthParameterException=Found multiple length length relation for species\: %s, ocean\: %s, sex\: %s, date\: %s \:\n * %s observe.error.DuplicateLengthWeightParameterException=Found multiple length weight paramters for species\: %s, ocean\: %s, sex\: %s, date\: %s \:\n * %s ===================================== observe-i18n/src/main/i18n/translations/observe_es_ES.properties ===================================== @@ -1950,6 +1950,7 @@ observe.content.selection.empty=< Seleccione un nodo de conexión en el árbol d observe.converter.error.float.format=Formato de decimal incorrecto para el valor %s observe.converter.error.no.convertor=Impossible de convertir el decimal %s con el convertidor %s observe.converter.error.noValue=Ningún valor necesita ser convertida con el convertidor %s +observe.data.ll.observation.Branchline.setDefaultTimerTimeOnBoard.tip=Set hauling start timestamp \#TODO observe.entity.message.updating=Se está modificando el objeto actual '%1$s'. observe.error.DuplicateLengthLengthParameterException=Found multiple length length relation for species\: %s, ocean\: %s, sex\: %s, date\: %s \:\n * %s \#TODO observe.error.DuplicateLengthWeightParameterException=Found multiple length weight relation for species\: %s, ocean\: %s, sex\: %s, date\: %s \:\n * %s \#TODO ===================================== observe-i18n/src/main/i18n/translations/observe_fr_FR.properties ===================================== @@ -1950,6 +1950,7 @@ observe.content.selection.empty=< Veuillez sélectionner un nœud dans l'arbre d observe.converter.error.float.format=Format de décimal incorrecte pour la valeur %s observe.converter.error.no.convertor=Impossible de convertir le décimal %s depuis le convertisseur %s observe.converter.error.noValue=Aucune valeur à convertir pour le convertisseur %s +observe.data.ll.observation.Branchline.setDefaultTimerTimeOnBoard.tip=Utiliser l'horodatage de début de filage observe.entity.message.updating=L'objet '%1$s' est en cours de modification. observe.error.DuplicateLengthLengthParameterException=Plusieurs relations taille-taille ont été trouvées pour l'espèce\: %s, l'ocean\: %s, le sexe\: %s et la date\: %s \:\n * %s observe.error.DuplicateLengthWeightParameterException=Plusieurs relations taille-poids ont été trouvées pour l'espèce\: %s, l'ocean\: %s, le sexe\: %s et la date\: %s \:\n * %s ===================================== persistence/src/main/java/fr/ird/observe/binder/data/longline/SetLonglineCatchEntityDtoBinder.java ===================================== @@ -54,6 +54,6 @@ public class SetLonglineCatchEntityDtoBinder extends DataEntityDtoBinderSupport< copyEntityDataFieldsToDto(entity, dto); dto.setCatchLongline(toListData(referentialLocale, entity.getCatchLongline())); - + dto.setHaulingStartTimeStamp(entity.getHaulingStartTimeStamp()); } } ===================================== persistence/src/main/java/fr/ird/observe/binder/data/longline/SetLonglineDetailCompositionEntityDtoBinder.java ===================================== @@ -44,7 +44,6 @@ public class SetLonglineDetailCompositionEntityDtoBinder extends DataEntityDtoBi copyDtoDataFieldsToEntity(dto, entity); entity.setSection(toEntitySet(referentialLocale, dto.getSection(), entity.getSection())); - entity.setSettingStartTimeStamp(dto.getSettingStartTimeStamp()); entity.setMonitored(dto.getMonitored()); entity.setTotalSectionsCount(dto.getTotalSectionsCount()); entity.setBasketsPerSectionCount(dto.getBasketsPerSectionCount()); @@ -60,7 +59,7 @@ public class SetLonglineDetailCompositionEntityDtoBinder extends DataEntityDtoBi copyEntityDataFieldsToDto(entity, dto); dto.setSection(toLinkedHashSetData(referentialLocale, entity.getSection())); - dto.setSettingStartTimeStamp(entity.getSettingStartTimeStamp()); + dto.setHaulingStartTimeStamp(entity.getHaulingStartTimeStamp()); dto.setMonitored(entity.getMonitored()); dto.setTotalSectionsCount(entity.getTotalSectionsCount()); dto.setBasketsPerSectionCount(entity.getBasketsPerSectionCount()); View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/3276c4226e5f155c092fe77f85... -- View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/3276c4226e5f155c092fe77f85... You're receiving this email because of your account on gitlab.com.
participants (1)
-
Tony CHEMIT