Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe Commits: d8798942 by Tony Chemit at 2020-12-13T14:06:25+01:00 Add showReset css class - - - - - 57fd399c by Tony Chemit at 2020-12-13T14:18:14+01:00 Avoid NPe if route date is null - - - - - a822e8be by Tony Chemit at 2020-12-13T14:40:27+01:00 Fix edit referential flow - - - - - 0fd7d3c0 by Tony Chemit at 2020-12-13T14:40:58+01:00 Replace BeanDateEditor by DateEditor - - - - - 17e8b3e6 by Tony Chemit at 2020-12-13T14:52:28+01:00 Méthodes de mesure par défaut - Closes #1646 - - - - - 41b33c60 by Tony Chemit at 2020-12-13T14:52:54+01:00 Bug sur suppression estimation banc - Closes #1647 - - - - - 26 changed files: - client/core/src/main/resources/fr/ird/observe/client/ui/ObserveCommon.jcss - client/datasource/editor/api/src/main/i18n/getters/java.getter - client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/content/ContentUIInitializer.java - client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/content/referential/ContentReferentialUIHandler.java - client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/content/referential/ContentReferentialUIModel.java - client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/content/referential/ContentReferentialUIModelStates.java - client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/content/referential/actions/BackToListReferential.java - client/datasource/editor/common/src/main/java/fr/ird/observe/client/datasource/editor/common/referential/common/FpaZoneUI.jaxx - client/datasource/editor/common/src/main/java/fr/ird/observe/client/datasource/editor/common/referential/common/LengthLengthParameterUI.jaxx - client/datasource/editor/common/src/main/java/fr/ird/observe/client/datasource/editor/common/referential/common/LengthWeightParameterUI.jaxx - client/datasource/editor/common/src/main/java/fr/ird/observe/client/datasource/editor/common/referential/common/ProgramUI.jaxx - client/datasource/editor/common/src/main/java/fr/ird/observe/client/datasource/editor/common/referential/common/ShipOwnerUI.jaxx - client/datasource/editor/common/src/main/java/fr/ird/observe/client/datasource/editor/common/referential/common/VesselUI.jaxx - client/datasource/editor/ll/src/main/java/fr/ird/observe/client/datasource/editor/ll/data/common/TripUI.jaxx - client/datasource/editor/ll/src/main/java/fr/ird/observe/client/datasource/editor/ll/data/landing/LandingUI.jaxx - client/datasource/editor/ps/src/main/java/fr/ird/observe/client/datasource/editor/ps/data/common/TripUI.jaxx - client/datasource/editor/ps/src/main/java/fr/ird/observe/client/datasource/editor/ps/data/observation/RouteUI.jaxx - client/datasource/editor/ps/src/main/java/fr/ird/observe/client/datasource/editor/ps/data/observation/SetKeptTargetCatchUIModel.java - client/i18n/src/main/i18n/translations/observe_en_GB.properties - client/i18n/src/main/i18n/translations/observe_es_ES.properties - client/i18n/src/main/i18n/translations/observe_fr_FR.properties - models/dto/src/main/java/fr/ird/observe/dto/ProtectedIdsPs.java - models/persistence/src/main/java/fr/ird/observe/entities/data/ps/observation/SetImpl.java - models/persistence/src/main/models/Observe-20-data-ps-observation.model - services/validation-spi/src/main/java/fr/ird/observe/validation/validators/ActivitySimpleSpeedDtoValidator.java - services/validation-spi/src/main/java/fr/ird/observe/validation/validators/ActivitySpeedDtoValidator.java Changes: ===================================== client/core/src/main/resources/fr/ird/observe/client/ui/ObserveCommon.jcss ===================================== @@ -104,6 +104,10 @@ disabledIcon:{fr.ird.observe.client.util.UIHelper.getUIManagerActionIcon("data-observe")}; } +.showReset { + showReset:true; +} + JToolBar { borderPainted:false; floatable:false; ===================================== client/datasource/editor/api/src/main/i18n/getters/java.getter ===================================== @@ -275,7 +275,6 @@ observe.ui.datasource.storage.server.sessionExpire.reload observe.ui.datasource.storage.server.sessionExpire.title observe.ui.datasource.storage.serverConfiguration.presets.save observe.ui.datasource.storage.step.label -observe.ui.datepicker.show observe.ui.menu.navigation.ll observe.ui.menu.navigation.ps observe.ui.message.db.closed ===================================== client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/content/ContentUIInitializer.java ===================================== @@ -24,7 +24,6 @@ package fr.ird.observe.client.datasource.editor.api.content; import fr.ird.observe.client.WithClientUIContext; import fr.ird.observe.client.configuration.WithClientConfig; -import fr.ird.observe.client.datasource.editor.api.ObserveKeyStrokesEditorApi; import fr.ird.observe.client.datasource.editor.api.content.actions.GoToTab; import fr.ird.observe.client.datasource.editor.api.content.data.map.ObserveMapPane; import fr.ird.observe.client.datasource.editor.api.content.data.map.TripMapUI; @@ -44,7 +43,6 @@ import fr.ird.observe.dto.decoration.decorators.ReferentialReferenceDecorator; import fr.ird.observe.dto.reference.DataDtoReference; import fr.ird.observe.dto.reference.ReferentialDtoReference; import io.ultreia.java4all.bean.JavaBean; -import io.ultreia.java4all.i18n.I18n; import io.ultreia.java4all.jaxx.widgets.choice.BeanCheckBox; import io.ultreia.java4all.jaxx.widgets.choice.BooleanEditor; import io.ultreia.java4all.jaxx.widgets.combobox.BeanEnumEditor; @@ -56,10 +54,8 @@ import org.nuiton.jaxx.runtime.swing.Table; import org.nuiton.jaxx.validator.JAXXValidator; import org.nuiton.jaxx.validator.swing.SwingValidatorUtil; import org.nuiton.jaxx.widgets.BeanUIUtil; -import org.nuiton.jaxx.widgets.datetime.BeanDateEditor; +import org.nuiton.jaxx.widgets.datetime.DateEditor; import org.nuiton.jaxx.widgets.datetime.DateTimeEditor; -import org.nuiton.jaxx.widgets.datetime.ExtendedBasicDatePickerUI; -import org.nuiton.jaxx.widgets.datetime.JAXXDatePicker; import org.nuiton.jaxx.widgets.datetime.TimeEditor; import org.nuiton.jaxx.widgets.gis.absolute.CoordinatesEditor; import org.nuiton.jaxx.widgets.number.NumberEditor; @@ -73,7 +69,6 @@ import org.nuiton.jaxx.widgets.text.NormalTextEditor; import org.nuiton.jaxx.widgets.text.UrlEditor; import javax.swing.ActionMap; -import javax.swing.JButton; import javax.swing.JComboBox; import javax.swing.JComponent; import javax.swing.JLabel; @@ -107,14 +102,13 @@ public class ContentUIInitializer<UI extends ContentUI> extends UIInitializerSup public static final Class<?>[] MANAGED_TYPES = new Class<?>[]{ JComponent.class, JToolBar.class, - JAXXDatePicker.class, BlockingLayerUI.class, BeanCheckBox.class, NumberEditor.class, JaxxComboBox.class, BeanListHeader.class, FilterableDoubleList.class, - BeanDateEditor.class, + DateEditor.class, TimeEditor.class, DateTimeEditor.class, CoordinatesEditor.class, @@ -192,10 +186,9 @@ public class ContentUIInitializer<UI extends ContentUI> extends UIInitializerSup .onComponents(CoordinatesEditor.class, true, this::init) .onComponents(TemperatureEditor.class, true, this::init) .onComponents(JToolBar.class, this::init) - .onComponents(JAXXDatePicker.class, this::init) .onComponents(BeanCheckBox.class, this::init) .onComponents(NumberEditor.class, this::init) - .onComponents(BeanDateEditor.class, this::init) + .onComponents(DateEditor.class, this::init) .onComponents(BooleanEditor.class, this::init) .onComponents(BeanEnumEditor.class, this::init) .onComponents(ObserveSwingValidator.class, this::init) @@ -410,22 +403,6 @@ public class ContentUIInitializer<UI extends ContentUI> extends UIInitializerSup editor.init(); } - protected void init(JAXXDatePicker editor) { - initializerContext.checkFirstPass(); - editor.setFormats("dd/MM/yyyy"); - ExtendedBasicDatePickerUI ui = new ExtendedBasicDatePickerUI() { - @Override - protected JButton createPopupButton() { - JButton popupButton = super.createPopupButton(); - if (popupButton != null) { - popupButton.setToolTipText(ObserveKeyStrokesEditorApi.suffixTextWithKeyStroke(I18n.t("observe.ui.datepicker.show"), ObserveKeyStrokesEditorApi.KEY_STROKE_GO_DOWN)); - } - return popupButton; - } - }; - editor.setUI(ui); - } - protected void init(BooleanEditor editor) { initializerContext.checkFirstPass(); editor.init(); @@ -441,21 +418,9 @@ public class ContentUIInitializer<UI extends ContentUI> extends UIInitializerSup editor.init(I18nEnumHelper::getLabel); } - protected void init(BeanDateEditor editor) { + protected void init(DateEditor editor) { initializerContext.checkFirstPass(); editor.setLocale(getClientConfig().getLocale()); - ExtendedBasicDatePickerUI ui = new ExtendedBasicDatePickerUI() { - @Override - protected JButton createPopupButton() { - JButton popupButton = super.createPopupButton(); - if (popupButton != null) { - popupButton.setToolTipText(ObserveKeyStrokesEditorApi.suffixTextWithKeyStroke(I18n.t("observe.ui.datepicker.show"), ObserveKeyStrokesEditorApi.KEY_STROKE_GO_DOWN)); - } - return popupButton; - } - }; - ui.setShowPopupButton(true); - editor.setUI(ui); editor.init(); } ===================================== client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/content/referential/ContentReferentialUIHandler.java ===================================== @@ -122,6 +122,12 @@ public class ContentReferentialUIHandler<D extends ReferentialDto, R extends Ref protected ContentOpen<U> createContentOpen(U ui) { ContentReferentialUIOpenExecutor<D, R, U> executor = new ContentReferentialUIOpenExecutor<>(); return new ContentOpen<>(ui, executor, executor); +// return new ContentOpen<U>(ui, executor, executor) { +// @Override +// public boolean applyBeforeSave(Close close) { +// return super.applyBeforeSave(close==Close.CLOSE?Close.RESET : close); +// } +// }; } @Override ===================================== client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/content/referential/ContentReferentialUIModel.java ===================================== @@ -24,12 +24,14 @@ package fr.ird.observe.client.datasource.editor.api.content.referential; import com.google.common.collect.ImmutableSet; import fr.ird.observe.client.configuration.ClientConfig; import fr.ird.observe.client.datasource.api.cache.ReferencesCache; +import fr.ird.observe.client.datasource.editor.api.content.ContentUI; import fr.ird.observe.client.datasource.editor.api.content.ContentUIModel; import fr.ird.observe.client.datasource.editor.api.content.actions.id.ChangeIdRequest; import fr.ird.observe.client.datasource.editor.api.content.actions.id.ShowIdRequest; import fr.ird.observe.client.datasource.editor.api.content.actions.save.SaveRequest; import fr.ird.observe.client.datasource.editor.api.content.referential.usage.UsageForDesactivateUIHandler; import fr.ird.observe.client.datasource.editor.api.navigation.tree.NavigationNode; +import fr.ird.observe.client.util.init.DefaultUIInitializerResult; import fr.ird.observe.dto.form.Form; import fr.ird.observe.dto.reference.ReferentialDtoReference; import fr.ird.observe.dto.referential.ReferenceStatus; @@ -75,6 +77,12 @@ public abstract class ContentReferentialUIModel<D extends ReferentialDto, R exte return getSource().getContext().newModelStates(getSource().getInitializer()); } + @Override + public void init(ContentUI ui, DefaultUIInitializerResult initializerResult) { + super.init(ui, initializerResult); + getReferenceCache().registerComponents(initializerResult); + } + public void openForm(Form<D> form) { getReferenceCache().loadReferentialReferenceSetsInModel(form); setForm(form); ===================================== client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/content/referential/ContentReferentialUIModelStates.java ===================================== @@ -58,6 +58,24 @@ public class ContentReferentialUIModelStates<D extends ReferentialDto, R extends this.bean = Objects.requireNonNull(bean); } + @Override + public boolean canQuit() { + if (!isEnabled()) { + // model disabled, no check + return true; + } + if (!isEditing()) { + // model not editing, no check + return true; + } + if (isReadingMode()) { + // model in reading mode, no check + return true; + } + // can quit only if model not modified + return !isGlobalModified(); + } + public String[] getNaturalIds() { return naturalIds; } ===================================== client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/content/referential/actions/BackToListReferential.java ===================================== @@ -51,6 +51,10 @@ public final class BackToListReferential<D extends ReferentialDto, R extends Ref ContentOpen.Close close = contentOpen.tryToClose(); if (close == ContentOpen.Close.CANCEL) { return; + }if (close == ContentOpen.Close.CLOSE) { + // special case, in this form we always need to stop editing (editing does not means editable...) + //FIXME Review the form to stop using the editing property for this + close = ContentOpen.Close.RESET; } boolean canQuit = contentOpen.applyBeforeSave(close); if (!canQuit) { ===================================== client/datasource/editor/common/src/main/java/fr/ird/observe/client/datasource/editor/common/referential/common/FpaZoneUI.jaxx ===================================== @@ -27,7 +27,7 @@ fr.ird.observe.dto.referential.common.FpaZoneDto fr.ird.observe.dto.referential.common.FpaZoneReference - org.nuiton.jaxx.widgets.datetime.BeanDateEditor + org.nuiton.jaxx.widgets.datetime.DateEditor org.nuiton.jaxx.widgets.text.NormalTextEditor io.ultreia.java4all.jaxx.widgets.combobox.BeanEnumEditor io.ultreia.java4all.jaxx.widgets.choice.BeanCheckBox @@ -79,8 +79,8 @@ </cell> <cell anchor='west' weightx="1" fill="both"> <JPanel layout='{new GridLayout()}'> - <BeanDateEditor id='startDate'/> - <BeanDateEditor id='endDate'/> + <DateEditor id='startDate' styleClass='showReset'/> + <DateEditor id='endDate' styleClass='showReset'/> </JPanel> </cell> </row> ===================================== client/datasource/editor/common/src/main/java/fr/ird/observe/client/datasource/editor/common/referential/common/LengthLengthParameterUI.jaxx ===================================== @@ -39,7 +39,7 @@ org.nuiton.jaxx.widgets.text.NormalTextEditor io.ultreia.java4all.jaxx.widgets.combobox.BeanEnumEditor io.ultreia.java4all.jaxx.widgets.choice.BeanCheckBox - org.nuiton.jaxx.widgets.datetime.BeanDateEditor + org.nuiton.jaxx.widgets.datetime.DateEditor javax.swing.JScrollPane javax.swing.JTable @@ -105,8 +105,8 @@ </cell> <cell anchor='west' weightx="1" fill="both"> <JPanel layout='{new GridLayout()}'> - <BeanDateEditor id='startDate'/> - <BeanDateEditor id='endDate'/> + <DateEditor id='startDate' styleClass='showReset'/> + <DateEditor id='endDate' styleClass='showReset'/> </JPanel> </cell> </row> ===================================== client/datasource/editor/common/src/main/java/fr/ird/observe/client/datasource/editor/common/referential/common/LengthWeightParameterUI.jaxx ===================================== @@ -38,7 +38,7 @@ org.nuiton.jaxx.widgets.text.NormalTextEditor io.ultreia.java4all.jaxx.widgets.combobox.BeanEnumEditor io.ultreia.java4all.jaxx.widgets.choice.BeanCheckBox - org.nuiton.jaxx.widgets.datetime.BeanDateEditor + org.nuiton.jaxx.widgets.datetime.DateEditor javax.swing.JScrollPane javax.swing.JTable @@ -131,8 +131,8 @@ public void decorateUniqueKeyTable(JTable table, TableCellRenderer renderer, JSc </cell> <cell anchor='west' weightx="1" fill="both"> <JPanel layout='{new GridLayout()}'> - <BeanDateEditor id='startDate'/> - <BeanDateEditor id='endDate'/> + <DateEditor id='startDate' styleClass='showReset'/> + <DateEditor id='endDate' styleClass='showReset'/> </JPanel> </cell> </row> ===================================== client/datasource/editor/common/src/main/java/fr/ird/observe/client/datasource/editor/common/referential/common/ProgramUI.jaxx ===================================== @@ -34,7 +34,7 @@ io.ultreia.java4all.jaxx.widgets.combobox.BeanEnumEditor io.ultreia.java4all.jaxx.widgets.choice.BeanCheckBox - org.nuiton.jaxx.widgets.datetime.BeanDateEditor + org.nuiton.jaxx.widgets.datetime.DateEditor org.nuiton.jaxx.widgets.text.BigTextEditor org.nuiton.jaxx.widgets.text.NormalTextEditor @@ -117,8 +117,8 @@ </cell> <cell anchor='west'> <JPanel layout='{new GridLayout()}'> - <BeanDateEditor id='startDate'/> - <BeanDateEditor id='endDate'/> + <DateEditor id='startDate' styleClass='showReset'/> + <DateEditor id='endDate' styleClass='showReset'/> </JPanel> </cell> </row> ===================================== client/datasource/editor/common/src/main/java/fr/ird/observe/client/datasource/editor/common/referential/common/ShipOwnerUI.jaxx ===================================== @@ -32,7 +32,7 @@ org.nuiton.jaxx.widgets.text.NormalTextEditor io.ultreia.java4all.jaxx.widgets.combobox.BeanEnumEditor io.ultreia.java4all.jaxx.widgets.choice.BeanCheckBox - org.nuiton.jaxx.widgets.datetime.BeanDateEditor + org.nuiton.jaxx.widgets.datetime.DateEditor static fr.ird.observe.client.util.UIHelper.getStringValue fr.ird.observe.dto.referential.ReferenceStatus </import> @@ -100,8 +100,8 @@ </cell> <cell anchor='west' weightx="1" fill="both"> <JPanel layout='{new GridLayout()}'> - <BeanDateEditor id='startDate'/> - <BeanDateEditor id='endDate'/> + <DateEditor id='startDate' styleClass='showReset'/> + <DateEditor id='endDate' styleClass='showReset'/> </JPanel> </cell> </row> ===================================== client/datasource/editor/common/src/main/java/fr/ird/observe/client/datasource/editor/common/referential/common/VesselUI.jaxx ===================================== @@ -36,7 +36,7 @@ org.nuiton.jaxx.widgets.text.NormalTextEditor io.ultreia.java4all.jaxx.widgets.combobox.BeanEnumEditor io.ultreia.java4all.jaxx.widgets.choice.BeanCheckBox - org.nuiton.jaxx.widgets.datetime.BeanDateEditor + org.nuiton.jaxx.widgets.datetime.DateEditor static fr.ird.observe.client.util.UIHelper.getStringValue fr.ird.observe.dto.referential.ReferenceStatus @@ -209,7 +209,7 @@ <JLabel id='changeDateLabel'/> </cell> <cell anchor='west'> - <BeanDateEditor id='changeDate'/> + <DateEditor id='changeDate' styleClass='showReset'/> </cell> </row> <row> ===================================== client/datasource/editor/ll/src/main/java/fr/ird/observe/client/datasource/editor/ll/data/common/TripUI.jaxx ===================================== @@ -34,7 +34,7 @@ fr.ird.observe.dto.referential.ll.common.ObservationMethodReference fr.ird.observe.client.datasource.editor.api.content.data.open.ContentOpenableUIModelStates io.ultreia.java4all.jaxx.widgets.choice.BeanCheckBox - org.nuiton.jaxx.widgets.datetime.BeanDateEditor + org.nuiton.jaxx.widgets.datetime.DateEditor fr.ird.observe.client.datasource.editor.api.content.data.map.TripMapUI @@ -131,7 +131,7 @@ <JLabel id='startDateLabel'/> </cell> <cell anchor='west' weightx="0.5"> - <BeanDateEditor id='startDate'/> + <DateEditor id='startDate'/> </cell> </row> @@ -151,7 +151,7 @@ <JLabel id='endDateLabel'/> </cell> <cell anchor='west' weightx="0.5"> - <BeanDateEditor id='endDate'/> + <DateEditor id='endDate'/> </cell> </row> ===================================== client/datasource/editor/ll/src/main/java/fr/ird/observe/client/datasource/editor/ll/data/landing/LandingUI.jaxx ===================================== @@ -34,7 +34,7 @@ fr.ird.observe.client.ObserveSwingApplicationContext fr.ird.observe.client.datasource.editor.api.content.data.table.ContentTableUIModelStates fr.ird.observe.client.datasource.editor.api.content.data.open.ContentOpenableUIModelStates - org.nuiton.jaxx.widgets.datetime.BeanDateEditor + org.nuiton.jaxx.widgets.datetime.DateEditor org.nuiton.jaxx.widgets.text.BigTextEditor org.nuiton.jaxx.widgets.number.NumberEditor @@ -141,7 +141,7 @@ <JLabel id='startDateLabel'/> </cell> <cell anchor='east' weightx="1"> - <BeanDateEditor id='startDate'/> + <DateEditor id='startDate'/> </cell> </row> @@ -151,7 +151,7 @@ <JLabel id='endDateLabel'/> </cell> <cell anchor='east' weightx="1"> - <BeanDateEditor id='endDate'/> + <DateEditor id='endDate'/> </cell> </row> <row> ===================================== client/datasource/editor/ps/src/main/java/fr/ird/observe/client/datasource/editor/ps/data/common/TripUI.jaxx ===================================== @@ -34,7 +34,7 @@ fr.ird.observe.client.datasource.editor.api.content.data.map.TripMapUI fr.ird.observe.client.datasource.editor.api.content.data.open.ContentOpenableUIModelStates - org.nuiton.jaxx.widgets.datetime.BeanDateEditor + org.nuiton.jaxx.widgets.datetime.DateEditor io.ultreia.java4all.jaxx.widgets.choice.BeanCheckBox org.nuiton.jaxx.widgets.number.NumberEditor @@ -177,7 +177,7 @@ <JLabel id='startDateLabel'/> </cell> <cell anchor='west' weightx="0.5"> - <BeanDateEditor id='startDate'/> + <DateEditor id='startDate'/> </cell> </row> @@ -187,7 +187,7 @@ <JLabel id='endDateLabel'/> </cell> <cell anchor='west' weightx="0.5"> - <BeanDateEditor id='endDate'/> + <DateEditor id='endDate'/> </cell> </row> ===================================== client/datasource/editor/ps/src/main/java/fr/ird/observe/client/datasource/editor/ps/data/observation/RouteUI.jaxx ===================================== @@ -24,8 +24,7 @@ <import> fr.ird.observe.dto.data.ps.observation.RouteDto fr.ird.observe.client.datasource.editor.api.content.data.open.ContentOpenableUIModelStates - org.nuiton.jaxx.widgets.datetime.BeanDateEditor - + org.nuiton.jaxx.widgets.datetime.DateEditor org.nuiton.jaxx.widgets.number.NumberEditor org.nuiton.jaxx.widgets.text.BigTextEditor @@ -50,7 +49,7 @@ <JLabel id='dateLabel'/> </cell> <cell anchor='east' weightx="1"> - <BeanDateEditor id='date'/> + <DateEditor id='date'/> </cell> </row> <row> ===================================== client/datasource/editor/ps/src/main/java/fr/ird/observe/client/datasource/editor/ps/data/observation/SetKeptTargetCatchUIModel.java ===================================== @@ -22,12 +22,16 @@ package fr.ird.observe.client.datasource.editor.ps.data.observation; * #L% */ +import fr.ird.observe.client.ClientUIContextApplicationComponent; import fr.ird.observe.client.configuration.ClientConfig; +import fr.ird.observe.client.datasource.api.ObserveSwingDataSource; import fr.ird.observe.client.datasource.api.cache.ReferencesCache; import fr.ird.observe.client.datasource.api.cache.ReferencesFilterHelper; import fr.ird.observe.client.datasource.editor.api.content.data.table.AskToDelete; +import fr.ird.observe.dto.ProtectedIdsPs; import fr.ird.observe.dto.data.ps.observation.KeptTargetCatchDto; import fr.ird.observe.dto.data.ps.observation.SetKeptTargetCatchDto; +import fr.ird.observe.dto.referential.common.WeightMeasureMethodReference; import fr.ird.observe.services.ObserveServicesProvider; import io.ultreia.java4all.i18n.I18n; @@ -40,9 +44,11 @@ import java.util.List; * @since XXX */ public class SetKeptTargetCatchUIModel extends GeneratedSetKeptTargetCatchUIModel { - + private final WeightMeasureMethodReference defaultWeightMeasureMethod; public SetKeptTargetCatchUIModel(SetKeptTargetCatchUINavigationNode source) { super(source); + ObserveSwingDataSource dataSource = ClientUIContextApplicationComponent.value().getDataSourcesManager().getMainDataSource(); + defaultWeightMeasureMethod = dataSource.getReferentialReferenceSet(WeightMeasureMethodReference.class).tryGetReferenceById(ProtectedIdsPs.PS_OBSERVATION_KEPT_TARGET_CATCH_DEFAULT_WEIGHT_MEASURE_METHOD_ID).orElseThrow(IllegalStateException::new); } @Override @@ -59,4 +65,15 @@ public class SetKeptTargetCatchUIModel extends GeneratedSetKeptTargetCatchUIMode return ask.needDelete(this.getClientUIContext().getDecoratorService(), originalBean, bean); } + + public WeightMeasureMethodReference getDefaultWeightMeasureMethod() { + return defaultWeightMeasureMethod; + } + + @Override + public KeptTargetCatchDto newTableEditBean() { + KeptTargetCatchDto result = super.newTableEditBean(); + result.setWeightMeasureMethod(getDefaultWeightMeasureMethod()); + return result; + } } ===================================== client/i18n/src/main/i18n/translations/observe_en_GB.properties ===================================== @@ -1591,7 +1591,6 @@ observe.ui.datasource.storage.useRemoteStorage.config=Configure remote data sour observe.ui.datasource.storage.useRemoteStorage.description=Please configure connexion to remote data source\nYou must validate your connexion to continue. observe.ui.datasource.storage.useServerStorage.config=Configure remote server to use observe.ui.datasource.storage.useServerStorage.description=Please configure connexion to remote server\nYou must validate your connexion to continue. -observe.ui.datepicker.show=To show date picker dialog observe.ui.menu.actions=Actions observe.ui.menu.configuration=Configuration observe.ui.menu.configuration.tip=To configure application ===================================== client/i18n/src/main/i18n/translations/observe_es_ES.properties ===================================== @@ -1591,7 +1591,6 @@ observe.ui.datasource.storage.useRemoteStorage.config=Configurar la base remota observe.ui.datasource.storage.useRemoteStorage.description=Configure la conexión a la base remota\nAntes de continuar, debe validar la conexión. observe.ui.datasource.storage.useServerStorage.config=Configurar el servidor remoto a utilizar observe.ui.datasource.storage.useServerStorage.description=Configure su conexión al servidor remoto\nAntes de que pueda continuar, tiene que validar la conexión. -observe.ui.datepicker.show=To show date picker dialog \#TODO observe.ui.menu.actions=Acciones observe.ui.menu.configuration=Configuración observe.ui.menu.configuration.tip=Menú de configuración ===================================== client/i18n/src/main/i18n/translations/observe_fr_FR.properties ===================================== @@ -1591,7 +1591,6 @@ observe.ui.datasource.storage.useRemoteStorage.config=Configurer la base distant observe.ui.datasource.storage.useRemoteStorage.description=Veuillez configurer votre connexion à la base distante\nAvant de pouvoir poursuivre, vous devez valider la connexion. observe.ui.datasource.storage.useServerStorage.config=Configurer le serveur distant à utiliser observe.ui.datasource.storage.useServerStorage.description=Veuillez configurer votre connexion au serveur distant\nAvant de pouvoir poursuivre, vous devez valider la connexion. -observe.ui.datepicker.show=Pour ouvrir l'éditeur de date observe.ui.menu.actions=Actions observe.ui.menu.configuration=Configuration observe.ui.menu.configuration.tip=Menu de configuration ===================================== models/dto/src/main/java/fr/ird/observe/dto/ProtectedIdsPs.java ===================================== @@ -56,6 +56,7 @@ public interface ProtectedIdsPs { String PS_OBSERVATION_FOB_OBSERVED_SYSTEM = "fr.ird.referential.ps.observation.ObservedSystem#0#1.2"; ImmutableSet<String> PS_OBSERVATION_FOB_OBSERVED_SYSTEM_EXCLUDE_OPERATIONS = ImmutableSet.of("fr.ird.referential.ps.common.ObjectOperation#0#10", "fr.ird.referential.ps.common.ObjectOperation#0#1"); String PS_OBSERVATION_SCHOOL_ESTIMATE_DEFAULT_WEIGHT_MEASURE_METHOD_ID = "fr.ird.referential.common.WeightMeasureMethod#666#04"; + String PS_OBSERVATION_KEPT_TARGET_CATCH_DEFAULT_WEIGHT_MEASURE_METHOD_ID = "fr.ird.referential.common.WeightMeasureMethod#666#01"; String PS_LOGBOOK_TRIP_DEFAULT_DATA_QUALITY_ID = "fr.ird.referential.common.DataQuality#0#5"; String PS_LOGBOOK_TRIP_DEFAULT_DEPARTURE_WELL_STATES_ID = "fr.ird.referential.ps.logbook.WellsState#666#03"; String PS_LOGBOOK_TRIP_DEFAULT_LANDING_WELL_STATES_ID = "fr.ird.referential.ps.logbook.WellsState#666#03"; ===================================== models/persistence/src/main/java/fr/ird/observe/entities/data/ps/observation/SetImpl.java ===================================== @@ -35,7 +35,6 @@ import fr.ird.observe.dto.data.ps.observation.SetDto; import fr.ird.observe.dto.data.ps.observation.SetKeptTargetCatchDto; import fr.ird.observe.dto.data.ps.observation.SetNonTargetCatchDto; import fr.ird.observe.dto.data.ps.observation.SetNonTargetCatchReleaseDto; -import fr.ird.observe.dto.data.ps.observation.SetSchoolEstimateDto; import fr.ird.observe.dto.reference.DtoReferenceAware; import fr.ird.observe.dto.referential.ReferentialLocale; import fr.ird.observe.dto.referential.common.SpeciesReference; @@ -234,9 +233,6 @@ public class SetImpl extends SetAbstract { return; } super.fromDto(referentialLocale, dto); - if (dto instanceof SetSchoolEstimateDto) { - getSchoolEstimate().forEach(t -> t.setSet(this)); - } } private void fromSetNonTargetCatchDto(ReferentialLocale referentialLocale, SetNonTargetCatchDto dto) { ===================================== models/persistence/src/main/models/Observe-20-data-ps-observation.model ===================================== @@ -130,11 +130,10 @@ endLogValue + {*:1} Float | sqlType=numeric checkLevel + {*:1} int activity + {*} data.ps.observation.Activity | unique orderBy=time -data.ps.observation.SchoolEstimate > data.DataEntity | naturalIdMutable entity +data.ps.observation.SchoolEstimate > data.DataEntity | entity totalWeight + {*:1} Integer meanWeight + {*:1} Integer -set {*:1} data.ps.observation.Set | naturalId skipModelNavigation -species {*:1} referential.common.Species | naturalId +species {*:1} referential.common.Species weightMeasureMethod {*:0..1} referential.common.WeightMeasureMethod data.ps.observation.Set > data.DataEntity >> data.SetAware | entity constants=targetSampleCapture,endSetDate,endPursingDate,endSetTime,endPursingTime @@ -157,7 +156,7 @@ nonTargetCatch + {*} data.ps.observation.NonTargetCatch | ordered reasonForNullSet {*:0..1} referential.ps.observation.ReasonForNullSet nonTargetSample + {*} data.ps.observation.NonTargetSample | unique targetSample + {*} data.ps.observation.TargetSample | unique -targetCatch + {*} data.ps.observation.TargetCatch | ordered +targetCatch + {*} data.ps.observation.TargetCatch | ordered inverse=false schoolEstimate + {*} data.ps.observation.SchoolEstimate | orderBy=topiaCreateDate nonTargetCatchRelease + {*} data.ps.observation.NonTargetCatchRelease | ordered hasDiscardedTargetCatch() boolean @@ -188,7 +187,7 @@ catchWeight + {*:1} Float | sqlType=numeric well + {*:1} String | naturalId notNull=false broughtOnDeck + {*:1} Boolean discarded + {*:1} boolean | naturalId -set {*:1} data.ps.observation.Set | naturalId skipModelNavigation +set {*:1} data.ps.observation.Set | naturalId inverse skipModelNavigation weightCategory {*:1} referential.ps.observation.WeightCategory | naturalId reasonForDiscard {*:0..1} referential.ps.observation.ReasonForDiscard | naturalId notNull=false weightMeasureMethod {*:0..1} referential.common.WeightMeasureMethod ===================================== services/validation-spi/src/main/java/fr/ird/observe/validation/validators/ActivitySimpleSpeedDtoValidator.java ===================================== @@ -179,6 +179,11 @@ public class ActivitySimpleSpeedDtoValidator extends FieldValidatorSupport { RouteDto route = (RouteDto) stack.findValue("currentPsObservationRoute"); Objects.requireNonNull(route, " could not find currentPsObservationRoute in valueStack"); + if (route.getDate() == null) { + // cas limite (pas de date sur la route) + log.debug(String.format("Missing route date : %s, skip speed computation", route.getId())); + return; + } ActivityStubDto previousActivity; ===================================== services/validation-spi/src/main/java/fr/ird/observe/validation/validators/ActivitySpeedDtoValidator.java ===================================== @@ -77,6 +77,7 @@ public class ActivitySpeedDtoValidator extends FieldValidatorSupport { private CollectionFieldExpressionValidator delegate; private boolean enable; private Float speed; + public Float getSpeed() { return speed; } @@ -145,6 +146,11 @@ public class ActivitySpeedDtoValidator extends FieldValidatorSupport { return true; } + if (route.getDate() == null) { + // cas limite (pas de date sur la route) + LOG.debug(String.format("Missing route date : %s, skip speed computation", route.getId())); + return true; + } GPSPoint previousPoint = newPoint(route, previousActivity); GPSPoint currentPoint = newPoint(route, currentActivity); @@ -178,6 +184,7 @@ public class ActivitySpeedDtoValidator extends FieldValidatorSupport { public float getComputedSpeed() { return computedSpeed; } + public float getSpeed() { return ActivitySpeedDtoValidator.this.getSpeed(); } View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/67b3e8822a805060e8532361c... -- View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/67b3e8822a805060e8532361c... You're receiving this email because of your account on gitlab.com.
participants (1)
-
Tony CHEMIT