Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe Commits: 6314a2c5 by Tony CHEMIT at 2017-08-04T10:58:20+02:00 Use a ClassMapping - - - - - 24b994c0 by Tony CHEMIT at 2017-08-04T10:58:23+02:00 clean entities - - - - - a65fcbb3 by Tony CHEMIT at 2017-08-04T10:58:23+02:00 Le mode d'acquisition sur les espèces sensibles est Par individu par défaut (See #825) Ecran faune sensible rejetée, gestion de la date du rejet (See #818) Amélioration de l'ap des ContentHandler - - - - - 21 changed files: - client-validation/src/main/resources/fr/ird/observe/services/dto/seine/NonTargetCatchReleaseDto-update-error-validation.xml - client/src/main/java/fr/ird/observe/client/ui/content/ContentUIHandler.java - client/src/main/java/fr/ird/observe/client/ui/content/ContentUIModel.java - persistence/src/main/java/fr/ird/observe/entities/seine/NonTargetCatchReleaseImpl.java → client/src/main/java/fr/ird/observe/client/ui/content/UiToModelClassMapping.java - client/src/main/java/fr/ird/observe/client/ui/content/table/ContentTableModel.java - client/src/main/java/fr/ird/observe/client/ui/content/table/ContentTableUIModel.java - client/src/main/java/fr/ird/observe/client/ui/content/table/impl/seine/NonTargetCatchReleaseTableModel.java - client/src/main/java/fr/ird/observe/client/ui/content/table/impl/seine/NonTargetCatchReleaseUI.jaxx - client/src/main/java/fr/ird/observe/client/ui/content/table/impl/seine/NonTargetCatchReleaseUI.jcss - client/src/main/java/fr/ird/observe/client/ui/content/table/impl/seine/NonTargetCatchReleaseUIHandler.java - client/src/main/java/fr/ird/observe/client/ui/content/table/impl/seine/NonTargetCatchReleaseUIModel.java - client/src/main/java/fr/ird/observe/client/ui/content/table/impl/seine/NonTargetCatchUIHandler.java - client/src/main/java/fr/ird/observe/client/ui/content/table/impl/seine/NonTargetSampleUIHandler.java - client/src/main/java/fr/ird/observe/client/ui/content/table/impl/seine/SchoolEstimateUIHandler.java - client/src/main/java/fr/ird/observe/client/ui/content/table/impl/seine/TargetCatchUIHandler.java - client/src/main/java/fr/ird/observe/client/ui/content/table/impl/seine/TargetDiscardCatchUIHandler.java - client/src/main/java/fr/ird/observe/client/ui/storage/tabs/ChooseDbModeUIHandler.java - persistence/src/main/java/fr/ird/observe/entities/seine/ActivitySeineImpl.java - persistence/src/main/java/fr/ird/observe/entities/seine/FloatingObjectImpl.java - services/src/main/java/fr/ird/observe/services/dto/referential/seine/WeightCategoryHelper.java - − services/src/main/java/fr/ird/observe/services/dto/seine/NonTargetCatchReleaseDto.java Changes: ===================================== client-validation/src/main/resources/fr/ird/observe/services/dto/seine/NonTargetCatchReleaseDto-update-error-validation.xml ===================================== --- a/client-validation/src/main/resources/fr/ird/observe/services/dto/seine/NonTargetCatchReleaseDto-update-error-validation.xml +++ b/client-validation/src/main/resources/fr/ird/observe/services/dto/seine/NonTargetCatchReleaseDto-update-error-validation.xml @@ -119,7 +119,7 @@ <field-validator type="fieldexpression" short-circuit="true"> <param name="expression"> - <![CDATA[ currentSetSeine.endPursingTime.time < detectionTime.time ]]> + <![CDATA[ currentSetSeine.endPursingTimeStamp.time < detectionTime.time ]]> </param> <message>observe.validation.nonTargetCatchRelease.detectionTime.after.endPursingTimeStamp</message> </field-validator> ===================================== client/src/main/java/fr/ird/observe/client/ui/content/ContentUIHandler.java ===================================== --- a/client/src/main/java/fr/ird/observe/client/ui/content/ContentUIHandler.java +++ b/client/src/main/java/fr/ird/observe/client/ui/content/ContentUIHandler.java @@ -59,7 +59,6 @@ import java.awt.Dimension; import java.awt.FocusTraversalPolicy; import java.awt.event.FocusEvent; import java.awt.event.FocusListener; -import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.LinkedList; @@ -901,8 +900,7 @@ public abstract class ContentUIHandler<E extends IdDto, U extends ContentUI<E, U data = Collections.emptyList(); } else { - Set<DataReference<R>> referenceSetDto = getModel().getDataReferences(list.getModel().getProperty()); - data = new ArrayList<>(referenceSetDto); + data = getModel().getDataReferences(list.getModel().getProperty()); } @@ -928,8 +926,7 @@ public abstract class ContentUIHandler<E extends IdDto, U extends ContentUI<E, U data = Collections.emptyList(); } else { - Set<ReferentialReference<R>> referenceSetDto = getModel().getReferentialReferences(list.getModel().getProperty()); - data = new ArrayList<>(referenceSetDto); + data = getModel().getReferentialReferences(list.getModel().getProperty()); } @@ -960,8 +957,7 @@ public abstract class ContentUIHandler<E extends IdDto, U extends ContentUI<E, U } else { - Set<ReferentialReference<R>> referenceSetDto = getModel().getReferentialReferences(propertyName); - data = new ArrayList<>(referenceSetDto); + data = getModel().getReferentialReferences(propertyName); } @@ -990,8 +986,7 @@ public abstract class ContentUIHandler<E extends IdDto, U extends ContentUI<E, U } else { - Set<DataReference<R>> referenceSetDto = getModel().getDataReferences(propertyName); - data = new ArrayList<>(referenceSetDto); + data = getModel().getDataReferences(propertyName); } @@ -1189,6 +1184,7 @@ public abstract class ContentUIHandler<E extends IdDto, U extends ContentUI<E, U protected void openedUI() { } + protected ObserveServicesProvider getServicesProvider() { return ObserveSwingDataSource.MAIN; } ===================================== client/src/main/java/fr/ird/observe/client/ui/content/ContentUIModel.java ===================================== --- a/client/src/main/java/fr/ird/observe/client/ui/content/ContentUIModel.java +++ b/client/src/main/java/fr/ird/observe/client/ui/content/ContentUIModel.java @@ -31,6 +31,8 @@ import fr.ird.observe.services.dto.reference.DataReferenceSet; import fr.ird.observe.services.dto.reference.ReferentialReference; import fr.ird.observe.services.dto.reference.ReferentialReferenceSet; import fr.ird.observe.services.dto.referential.ReferentialDto; +import java.util.LinkedList; +import java.util.List; import java.util.Objects; import java.util.Optional; import java.util.Set; @@ -46,36 +48,26 @@ import org.jdesktop.beans.AbstractSerializableBean; */ public abstract class ContentUIModel<E extends IdDto> extends AbstractSerializableBean { - public static final String PROPERTY_EDIT_BEAN = "editBean"; - public static final String PROPERTY_MODE = "mode"; - - public static final String PROPERTY_READING_MODE = "readingMode"; - - public static final String PROPERTY_CREATING_MODE = "creatingMode"; - - public static final String PROPERTY_UPDATING_MODE = "updatingMode"; - - public static final String PROPERTY_ENABLED = "enabled"; - public static final String PROPERTY_MODIFIED = "modified"; - public static final String PROPERTY_EDITING = "editing"; - public static final String PROPERTY_EDITABLE = "editable"; - - public static final String PROPERTY_VALID = "valid"; - - public static final String PROPERTY_CAN_WRITE = "canWrite"; - public static final String PROPERTY_FORM = "form"; + private static final String PROPERTY_EDIT_BEAN = "editBean"; + private static final String PROPERTY_READING_MODE = "readingMode"; + private static final String PROPERTY_CREATING_MODE = "creatingMode"; + private static final String PROPERTY_UPDATING_MODE = "updatingMode"; + private static final String PROPERTY_ENABLED = "enabled"; + private static final String PROPERTY_VALID = "valid"; + private static final String PROPERTY_CAN_WRITE = "canWrite"; + /** Logger */ - static private final Log log = LogFactory.getLog(ContentUIModel.class); + private static final Log log = LogFactory.getLog(ContentUIModel.class); private static final long serialVersionUID = 1L; - protected final Class<E> beanType; + private final Class<E> beanType; protected Form<E> form; @@ -93,7 +85,7 @@ public abstract class ContentUIModel<E extends IdDto> extends AbstractSerializab protected boolean editable; - protected boolean canWrite; + private boolean canWrite; /** * Les référentiels qu'on peut utiliser, ils sont chargés depuis le cache des référentiels et peuvent être filtrés. @@ -105,14 +97,11 @@ public abstract class ContentUIModel<E extends IdDto> extends AbstractSerializab */ protected ImmutableMap<String, DataReferenceSet<?>> dataReferenceSetsByPropertyName = ImmutableMap.of(); - public static <E extends IdDto, U extends ContentUI<E, U>> ContentUIModel<E> newModel(U ui) { - - String uiName = ui.getClass().getName(); - String modelName = uiName + "Model"; + static <E extends IdDto, U extends ContentUI<E, U>> ContentUIModel<E> newModel(U ui) { try { - Class<ContentUIModel<E>> modelClass = (Class) Class.forName(modelName); + Class<ContentUIModel<E>> modelClass = (Class) UiToModelClassMapping.get().getClass(ui.getClass()); return modelClass.newInstance(); } catch (Exception e) { @@ -246,7 +235,7 @@ public abstract class ContentUIModel<E extends IdDto> extends AbstractSerializab firePropertyChange(PROPERTY_MODIFIED, oldValue, modified); } - public boolean isCanWrite() { + boolean isCanWrite() { return canWrite; } @@ -256,17 +245,17 @@ public abstract class ContentUIModel<E extends IdDto> extends AbstractSerializab firePropertyChange(PROPERTY_CAN_WRITE, oldValue, canWrite); } - public <D extends ReferentialDto> Set<ReferentialReference<D>> getReferentialReferences(String name) { + public <D extends ReferentialDto> List<ReferentialReference<D>> getReferentialReferences(String name) { ReferentialReferenceSet<D> referentialReferenceSet = getReferentialReferenceSet(name); - return referentialReferenceSet.getReferences(); + return new LinkedList<>(referentialReferenceSet.getReferences()); } - public <D extends DataDto> Set<DataReference<D>> getDataReferences(String name) { + <D extends DataDto> List<DataReference<D>> getDataReferences(String name) { DataReferenceSet<D> referentialReferenceSet = getDataReferenceSet(name); - return referentialReferenceSet.getReferences(); + return new LinkedList<>(referentialReferenceSet.getReferences()); } @@ -281,19 +270,11 @@ public abstract class ContentUIModel<E extends IdDto> extends AbstractSerializab this.referentialReferenceSetsByPropertyName = referentialReferenceSetsByPropertyName; } - public void setDataReferenceSetsByPropertyName(ImmutableMap<String, DataReferenceSet<?>> dataReferenceSetsByPropertyName) { - this.dataReferenceSetsByPropertyName = dataReferenceSetsByPropertyName; - } - public ImmutableMap<String, ReferentialReferenceSet<?>> getReferentialReferenceSets() { return referentialReferenceSetsByPropertyName; } - public ImmutableMap<String, DataReferenceSet<?>> getDataReferenceSets() { - return dataReferenceSetsByPropertyName; - } - - protected <R extends DataDto> Optional<Set<DataReference<R>>> tryToGetDataReferenceSet(String propertyName) { + <R extends DataDto> Optional<Set<DataReference<R>>> tryToGetDataReferenceSet(String propertyName) { DataReferenceSet<R> referenceSet = getDataReferenceSet(propertyName); Set<DataReference<R>> references = null; if (referenceSet != null) { @@ -316,12 +297,12 @@ public abstract class ContentUIModel<E extends IdDto> extends AbstractSerializab } private <R extends ReferentialDto> ReferentialReferenceSet<R> getReferentialReferenceSet(String propertyName) { - ReferentialReferenceSet<?> referenceSet = this.referentialReferenceSetsByPropertyName.get(propertyName); - Objects.requireNonNull(referenceSet, "Could not find referantialRefenceSet named " + propertyName); + ReferentialReferenceSet<?> referenceSet = referentialReferenceSetsByPropertyName.get(propertyName); + Objects.requireNonNull(referenceSet, "Could not find referentialRefenceSet named " + propertyName); return (ReferentialReferenceSet<R>) referenceSet; } - public <R extends DataDto> DataReferenceSet<R> getDataReferenceSet(String propertyName) { + private <R extends DataDto> DataReferenceSet<R> getDataReferenceSet(String propertyName) { DataReferenceSet<?> referenceSet = dataReferenceSetsByPropertyName.get(propertyName); Objects.requireNonNull(referenceSet, "Could not find dataReferenceSet named " + propertyName); return (DataReferenceSet<R>) referenceSet; ===================================== persistence/src/main/java/fr/ird/observe/entities/seine/NonTargetCatchReleaseImpl.java → client/src/main/java/fr/ird/observe/client/ui/content/UiToModelClassMapping.java ===================================== --- a/persistence/src/main/java/fr/ird/observe/entities/seine/NonTargetCatchReleaseImpl.java +++ b/client/src/main/java/fr/ird/observe/client/ui/content/UiToModelClassMapping.java @@ -1,8 +1,8 @@ -package fr.ird.observe.entities.seine; +package fr.ird.observe.client.ui.content; /*- * #%L - * ObServe :: Persistence + * ObServe :: Client * %% * Copyright (C) 2008 - 2017 IRD, Code Lutin, Ultreia.io * %% @@ -22,21 +22,24 @@ package fr.ird.observe.entities.seine; * #L% */ -import java.util.Date; -import org.nuiton.util.DateUtil; - -public class NonTargetCatchReleaseImpl extends NonTargetCatchReleaseAbstract { +import io.ultreia.java4all.http.ClassMapping; +/** + * Created by tchemit on 04/08/17. + * + * @author Tony Chemit - dev@tchemit.fr + * @since 7.0 + */ +public class UiToModelClassMapping extends ClassMapping<ContentUI, ContentUIModel> { - private static final long serialVersionUID = 1L; + private static UiToModelClassMapping INSTANCE = new UiToModelClassMapping(); - @Override - public void setDetectionTime(Date detectionTime) { - super.setDetectionTime(detectionTime == null ? null : DateUtil.getTime(detectionTime, false, false)); + public static UiToModelClassMapping get() { + return INSTANCE; } - @Override - public void setReleaseTime(Date releaseTime) { - super.setReleaseTime(releaseTime == null ? null : DateUtil.getTime(releaseTime, false, false)); + private UiToModelClassMapping() { + super(ContentUI.class.getPackage(), ContentUIModel.class.getPackage(), "Model"); } + } ===================================== client/src/main/java/fr/ird/observe/client/ui/content/table/ContentTableModel.java ===================================== --- a/client/src/main/java/fr/ird/observe/client/ui/content/table/ContentTableModel.java +++ b/client/src/main/java/fr/ird/observe/client/ui/content/table/ContentTableModel.java @@ -71,13 +71,13 @@ import org.nuiton.jaxx.validator.swing.SwingValidator; public abstract class ContentTableModel<P extends IdDto, B extends IdDto> extends AbstractTableModel { /** Le nom de la propriété de la ligne en cours d'édition */ - public static final String SELECTED_ROW_PROPERTY = "selectedRow"; + static final String SELECTED_ROW_PROPERTY = "selectedRow"; /** Le nom de la propriété modifié du modèle */ - public static final String MODIFIED_PROPERTY = "modified"; + private static final String MODIFIED_PROPERTY = "modified"; /** Le nom de la propriété pour editer le modele */ - public static final String EDITABLE_PROPERTY = "editable"; + private static final String EDITABLE_PROPERTY = "editable"; /** * Le nom de la propriété pour indiquer que l'entrée en cours d'édition est @@ -86,7 +86,7 @@ public abstract class ContentTableModel<P extends IdDto, B extends IdDto> extend public static final String CREATE_PROPERTY = "create"; /** Le nom de la propriété pour savoir si le modèle est vide */ - public static final String EMPTY_PROPERTY = "empty"; + private static final String EMPTY_PROPERTY = "empty"; private static final long serialVersionUID = 1L; @@ -97,7 +97,7 @@ public abstract class ContentTableModel<P extends IdDto, B extends IdDto> extend protected final List<ContentTableMeta<B>> metas; /** pour la propagation des modifications d'états */ - protected final PropertyChangeSupport pcs = new PropertyChangeSupport(this); + private final PropertyChangeSupport pcs = new PropertyChangeSupport(this); /** la liste des données du modèle */ protected List<B> data = new ArrayList<>(); @@ -115,7 +115,7 @@ public abstract class ContentTableModel<P extends IdDto, B extends IdDto> extend * un drapeau pour modifier la selection de la ligne en cours sans aucune * verification. */ - protected boolean valueAdjusting; + private boolean valueAdjusting; /** l'entrée sélectionnée (-1 quand pas de sélection) */ protected int selectedRow = -1; @@ -143,8 +143,7 @@ public abstract class ContentTableModel<P extends IdDto, B extends IdDto> extend String property, boolean unmodiableWhenExisting) { - return new ContentTableMeta<>(childType, - property, unmodiableWhenExisting); + return new ContentTableMeta<>(childType, property, unmodiableWhenExisting); } /** @@ -152,7 +151,7 @@ public abstract class ContentTableModel<P extends IdDto, B extends IdDto> extend * <p> * Cela va initialiser la liste à utiliser. */ - public void attachModel() { + void attachModel() { // pas de ligne selectionne setSelectedRow(-1); @@ -172,7 +171,7 @@ public abstract class ContentTableModel<P extends IdDto, B extends IdDto> extend fireTableDataChanged(); } - public void dettachModel() { + void dettachModel() { setModified(false); int size = getRowCount(); // on indique que le modele n'est plus lie au bean @@ -255,7 +254,7 @@ public abstract class ContentTableModel<P extends IdDto, B extends IdDto> extend } } - public boolean isCanQuitEditingRow() { + boolean isCanQuitEditingRow() { if (selectedRow == -1) { // aucune ligne selectionne // on peut changer la ligne sans verification @@ -359,7 +358,7 @@ public abstract class ContentTableModel<P extends IdDto, B extends IdDto> extend * * @param row l'index de la nouvelle ligne a editer */ - public void changeSelectedRow(int row) { + void changeSelectedRow(int row) { if (log.isDebugEnabled()) { log.debug("row : " + row); @@ -517,7 +516,7 @@ public abstract class ContentTableModel<P extends IdDto, B extends IdDto> extend firePropertyChange(EDITABLE_PROPERTY, oldModified, editable); } - public boolean isValueAdjusting() { + boolean isValueAdjusting() { return valueAdjusting; } @@ -581,7 +580,7 @@ public abstract class ContentTableModel<P extends IdDto, B extends IdDto> extend return metas.get(columnIndex).getType(); } - public ContentTableMeta<B> getColumnMeta(int columnIndex) { + private ContentTableMeta<B> getColumnMeta(int columnIndex) { ensureColumnIndex(columnIndex); return metas.get(columnIndex); } @@ -606,7 +605,7 @@ public abstract class ContentTableModel<P extends IdDto, B extends IdDto> extend return list == null ? null : list.get(row); } - public void updateEmpty() { + private void updateEmpty() { firePropertyChange(EMPTY_PROPERTY, null, isEmpty()); } @@ -656,7 +655,7 @@ public abstract class ContentTableModel<P extends IdDto, B extends IdDto> extend } @SuppressWarnings("unchecked") - protected SwingValidator<P> getParentValidator() { + private SwingValidator<P> getParentValidator() { return context == null ? null : context.getValidator(); } @@ -690,20 +689,20 @@ public abstract class ContentTableModel<P extends IdDto, B extends IdDto> extend return meta.setValue(this, bean, aValue, row); } - protected void ensureColumnIndex(int columnIndex) throws ArrayIndexOutOfBoundsException { + private void ensureColumnIndex(int columnIndex) throws ArrayIndexOutOfBoundsException { if (columnIndex < 0 || columnIndex >= metas.size()) { throw new ArrayIndexOutOfBoundsException("column index should be in [0," + metas.size() + "], but was " + columnIndex); } } - protected void ensureRowIndex(int rowIndex) throws ArrayIndexOutOfBoundsException { + private void ensureRowIndex(int rowIndex) throws ArrayIndexOutOfBoundsException { int size = getRowCount(); if (rowIndex < 0 || rowIndex >= size) { throw new ArrayIndexOutOfBoundsException("row index should be in [0," + (getRowCount() - 1) + "], but was " + rowIndex); } } - protected void ensureEditable() throws IllegalStateException { + private void ensureEditable() throws IllegalStateException { if (!editable) { throw new IllegalStateException("can not edit this model since it is marked as none editable " + this); } @@ -715,11 +714,11 @@ public abstract class ContentTableModel<P extends IdDto, B extends IdDto> extend clearCache(); } - protected void clearCache() { + private void clearCache() { data = null; } - protected void updateBeanList(boolean shouldChanged) { + private void updateBeanList(boolean shouldChanged) { SwingValidator<P> parentValidator = getParentValidator(); boolean wasChanged = parentValidator.isChanged(); @@ -735,11 +734,11 @@ public abstract class ContentTableModel<P extends IdDto, B extends IdDto> extend protected abstract void setChilds(P parent, List<B> childs); - protected boolean isModelModified() { + private boolean isModelModified() { return getValidator().isChanged(); } - protected boolean isModelValid() { + private boolean isModelValid() { return getValidator().isValid(); } } ===================================== client/src/main/java/fr/ird/observe/client/ui/content/table/ContentTableUIModel.java ===================================== --- a/client/src/main/java/fr/ird/observe/client/ui/content/table/ContentTableUIModel.java +++ b/client/src/main/java/fr/ird/observe/client/ui/content/table/ContentTableUIModel.java @@ -153,7 +153,7 @@ public abstract class ContentTableUIModel<E extends IdDto, D extends IdDto> exte return tableEditBean; } - public final D newTableEditBean() { + public D newTableEditBean() { try { return getChildType().getConstructor().newInstance(); ===================================== client/src/main/java/fr/ird/observe/client/ui/content/table/impl/seine/NonTargetCatchReleaseTableModel.java ===================================== --- a/client/src/main/java/fr/ird/observe/client/ui/content/table/impl/seine/NonTargetCatchReleaseTableModel.java +++ b/client/src/main/java/fr/ird/observe/client/ui/content/table/impl/seine/NonTargetCatchReleaseTableModel.java @@ -30,25 +30,20 @@ import fr.ird.observe.services.dto.seine.NonTargetCatchReleaseHelper; import fr.ird.observe.services.dto.seine.SetSeineNonTargetCatchReleaseDto; import java.util.Collection; import java.util.List; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; /** * Created on 12/4/14. * * @author Tony Chemit - dev@tchemit.fr - * @since 3.8 + * @since 7.0 */ public class NonTargetCatchReleaseTableModel extends ContentTableModel<SetSeineNonTargetCatchReleaseDto, NonTargetCatchReleaseDto> { - /** Logger. */ - private static final Log log = LogFactory.getLog(NonTargetCatchReleaseTableModel.class); - private static final long serialVersionUID = 1L; private boolean adjusting; - public NonTargetCatchReleaseTableModel(ObserveContentTableUI<SetSeineNonTargetCatchReleaseDto, NonTargetCatchReleaseDto, ?> context, - List<ContentTableMeta<NonTargetCatchReleaseDto>> contentTableMetas) { + NonTargetCatchReleaseTableModel(ObserveContentTableUI<SetSeineNonTargetCatchReleaseDto, NonTargetCatchReleaseDto, ?> context, + List<ContentTableMeta<NonTargetCatchReleaseDto>> contentTableMetas) { super(context, contentTableMetas); } @@ -77,7 +72,7 @@ public class NonTargetCatchReleaseTableModel extends ContentTableModel<SetSeineN return bean.getNonTargetCatchRelease(); } - public void moveUp(int selectedRow) { + void moveUp(int selectedRow) { NonTargetCatchReleaseDto remove = data.remove(selectedRow); data.add(selectedRow - 1, remove); fireTableRowsUpdated(selectedRow - 1, selectedRow); @@ -87,7 +82,7 @@ public class NonTargetCatchReleaseTableModel extends ContentTableModel<SetSeineN getModel().setModified(true); } - public void moveDown(int selectedRow) { + void moveDown(int selectedRow) { NonTargetCatchReleaseDto remove = data.remove(selectedRow); data.add(selectedRow + 1, remove); fireTableRowsUpdated(selectedRow, selectedRow + 1); @@ -97,7 +92,7 @@ public class NonTargetCatchReleaseTableModel extends ContentTableModel<SetSeineN getModel().setModified(true); } - public boolean isAdjusting() { + boolean isAdjusting() { return adjusting; } } ===================================== client/src/main/java/fr/ird/observe/client/ui/content/table/impl/seine/NonTargetCatchReleaseUI.jaxx ===================================== --- a/client/src/main/java/fr/ird/observe/client/ui/content/table/impl/seine/NonTargetCatchReleaseUI.jaxx +++ b/client/src/main/java/fr/ird/observe/client/ui/content/table/impl/seine/NonTargetCatchReleaseUI.jaxx @@ -41,7 +41,7 @@ fr.ird.observe.client.validation.ObserveSwingValidator fr.ird.observe.client.ui.content.table.impl.seine.ModeSaisieEchantillonEnum - org.nuiton.jaxx.widgets.datetime.TimeEditor + org.nuiton.jaxx.widgets.datetime.DateTimeEditor org.nuiton.jaxx.widgets.number.NumberEditor org.nuiton.jaxx.widgets.select.BeanComboBox @@ -150,13 +150,16 @@ </cell> </row> - <!-- detection time / release time --> + <!-- detection time --> <row> <cell columns="2" weightx="1"> - <JPanel layout='{new GridLayout(1,0)}'> - <TimeEditor id='detectionTime' constructorParams='this'/> - <TimeEditor id='releaseTime' constructorParams='this'/> - </JPanel> + <DateTimeEditor id='detectionTime' constructorParams='this'/> + </cell> + </row> + <!-- release time --> + <row> + <cell columns="2" weightx="1"> + <DateTimeEditor id='releaseTime' constructorParams='this'/> </cell> </row> ===================================== client/src/main/java/fr/ird/observe/client/ui/content/table/impl/seine/NonTargetCatchReleaseUI.jcss ===================================== --- a/client/src/main/java/fr/ird/observe/client/ui/content/table/impl/seine/NonTargetCatchReleaseUI.jcss +++ b/client/src/main/java/fr/ird/observe/client/ui/content/table/impl/seine/NonTargetCatchReleaseUI.jcss @@ -124,19 +124,19 @@ } #detectionTime { - propertyTime:{NonTargetCatchReleaseDto.PROPERTY_DETECTION_TIME}; + propertyDate:{NonTargetCatchReleaseDto.PROPERTY_DETECTION_TIME}; bean:{tableEditBean}; label:{t("observe.common.detectionTime")}; - time:{tableEditBean.getDetectionTime()}; + date:{tableEditBean.getDetectionTime()}; + dateEditable:false; _validatorLabel:{t("observe.common.detectionTime")}; showTimeEditorSlider: false; } #releaseTime { - propertyTime:{NonTargetCatchReleaseDto.PROPERTY_RELEASE_TIME}; + propertyDate:{NonTargetCatchReleaseDto.PROPERTY_RELEASE_TIME}; bean:{tableEditBean}; label:{t("observe.common.releaseTime")}; - time:{tableEditBean.getReleaseTime()}; - _validatorLabel:{t("observe.common.releaseTime")}; + date:{tableEditBean.getReleaseTime()}; showTimeEditorSlider: false; } ===================================== client/src/main/java/fr/ird/observe/client/ui/content/table/impl/seine/NonTargetCatchReleaseUIHandler.java ===================================== --- a/client/src/main/java/fr/ird/observe/client/ui/content/table/impl/seine/NonTargetCatchReleaseUIHandler.java +++ b/client/src/main/java/fr/ird/observe/client/ui/content/table/impl/seine/NonTargetCatchReleaseUIHandler.java @@ -21,7 +21,6 @@ */ package fr.ird.observe.client.ui.content.table.impl.seine; -import com.google.common.collect.Lists; import fr.ird.observe.client.db.constants.DataContextType; import fr.ird.observe.client.ui.UIHelper; import fr.ird.observe.client.ui.content.table.ContentTableUIHandler; @@ -49,7 +48,6 @@ import java.util.LinkedList; import java.util.List; import java.util.Map; import java.util.Objects; -import java.util.Set; import java.util.TreeMap; import javax.swing.JComponent; import javax.swing.JPopupMenu; @@ -130,8 +128,6 @@ public class NonTargetCatchReleaseUIHandler extends ContentTableUIHandler<SetSei NonTargetCatchReleaseTableModel model = getTableModel(); if (!model.isEditable()) { - - // rien a faire return; } @@ -139,47 +135,36 @@ public class NonTargetCatchReleaseUIHandler extends ContentTableUIHandler<SetSei JComponent requestFocus; if (create) { - Set<ReferentialReference<SpeciesDto>> speciesSet = getModel().getReferentialReferences(NonTargetCatchReleaseDto.PROPERTY_SPECIES); - availableEspeces = Lists.newArrayList(speciesSet); + + availableEspeces = getModel().getReferentialReferences(NonTargetCatchReleaseDto.PROPERTY_SPECIES); requestFocus = ui.getSpecies(); if (model.isCreate()) { - // on passe le mode de saisie en count - ui.getAcquisitionModeGroup().setSelectedValue(null); - ui.getAcquisitionModeGroup().setSelectedValue(ModeSaisieEchantillonEnum.byEffectif); - ui.getStatus().init(null); } } else { + ReferentialReference<SpeciesDto> species = bean.getSpecies(); availableEspeces = new ArrayList<>(); availableEspeces.add(species); requestFocus = ui.getSex(); - int acquisitionMode = bean.getAcquisitionMode(); - ModeSaisieEchantillonEnum enumValue = ModeSaisieEchantillonEnum.valueOf(acquisitionMode); - ui.getAcquisitionModeGroup().setSelectedValue(null); - ui.getAcquisitionModeGroup().setSelectedValue(enumValue); } + int acquisitionMode = bean.getAcquisitionMode(); + ModeSaisieEchantillonEnum enumValue = ModeSaisieEchantillonEnum.valueOf(acquisitionMode); + ui.getAcquisitionModeGroup().setSelectedValue(null); + ui.getAcquisitionModeGroup().setSelectedValue(enumValue); + ui.getSpecies().setData(availableEspeces); - Date releaseTime; - Date detectionTime; - NonTargetCatchReleaseStatus status; - if (create) { + Date releaseTime = bean.getReleaseTime(); + Date detectionTime = bean.getDetectionTime(); + NonTargetCatchReleaseStatus status = bean.getStatus(); - releaseTime = getModel().getForm().getObject().getEndPursingTimeStamp(); - detectionTime = getModel().getForm().getObject().getEndPursingTimeStamp(); - status = null; - } else { - releaseTime = bean.getReleaseTime(); - detectionTime = bean.getDetectionTime(); - status = bean.getStatus(); - } updateSpecies(bean.getSpecies()); getModel().setDetectionTime(detectionTime); ===================================== client/src/main/java/fr/ird/observe/client/ui/content/table/impl/seine/NonTargetCatchReleaseUIModel.java ===================================== --- a/client/src/main/java/fr/ird/observe/client/ui/content/table/impl/seine/NonTargetCatchReleaseUIModel.java +++ b/client/src/main/java/fr/ird/observe/client/ui/content/table/impl/seine/NonTargetCatchReleaseUIModel.java @@ -71,6 +71,17 @@ public class NonTargetCatchReleaseUIModel extends ContentTableUIModel<SetSeineNo initModel(ui, metas); } + + @Override + public NonTargetCatchReleaseDto newTableEditBean() { + NonTargetCatchReleaseDto result = super.newTableEditBean(); + Date endPursingTimeStamp = getBean().getEndPursingTimeStamp(); + result.setDetectionTime(endPursingTimeStamp); + result.setReleaseTime(endPursingTimeStamp); + result.setAcquisitionMode(ModeSaisieEchantillonEnum.byIndividu.ordinal()); + return result; + } + @Override protected NonTargetCatchReleaseTableModel createTableModel( ObserveContentTableUI<SetSeineNonTargetCatchReleaseDto, NonTargetCatchReleaseDto, ?> ui, ===================================== client/src/main/java/fr/ird/observe/client/ui/content/table/impl/seine/NonTargetCatchUIHandler.java ===================================== --- a/client/src/main/java/fr/ird/observe/client/ui/content/table/impl/seine/NonTargetCatchUIHandler.java +++ b/client/src/main/java/fr/ird/observe/client/ui/content/table/impl/seine/NonTargetCatchUIHandler.java @@ -22,7 +22,6 @@ package fr.ird.observe.client.ui.content.table.impl.seine; import com.google.common.collect.Iterables; -import com.google.common.collect.Lists; import com.google.common.collect.Sets; import fr.ird.observe.client.ObserveSwingApplicationContext; import fr.ird.observe.client.db.constants.DataContextType; @@ -214,8 +213,7 @@ public class NonTargetCatchUIHandler extends ContentTableUIHandler<SetSeineNonTa JComponent requestFocus; if (create) { - Set<ReferentialReference<SpeciesDto>> speciesSet = getModel().getReferentialReferences(NonTargetCatchDto.PROPERTY_SPECIES); - availableEspeces = Lists.newArrayList(speciesSet); + availableEspeces = getModel().getReferentialReferences(NonTargetCatchDto.PROPERTY_SPECIES); requestFocus = ui.getSpecies(); } else { ===================================== client/src/main/java/fr/ird/observe/client/ui/content/table/impl/seine/NonTargetSampleUIHandler.java ===================================== --- a/client/src/main/java/fr/ird/observe/client/ui/content/table/impl/seine/NonTargetSampleUIHandler.java +++ b/client/src/main/java/fr/ird/observe/client/ui/content/table/impl/seine/NonTargetSampleUIHandler.java @@ -43,7 +43,6 @@ import java.util.Collection; import java.util.LinkedList; import java.util.List; import java.util.Optional; -import java.util.Set; import javax.swing.JComponent; import javax.swing.JTable; import javax.swing.table.DefaultTableCellRenderer; @@ -137,8 +136,7 @@ public class NonTargetSampleUIHandler extends AbstractSampleUIHandler<NonTargetS ui.getAcquisitionModeGroup().setSelectedValue(ModeSaisieEchantillonEnum.byEffectif); } - Set<ReferentialReference<SpeciesDto>> speciesReferences = getModel().getReferentialReferences(NonTargetLengthDto.PROPERTY_SPECIES); - availableEspeces = Lists.newArrayList(speciesReferences); + availableEspeces = getModel().getReferentialReferences(NonTargetLengthDto.PROPERTY_SPECIES); // on utilise le code par defaut de l'espèce sizeMeasureType = getSpeciesDefaultSizeMeasureType(species); ===================================== client/src/main/java/fr/ird/observe/client/ui/content/table/impl/seine/SchoolEstimateUIHandler.java ===================================== --- a/client/src/main/java/fr/ird/observe/client/ui/content/table/impl/seine/SchoolEstimateUIHandler.java +++ b/client/src/main/java/fr/ird/observe/client/ui/content/table/impl/seine/SchoolEstimateUIHandler.java @@ -88,7 +88,7 @@ public class SchoolEstimateUIHandler extends ContentTableUIHandler<SetSeineSchoo JComponent requestFocus; if (create) { - Set<ReferentialReference<SpeciesDto>> references = getModel().getReferentialReferences(SchoolEstimateDto.PROPERTY_SPECIES); + List<ReferentialReference<SpeciesDto>> references = getModel().getReferentialReferences(SchoolEstimateDto.PROPERTY_SPECIES); List<ReferentialReference<SpeciesDto>> listSpeciesUsed = model.getColumnValues(0); ===================================== client/src/main/java/fr/ird/observe/client/ui/content/table/impl/seine/TargetCatchUIHandler.java ===================================== --- a/client/src/main/java/fr/ird/observe/client/ui/content/table/impl/seine/TargetCatchUIHandler.java +++ b/client/src/main/java/fr/ird/observe/client/ui/content/table/impl/seine/TargetCatchUIHandler.java @@ -258,7 +258,7 @@ public class TargetCatchUIHandler extends ContentTableUIHandler<SetSeineTargetCa // un espèce est selectionnee, on calcule les categories pour cette espèce // on ne conserve que les categories de l'espèce - Set<ReferentialReference<WeightCategoryDto>> allCategories = getModel().getReferentialReferences(TargetCatchDto.PROPERTY_WEIGHT_CATEGORY); + List<ReferentialReference<WeightCategoryDto>> allCategories = getModel().getReferentialReferences(TargetCatchDto.PROPERTY_WEIGHT_CATEGORY); availableCategories = WeightCategoryHelper.filterSpeciesWeightCategories(allCategories, species.getId()); } ===================================== client/src/main/java/fr/ird/observe/client/ui/content/table/impl/seine/TargetDiscardCatchUIHandler.java ===================================== --- a/client/src/main/java/fr/ird/observe/client/ui/content/table/impl/seine/TargetDiscardCatchUIHandler.java +++ b/client/src/main/java/fr/ird/observe/client/ui/content/table/impl/seine/TargetDiscardCatchUIHandler.java @@ -386,24 +386,18 @@ public class TargetDiscardCatchUIHandler extends ContentTableUIHandler<SetSeineT private List<ReferentialReference<WeightCategoryDto>> buildWeightCategoryList(ReferentialReference<SpeciesDto> species) { - Set<ReferentialReference<WeightCategoryDto>> allCategories = getModel().getReferentialReferences(TargetCatchDto.PROPERTY_WEIGHT_CATEGORY); + List<ReferentialReference<WeightCategoryDto>> allCategories = getModel().getReferentialReferences(TargetCatchDto.PROPERTY_WEIGHT_CATEGORY); return WeightCategoryHelper.filterSpeciesWeightCategories(allCategories, species.getId()); } @SuppressWarnings("unchecked") private List<ReferentialReference<ReasonForDiscardDto>> buildReasonFordiscardList() { - - Set<ReferentialReference<ReasonForDiscardDto>> reasonForDiscardSet = getModel().getReferentialReferences(TargetCatchDto.PROPERTY_REASON_FOR_DISCARD); - return new ArrayList<>(reasonForDiscardSet); - + return getModel().getReferentialReferences(TargetCatchDto.PROPERTY_REASON_FOR_DISCARD); } private List<ReferentialReference<WeightCategoryDto>> getAllWeightCategories() { - - Set<ReferentialReference<WeightCategoryDto>> weightCategorySet = getModel().getReferentialReferences(TargetCatchDto.PROPERTY_WEIGHT_CATEGORY); - return new ArrayList<>(weightCategorySet); - + return getModel().getReferentialReferences(TargetCatchDto.PROPERTY_WEIGHT_CATEGORY); } @Override ===================================== client/src/main/java/fr/ird/observe/client/ui/storage/tabs/ChooseDbModeUIHandler.java ===================================== --- a/client/src/main/java/fr/ird/observe/client/ui/storage/tabs/ChooseDbModeUIHandler.java +++ b/client/src/main/java/fr/ird/observe/client/ui/storage/tabs/ChooseDbModeUIHandler.java @@ -44,6 +44,7 @@ import javax.swing.JComponent; import javax.swing.JPanel; import javax.swing.JRadioButton; import javax.swing.KeyStroke; +import javax.swing.SwingUtilities; import org.nuiton.jaxx.runtime.spi.UIHandler; import org.nuiton.jaxx.runtime.swing.JAXXButtonGroup; @@ -95,12 +96,14 @@ public class ChooseDbModeUIHandler extends StorageTabUIHandler<ChooseDbModeUI> i Boolean changeStep = (Boolean) abstractButton.getClientProperty("changeStep"); if (changeStep != null && changeStep) { StorageUI parentContainer = ui.getParentContainer(StorageUI.class); - parentContainer.getNextAction().doClick(); + SwingUtilities.invokeLater(parentContainer.getNextAction()::doClick); + return; } Boolean apply = (Boolean) abstractButton.getClientProperty("apply"); if (apply != null && apply) { StorageUI parentContainer = ui.getParentContainer(StorageUI.class); - parentContainer.getApplyAction().doClick(); + SwingUtilities.invokeLater(parentContainer.getNextAction()::doClick); + SwingUtilities.invokeLater(parentContainer.getApplyAction()::doClick); } } }); ===================================== persistence/src/main/java/fr/ird/observe/entities/seine/ActivitySeineImpl.java ===================================== --- a/persistence/src/main/java/fr/ird/observe/entities/seine/ActivitySeineImpl.java +++ b/persistence/src/main/java/fr/ird/observe/entities/seine/ActivitySeineImpl.java @@ -30,25 +30,20 @@ import java.util.Arrays; import java.util.Collections; import java.util.List; import java.util.Objects; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; import org.nuiton.util.NumberUtil; /** @author Tony Chemit - dev@tchemit.fr */ public class ActivitySeineImpl extends ActivitySeineAbstract { - /** Logger. */ - private static final Log log = LogFactory.getLog(ActivitySeineImpl.class); - private static final long serialVersionUID = 2L; public static final String ACTIVITY_FIN_DE_VEILLE = "16"; - public static final String ACTIVITY_DEBUT_DE_PECHE = "7"; + private static final String ACTIVITY_DEBUT_DE_PECHE = "7"; - public static final String ACTIVITY_FIN_DE_PECHE = "6"; + private static final String ACTIVITY_FIN_DE_PECHE = "6"; - public static final String ACTIVITY_CHANGED_ZONE = "21"; + private static final String ACTIVITY_CHANGED_ZONE = "21"; private static final List<String> CALEE_OPERATIONS = Collections.singletonList(ACTIVITY_FIN_DE_PECHE); @@ -56,41 +51,23 @@ public class ActivitySeineImpl extends ActivitySeineAbstract { private static final List<String> SYSTEM_OPERATIONS = Arrays.asList("0", "11", "11", ACTIVITY_FIN_DE_VEILLE); - public static final String PROPERTY_CHANGED_ZONE_OPERATION = "changedZoneOperation"; - - public static final String PROPERTY_SET_OPERATION = "setOperation"; - -// @Override -// public OpenableEntity getOpenChild() { -// // sur une activity, pas d'enfant OpenableEntity -// return null; -// } -// -// @Override -// public List<?> getOpenableChilds() { -// // sur une activity, pas d'enfant OpenableEntity -// return null; -// } + private static final String PROPERTY_CHANGED_ZONE_OPERATION = "changedZoneOperation"; - /** @return {@code true} si l'activite concerne un DCP */ @Override public boolean isDCPOperation() { return vesselActivitySeine != null && DCP_OPERATIONS.contains(vesselActivitySeine.getCode()); } - /** @return {@code true} si l'activite concerne une calée */ @Override public boolean isSetOperation() { return vesselActivitySeine != null && CALEE_OPERATIONS.contains(vesselActivitySeine.getCode()); } - /** @return {@code true} si l'activite concerne un système observé */ @Override public boolean isObservedSystemOperation() { return vesselActivitySeine != null && SYSTEM_OPERATIONS.contains(vesselActivitySeine.getCode()); } - /** @return {@code true} si l'activite concerne un changement de zone */ @Override public boolean isChangedZoneOperation() { return vesselActivitySeine != null && ACTIVITY_CHANGED_ZONE.equals(vesselActivitySeine.getCode()); @@ -101,17 +78,6 @@ public class ActivitySeineImpl extends ActivitySeineAbstract { return CoordinateHelper.getQuadrant(longitude, latitude); } -// @Override -// public void setQuadrant(Integer quadrant) { -// if (!Objects.equals(this.quadrant, quadrant)) { -// Entities.printDebugInformations(PROPERTY_QUADRANT, this, quadrant); -// } -// Integer old = this.quadrant; -//// fireOnPreWrite(PROPERTY_QUADRANT, old, quadrant); -// this.quadrant = quadrant; -// fireOnPostWrite(PROPERTY_QUADRANT, old, quadrant); -// } - @Override public SchoolType getSchoolType() { return ActivitySeines.getSchoolType(this); @@ -136,9 +102,7 @@ public class ActivitySeineImpl extends ActivitySeineAbstract { public void setObservedSystemDistance(Float observedSystemDistance) { if (observedSystemDistance != null) { - // on arrondit à 2 décimales - observedSystemDistance = - NumberUtil.roundTwoDigits(observedSystemDistance); + observedSystemDistance = NumberUtil.roundTwoDigits(observedSystemDistance); } super.setObservedSystemDistance(observedSystemDistance); } ===================================== persistence/src/main/java/fr/ird/observe/entities/seine/FloatingObjectImpl.java ===================================== --- a/persistence/src/main/java/fr/ird/observe/entities/seine/FloatingObjectImpl.java +++ b/persistence/src/main/java/fr/ird/observe/entities/seine/FloatingObjectImpl.java @@ -25,7 +25,6 @@ import com.google.common.collect.Iterables; import fr.ird.observe.common.constants.seine.TypeTransmittingBuoyOperation; import fr.ird.observe.entities.referentiel.seine.TransmittingBuoyOperation; -/** Implantation des objectOperations pour l'entité FloatingObject. */ public class FloatingObjectImpl extends FloatingObjectAbstract { private static final long serialVersionUID = 1L; ===================================== services/src/main/java/fr/ird/observe/services/dto/referential/seine/WeightCategoryHelper.java ===================================== --- a/services/src/main/java/fr/ird/observe/services/dto/referential/seine/WeightCategoryHelper.java +++ b/services/src/main/java/fr/ird/observe/services/dto/referential/seine/WeightCategoryHelper.java @@ -23,6 +23,7 @@ package fr.ird.observe.services.dto.referential.seine; */ import fr.ird.observe.services.dto.reference.ReferentialReference; +import java.util.Collection; import java.util.List; import java.util.Set; import java.util.function.Predicate; @@ -39,7 +40,7 @@ public class WeightCategoryHelper extends GeneratedWeightCategoryHelper { * @param speciesId l'identifiant de l'espèce * @return la liste de toutes les catégories de poids de l'espèce */ - public static List<ReferentialReference<WeightCategoryDto>> filterSpeciesWeightCategories(Set<ReferentialReference<WeightCategoryDto>> weightCategoryReferences, String speciesId) { + public static List<ReferentialReference<WeightCategoryDto>> filterSpeciesWeightCategories(Collection<ReferentialReference<WeightCategoryDto>> weightCategoryReferences, String speciesId) { List<ReferentialReference<WeightCategoryDto>> references = weightCategoryReferences.stream().filter(new WeightCategorySpeciesPredicate(speciesId)).collect(Collectors.toList()); ===================================== services/src/main/java/fr/ird/observe/services/dto/seine/NonTargetCatchReleaseDto.java deleted ===================================== --- a/services/src/main/java/fr/ird/observe/services/dto/seine/NonTargetCatchReleaseDto.java +++ /dev/null @@ -1,41 +0,0 @@ -package fr.ird.observe.services.dto.seine; - -/*- - * #%L - * ObServe :: Services - * %% - * Copyright (C) 2008 - 2017 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 java.util.Date; -import org.nuiton.util.DateUtil; - -public class NonTargetCatchReleaseDto extends GeneratedNonTargetCatchReleaseDto { - - private static final long serialVersionUID = 1L; - - @Override - public void setDetectionTime(Date detectionTime) { - super.setDetectionTime(detectionTime == null ? null : DateUtil.getTime(detectionTime, false, false)); - } - - @Override - public void setReleaseTime(Date releaseTime) { - super.setReleaseTime(releaseTime == null ? null : DateUtil.getTime(releaseTime, false, false)); - } -} View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/compare/60a3ac0a536410b8eeea6d2ce8a... --- View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/compare/60a3ac0a536410b8eeea6d2ce8a... You're receiving this email because of your account on gitlab.com.
participants (1)
-
Tony CHEMIT