This is an automated email from the git hooks/post-receive script. New commit to branch feature/7589 in repository observe. See http://git.codelutin.com/observe.git commit bfb6d56de2c312f220be0506353e65f4bdd36e09 Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Tue Oct 13 11:11:52 2015 +0200 migration de l'écran (sans validation) (refs #7589) --- .../ird/observe/ui/content/ContentUIHandler.java | 6 + .../ui/content/open/ContentOpenableUIHandler.java | 7 - .../ui/content/table/ContentTableModel.java | 44 ++---- .../ui/content/table/ContentTableUIHandler.java | 18 ++- .../content/table/ContentTableUIInitializer.java | 2 - .../ui/content/table/ContentTableUIModel.java | 41 +---- .../impl/longline/BaitsCompositionUIModel.java | 6 + .../longline/BranchlinesCompositionUIModel.java | 7 +- .../impl/longline/CatchLonglineTableModel.java | 19 +++ .../table/impl/longline/EncounterUIModel.java | 6 + .../longline/FloatlinesCompositionUIModel.java | 6 + .../GearUseFeaturesLonglineTableModel.java | 19 +++ .../impl/longline/HooksCompositionUIModel.java | 6 + .../table/impl/longline/SensorUsedUIModel.java | 7 + .../ui/content/table/impl/longline/TdrUIModel.java | 7 + .../seine/GearUseFeatureMeasurementCellEditor.java | 12 +- .../GearUseFeatureMeasurementCellRenderer.java | 18 ++- .../impl/seine/GearUseFeaturesSeineTableModel.java | 24 ++- .../table/impl/seine/GearUseFeaturesSeineUI.jaxx | 8 +- .../impl/seine/GearUseFeaturesSeineUIHandler.java | 174 +++++++-------------- .../impl/seine/GearUseFeaturesSeineUIModel.java | 54 +++---- .../table/impl/seine/NonTargetCatchUIModel.java | 7 + .../table/impl/seine/NonTargetSampleUIModel.java | 6 + .../impl/seine/ObjectObservedSpeciesUIModel.java | 6 + .../impl/seine/ObjectSchoolEstimateUIModel.java | 6 + .../table/impl/seine/SchoolEstimateUIModel.java | 7 + .../table/impl/seine/TargetCatchUIModel.java | 6 + .../impl/seine/TargetDiscardCatchUIModel.java | 6 + .../table/impl/seine/TargetSampleUIModel.java | 7 + .../GearUseFeaturesSeineServiceController.java | 70 --------- .../seine/TripSeineGearUseServiceController.java | 54 +++++++ ...neService.java => TripSeineGearUseService.java} | 26 +-- .../dto/referential/GearCaracteristicTypeDtos.java | 71 +++++++++ .../main/xmi/observe-services-dto-seine.properties | 1 + .../src/main/xmi/observe-services-dto-seine.zargo | Bin 60043 -> 60981 bytes ...t.java => TripSeineGearUseServiceRestTest.java} | 125 ++++----------- .../services/dto/ObserveDtosInitializer.java | 11 +- .../seine/GearUseFeaturesSeineServiceTopia.java | 148 ------------------ .../seine/TripSeineGearUseServiceTopia.java | 80 ++++++++++ ....java => TripSeineGearUseServiceTopiaTest.java} | 167 ++++---------------- 40 files changed, 565 insertions(+), 730 deletions(-) diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/ContentUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/ContentUIHandler.java index 8a6b083..f5139eb 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/ContentUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/ContentUIHandler.java @@ -21,6 +21,7 @@ */ package fr.ird.observe.ui.content; +import fr.ird.observe.ObserveOpenDataManager; import fr.ird.observe.ObserveServiceHelper; import fr.ird.observe.ObserveSwingApplicationContext; import fr.ird.observe.business.BinderService; @@ -302,6 +303,11 @@ public abstract class ContentUIHandler<E extends IdDto> { return ObserveSwingApplicationContext.get().getDataSource(); } + protected ObserveOpenDataManager getOpenDataManager() { + ObserveOpenDataManager openDataManager = ObserveSwingApplicationContext.get().getOpenDataManager(); + return openDataManager; + } + public void initUI() throws Exception { final ContentUIInitializer<E, ObserveContentUI<E>> uiInitializer = new ContentUIInitializer<E, ObserveContentUI<E>>(ui); diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/ContentOpenableUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/ContentOpenableUIHandler.java index 502a648..f1f4ad3 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/ContentOpenableUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/ContentOpenableUIHandler.java @@ -21,9 +21,7 @@ */ package fr.ird.observe.ui.content.open; -import fr.ird.observe.ObserveOpenDataManager; import fr.ird.observe.ObserveServiceHelper; -import fr.ird.observe.ObserveSwingApplicationContext; import fr.ird.observe.business.db.constants.DataContextType; import fr.ird.observe.db.ObserveSwingDataSource; import fr.ird.observe.services.dto.IdDto; @@ -78,11 +76,6 @@ public abstract class ContentOpenableUIHandler<E extends IdDto> extends ContentU return source.canWriteData(); } - protected ObserveOpenDataManager getOpenDataManager() { - ObserveOpenDataManager openDataManager = ObserveSwingApplicationContext.get().getOpenDataManager(); - return openDataManager; - } - protected abstract boolean doOpenData(); public final void openDataUI() { diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/ContentTableModel.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/ContentTableModel.java index 0445168..30c032c 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/ContentTableModel.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/ContentTableModel.java @@ -31,11 +31,12 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.i18n.I18n; -import javax.swing.*; +import javax.swing.JOptionPane; import javax.swing.table.AbstractTableModel; import java.beans.PropertyChangeListener; import java.beans.PropertyChangeSupport; import java.util.ArrayList; +import java.util.Collection; import java.util.Collections; import java.util.List; @@ -69,7 +70,7 @@ import java.util.List; * @author Tony Chemit - chemit@codelutin.com * @since 1.0 */ -public class ContentTableModel<P extends IdDto, B extends IdDto> extends AbstractTableModel { +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"; @@ -397,8 +398,7 @@ public class ContentTableModel<P extends IdDto, B extends IdDto> extends Abstrac beanToBind = getValueAt(row); // on charge le bean d'edition - //FIXME -// getChildLoador().load(beanToBind, getRowBean(), true); + load(beanToBind, getRowBean()); // on modifie la ligne d'edition setSelectedRow(row); @@ -420,8 +420,7 @@ public class ContentTableModel<P extends IdDto, B extends IdDto> extends Abstrac // mettre a jour la ligne B bean = getValueAt(editingRow); - //FIXME -// getChildLoador().load(getRowBean(), bean, true); + load(getRowBean(), bean); fireTableRowsUpdated(editingRow, editingRow); if (create) { @@ -445,8 +444,7 @@ public class ContentTableModel<P extends IdDto, B extends IdDto> extends Abstrac public void resetEditBean() { B bean = getValueAt(getSelectedRow()); - //FIXME -// getChildLoador().load(bean, getRowBean(), true); + load(bean, getRowBean()); // plus de modification sur le bean d'edition getValidator().setChanged(false); } @@ -457,17 +455,9 @@ public class ContentTableModel<P extends IdDto, B extends IdDto> extends Abstrac return handler; } - //FIXME -// protected Loador<B> getChildLoador() { -// ContentTableUIModel<P, B> model = getModel(); -// return model.getChildLoador(); -// } + protected abstract Collection<B> getChilds(P bean); - //FIXME -// protected EntityListUpdator<P, B> getChildsUpdator() { -// ContentTableUIModel<P, B> model = getModel(); -// return model.getChildsUpdator(); -// } + protected abstract void load(B source, B target); protected P getBean() { ContentTableUIModel<P, B> model = getModel(); @@ -542,13 +532,12 @@ public class ContentTableModel<P extends IdDto, B extends IdDto> extends Abstrac // on recupere donc la liste a partir du bean principal P bean = getBean(); - //FIXME -// Collection<B> childs = getChildsUpdator().getChilds(bean); -// if (childs == null || childs.isEmpty()) { -// data = new ArrayList<B>(); -// } else { -// data = new ArrayList<B>(childs); -// } + Collection<B> childs = getChilds(bean); + if (childs == null || childs.isEmpty()) { + data = new ArrayList<B>(); + } else { + data = new ArrayList<B>(childs); + } } else { // le modèle n'est pas encore initialisé // on retourne donc une liste vide @@ -736,8 +725,7 @@ public class ContentTableModel<P extends IdDto, B extends IdDto> extends Abstrac // on repositionne la liste sur le bean principal // pour avoir la validation en temps reel sur le bean principal - //FIXME -// getChildsUpdator().setChilds(getBean(), data); + setChilds(getBean(), data); parentValidator.doValidate(); if (!shouldChanged && !wasChanged) { // on repositionne le drapeau changed a faux @@ -745,6 +733,8 @@ public class ContentTableModel<P extends IdDto, B extends IdDto> extends Abstrac } } + protected abstract void setChilds(P parent, List<B> childs); + protected boolean isModelModified() { return getValidator().isChanged(); } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/ContentTableUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/ContentTableUIHandler.java index 023f51c..dc0cb19 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/ContentTableUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/ContentTableUIHandler.java @@ -35,6 +35,7 @@ import fr.ird.observe.services.dto.referential.SpeciesListDto; import fr.ird.observe.ui.UIHelper; import fr.ird.observe.ui.content.ContentMode; import fr.ird.observe.ui.content.ContentUIHandler; +import fr.ird.observe.ui.content.ContentUIModel; import fr.ird.observe.ui.content.ObserveContentUI; import fr.ird.observe.ui.tree.ObserveNode; import jaxx.runtime.swing.ErrorDialogUI; @@ -42,10 +43,14 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.validator.NuitonValidatorScope; -import javax.swing.*; +import javax.swing.JComponent; +import javax.swing.ListSelectionModel; +import javax.swing.SwingUtilities; import javax.swing.event.ListSelectionEvent; import javax.swing.table.DefaultTableCellRenderer; -import java.awt.*; +import java.awt.Rectangle; +import java.beans.PropertyChangeEvent; +import java.beans.PropertyChangeListener; import java.util.Collections; import java.util.HashSet; import java.util.LinkedHashSet; @@ -249,10 +254,17 @@ public abstract class ContentTableUIHandler<E extends IdDto, D extends IdDto> ex @Override public void initUI() throws Exception { - ContentTableUIInitializer<E, D, ObserveContentTableUI<E, D>> uiInitializer = + final ContentTableUIInitializer<E, D, ObserveContentTableUI<E, D>> uiInitializer = new ContentTableUIInitializer<E, D, ObserveContentTableUI<E, D>>(getUi()); uiInitializer.initUI(); + getModel().addPropertyChangeListener(ContentUIModel.PROPERTY_FORM_DTO, new PropertyChangeListener() { + @Override + public void propertyChange(PropertyChangeEvent evt) { + uiInitializer.referentialDataUpdated(); + } + }); + } public Set<String> loadSpeciesList(String speciesListId, String errorMessage) { diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/ContentTableUIInitializer.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/ContentTableUIInitializer.java index e36dd30..795652c 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/ContentTableUIInitializer.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/ContentTableUIInitializer.java @@ -221,8 +221,6 @@ public class ContentTableUIInitializer<E extends IdDto, D extends IdDto, UI exte @Override protected void init(JTextArea editor) { - super.init(editor); - final String propertyName = (String) editor.getClientProperty(CLIENT_PROPERTY_TABLE_PROPERTY_NAME); if (propertyName != null) { editor.addKeyListener(new KeyAdapter() { diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/ContentTableUIModel.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/ContentTableUIModel.java index 4d4df8c..ec1742a 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/ContentTableUIModel.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/ContentTableUIModel.java @@ -84,11 +84,6 @@ public abstract class ContentTableUIModel<E extends IdDto, D extends IdDto> exte private ContentTableModel<E, D> tableModel; - //FIXME -// private TopiaEntityBinder<D> childLoador; - //FIXME -// private EntityListUpdator<E, D> childsUpdator; - public ContentTableUIModel(Class<E> beanType, Class<D> childType, String[] parentProperties, @@ -134,43 +129,9 @@ public abstract class ContentTableUIModel<E extends IdDto, D extends IdDto> exte this.tableModel = createTableModel(ui, metas); - //FIXME -// this.childsUpdator = EntityListUpdator.newEntityListUpdator( -// getBeanType(), -// getChildType(), -// getParentProperties()[0]); - - - String binderName = getClass().getName() + "-open"; - Class<D> childBeanType = getChildType(); - - //FIXME -// BinderService binderService = ObserveServiceHelper.get().getBinderService(); -// -// childLoador = binderService.getTopiaBinder(childBeanType, binderName); -// -// if (childLoador == null) { -// -// BinderModelBuilder<D, D> builder = prepareChildLoador(binderService, binderName); -// -// childLoador = binderService.registerTopiaBinder(childBeanType, builder, binderName); -// -// } - - } - - protected ContentTableModel<E, D> createTableModel(ObserveContentTableUI<E, D> ui, List<ContentTableMeta<D>> metas) { - return new ContentTableModel<E, D>(ui, metas); } - //FIXME -// public final EntityListUpdator<E, D> getChildsUpdator() { -// return childsUpdator; -// } - //FIXME -// public final TopiaEntityBinder<D> getChildLoador() { -// return childLoador; -// } + protected abstract ContentTableModel<E, D> createTableModel(ObserveContentTableUI<E, D> ui, List<ContentTableMeta<D>> metas) ; public Class<D> getChildType() { return childType; diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/BaitsCompositionUIModel.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/BaitsCompositionUIModel.java index 5e30b0f..7b74ca8 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/BaitsCompositionUIModel.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/BaitsCompositionUIModel.java @@ -28,6 +28,7 @@ import fr.ird.observe.services.dto.longline.SetLonglineGlobalCompositionDto; import fr.ird.observe.ui.content.table.ContentTableMeta; import fr.ird.observe.ui.content.table.ContentTableModel; import fr.ird.observe.ui.content.table.ContentTableUIModel; +import fr.ird.observe.ui.content.table.ObserveContentTableUI; import java.util.List; @@ -77,4 +78,9 @@ public class BaitsCompositionUIModel extends ContentTableUIModel<SetLonglineGlob return sum; } + @Override + protected ContentTableModel<SetLonglineGlobalCompositionDto, BaitsCompositionDto> createTableModel(ObserveContentTableUI<SetLonglineGlobalCompositionDto, BaitsCompositionDto> ui, List<ContentTableMeta<BaitsCompositionDto>> contentTableMetas) { + //FIXME + return null; + } } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/BranchlinesCompositionUIModel.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/BranchlinesCompositionUIModel.java index 9262147..ec23581 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/BranchlinesCompositionUIModel.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/BranchlinesCompositionUIModel.java @@ -24,11 +24,11 @@ package fr.ird.observe.ui.content.table.impl.longline; import com.google.common.collect.Lists; import fr.ird.observe.services.dto.longline.BranchlinesCompositionDto; -import fr.ird.observe.services.dto.longline.SetLonglineDto; import fr.ird.observe.services.dto.longline.SetLonglineGlobalCompositionDto; import fr.ird.observe.ui.content.table.ContentTableMeta; import fr.ird.observe.ui.content.table.ContentTableModel; import fr.ird.observe.ui.content.table.ContentTableUIModel; +import fr.ird.observe.ui.content.table.ObserveContentTableUI; import java.util.List; @@ -64,4 +64,9 @@ public class BranchlinesCompositionUIModel extends ContentTableUIModel<SetLongli } + @Override + protected ContentTableModel<SetLonglineGlobalCompositionDto, BranchlinesCompositionDto> createTableModel(ObserveContentTableUI<SetLonglineGlobalCompositionDto, BranchlinesCompositionDto> ui, List<ContentTableMeta<BranchlinesCompositionDto>> contentTableMetas) { + //FIXME + return null; + } } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/CatchLonglineTableModel.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/CatchLonglineTableModel.java index a133ef4..d8a6d7c 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/CatchLonglineTableModel.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/CatchLonglineTableModel.java @@ -28,6 +28,7 @@ import fr.ird.observe.ui.content.table.ContentTableMeta; import fr.ird.observe.ui.content.table.ContentTableModel; import fr.ird.observe.ui.content.table.ObserveContentTableUI; +import java.util.Collection; import java.util.List; /** @@ -91,6 +92,12 @@ public class CatchLonglineTableModel extends ContentTableModel<SetLonglineDto, C } @Override + protected void setChilds(SetLonglineDto parent, List<CatchLonglineDto> childs) { + // FIXME + + } + + @Override public void resetEditBean() { int row = getSelectedRow(); @@ -106,6 +113,18 @@ public class CatchLonglineTableModel extends ContentTableModel<SetLonglineDto, C } @Override + protected Collection<CatchLonglineDto> getChilds(SetLonglineDto bean) { + // FIXME + return null; + } + + @Override + protected void load(CatchLonglineDto source, CatchLonglineDto target) { + // FIXME + + } + + @Override protected void resetRow(int row) { super.resetRow(row); diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/EncounterUIModel.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/EncounterUIModel.java index b18fd05..3ee0fb9 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/EncounterUIModel.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/EncounterUIModel.java @@ -28,6 +28,7 @@ import fr.ird.observe.services.dto.longline.EncounterDto; import fr.ird.observe.ui.content.table.ContentTableMeta; import fr.ird.observe.ui.content.table.ContentTableModel; import fr.ird.observe.ui.content.table.ContentTableUIModel; +import fr.ird.observe.ui.content.table.ObserveContentTableUI; import java.util.List; @@ -63,4 +64,9 @@ public class EncounterUIModel extends ContentTableUIModel<ActivityLonglineDto, E } + @Override + protected ContentTableModel<ActivityLonglineDto, EncounterDto> createTableModel(ObserveContentTableUI<ActivityLonglineDto, EncounterDto> ui, List<ContentTableMeta<EncounterDto>> contentTableMetas) { + // FIXME + return null; + } } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/FloatlinesCompositionUIModel.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/FloatlinesCompositionUIModel.java index 1eba1af..af421fd 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/FloatlinesCompositionUIModel.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/FloatlinesCompositionUIModel.java @@ -28,6 +28,7 @@ import fr.ird.observe.services.dto.longline.SetLonglineDto; import fr.ird.observe.ui.content.table.ContentTableMeta; import fr.ird.observe.ui.content.table.ContentTableModel; import fr.ird.observe.ui.content.table.ContentTableUIModel; +import fr.ird.observe.ui.content.table.ObserveContentTableUI; import java.util.List; @@ -62,4 +63,9 @@ public class FloatlinesCompositionUIModel extends ContentTableUIModel<SetLonglin } + @Override + protected ContentTableModel<SetLonglineDto, FloatlinesCompositionDto> createTableModel(ObserveContentTableUI<SetLonglineDto, FloatlinesCompositionDto> ui, List<ContentTableMeta<FloatlinesCompositionDto>> contentTableMetas) { + // FIXME + return null; + } } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/GearUseFeaturesLonglineTableModel.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/GearUseFeaturesLonglineTableModel.java index 01ec2ce..51265b9 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/GearUseFeaturesLonglineTableModel.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/GearUseFeaturesLonglineTableModel.java @@ -32,6 +32,7 @@ import fr.ird.observe.ui.content.table.ContentTableModel; import fr.ird.observe.ui.content.table.ObserveContentTableUI; import org.apache.commons.collections4.CollectionUtils; +import java.util.Collection; import java.util.List; /** @@ -120,6 +121,12 @@ public class GearUseFeaturesLonglineTableModel extends ContentTableModel<TripLon } @Override + protected void setChilds(TripLonglineDto parent, List<GearUseFeaturesLonglineDto> childs) { + // FIXME + + } + + @Override public void resetEditBean() { int row = getSelectedRow(); @@ -134,6 +141,18 @@ public class GearUseFeaturesLonglineTableModel extends ContentTableModel<TripLon } @Override + protected Collection<GearUseFeaturesLonglineDto> getChilds(TripLonglineDto bean) { + // FIXME + return null; + } + + @Override + protected void load(GearUseFeaturesLonglineDto source, GearUseFeaturesLonglineDto target) { + // FIXME + + } + + @Override protected void resetRow(int row) { super.resetRow(row); diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/HooksCompositionUIModel.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/HooksCompositionUIModel.java index f863121..2ede5d8 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/HooksCompositionUIModel.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/HooksCompositionUIModel.java @@ -28,6 +28,7 @@ import fr.ird.observe.services.dto.longline.SetLonglineDto; import fr.ird.observe.ui.content.table.ContentTableMeta; import fr.ird.observe.ui.content.table.ContentTableModel; import fr.ird.observe.ui.content.table.ContentTableUIModel; +import fr.ird.observe.ui.content.table.ObserveContentTableUI; import java.util.List; @@ -64,4 +65,9 @@ public class HooksCompositionUIModel extends ContentTableUIModel<SetLonglineDto, } + @Override + protected ContentTableModel<SetLonglineDto, HooksCompositionDto> createTableModel(ObserveContentTableUI<SetLonglineDto, HooksCompositionDto> ui, List<ContentTableMeta<HooksCompositionDto>> contentTableMetas) { + // FIXME + return null; + } } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/SensorUsedUIModel.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/SensorUsedUIModel.java index 2ef7104..0516c35 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/SensorUsedUIModel.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/SensorUsedUIModel.java @@ -28,6 +28,7 @@ import fr.ird.observe.services.dto.longline.SensorUsedDto; import fr.ird.observe.ui.content.table.ContentTableMeta; import fr.ird.observe.ui.content.table.ContentTableModel; import fr.ird.observe.ui.content.table.ContentTableUIModel; +import fr.ird.observe.ui.content.table.ObserveContentTableUI; import java.util.List; @@ -68,4 +69,10 @@ public class SensorUsedUIModel extends ContentTableUIModel<ActivityLonglineDto, initModel(ui, metas); } + + @Override + protected ContentTableModel<ActivityLonglineDto, SensorUsedDto> createTableModel(ObserveContentTableUI<ActivityLonglineDto, SensorUsedDto> ui, List<ContentTableMeta<SensorUsedDto>> contentTableMetas) { + // FIXME + return null; + } } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/TdrUIModel.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/TdrUIModel.java index 0040110..3b02b11 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/TdrUIModel.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/TdrUIModel.java @@ -30,6 +30,7 @@ import fr.ird.observe.services.dto.longline.TdrDto; import fr.ird.observe.ui.content.table.ContentTableMeta; import fr.ird.observe.ui.content.table.ContentTableModel; import fr.ird.observe.ui.content.table.ContentTableUIModel; +import fr.ird.observe.ui.content.table.ObserveContentTableUI; import org.nuiton.util.DateUtil; import org.nuiton.util.beans.Binder; import org.nuiton.util.beans.BinderModelBuilder; @@ -205,6 +206,12 @@ public class TdrUIModel extends ContentTableUIModel<SetLonglineDto, TdrDto> { } @Override + protected ContentTableModel<SetLonglineDto, TdrDto> createTableModel(ObserveContentTableUI<SetLonglineDto, TdrDto> ui, List<ContentTableMeta<TdrDto>> contentTableMetas) { + // FIXME + return null; + } + + @Override protected BinderModelBuilder<TdrDto, TdrDto> prepareChildLoador(BinderService binderService, String binderName) { BinderModelBuilder<TdrDto, TdrDto> builder = super.prepareChildLoador(binderService, binderName); diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/GearUseFeatureMeasurementCellEditor.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/GearUseFeatureMeasurementCellEditor.java index 4056281..eef3b8e 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/GearUseFeatureMeasurementCellEditor.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/GearUseFeatureMeasurementCellEditor.java @@ -120,22 +120,22 @@ public class GearUseFeatureMeasurementCellEditor extends AbstractCellEditor impl @Override public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) { - GearCaracteristicDto caracteristic = (GearCaracteristicDto) table.getModel().getValueAt(row, caracteristicColumn); - if (caracteristic == null) { + ReferentialReferenceDto<GearCaracteristicDto> caracteristicRef = (ReferentialReferenceDto<GearCaracteristicDto>) table.getModel().getValueAt(row, caracteristicColumn); + if (caracteristicRef == null) { // can't edit a null value ? editor = table.getDefaultEditor(Object.class); } else { - ReferentialReferenceDto<GearCaracteristicTypeDto> gearCaracteristicType = caracteristic.getGearCaracteristicType(); + ReferentialReferenceDto<GearCaracteristicTypeDto> gearCaracteristicTypeRef = + (ReferentialReferenceDto<GearCaracteristicTypeDto>) caracteristicRef.getPropertyValue(GearCaracteristicDto.PROPERTY_GEAR_CARACTERISTIC_TYPE); - String gearCaracteristicTypeId = gearCaracteristicType.getId(); + String gearCaracteristicTypeId = gearCaracteristicTypeRef.getId(); Map<String, TableCellEditor> editors = getEditorsByGearCaracteristicId(table); editor = editors.get(gearCaracteristicTypeId); - //FIXME -// value = GearCaracteristicTypeDtos.getTypeValue(gearCaracteristicType, value); + value = GearCaracteristicTypeDtos.getTypeValue(gearCaracteristicTypeId, value); } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/GearUseFeatureMeasurementCellRenderer.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/GearUseFeatureMeasurementCellRenderer.java index 7ad11bf..1e24a45 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/GearUseFeatureMeasurementCellRenderer.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/GearUseFeatureMeasurementCellRenderer.java @@ -24,13 +24,14 @@ package fr.ird.observe.ui.content.table.impl.seine; import fr.ird.observe.services.dto.referential.GearCaracteristicDto; import fr.ird.observe.services.dto.referential.GearCaracteristicTypeDto; +import fr.ird.observe.services.dto.referential.GearCaracteristicTypeDtos; import fr.ird.observe.services.dto.referential.ReferentialReferenceDto; import fr.ird.observe.ui.UIHelper; -import javax.swing.*; +import javax.swing.JTable; import javax.swing.table.DefaultTableCellRenderer; import javax.swing.table.TableCellRenderer; -import java.awt.*; +import java.awt.Component; import java.util.Map; import java.util.TreeMap; @@ -89,20 +90,21 @@ public class GearUseFeatureMeasurementCellRenderer implements TableCellRenderer TableCellRenderer tableCellRenderer; - GearCaracteristicDto caracteristic = (GearCaracteristicDto) table.getModel().getValueAt(row, caracteristicColumn); - if (caracteristic == null) { + ReferentialReferenceDto<GearCaracteristicDto> caracteristicRef = (ReferentialReferenceDto<GearCaracteristicDto>) table.getModel().getValueAt(row, caracteristicColumn); + if (caracteristicRef == null) { tableCellRenderer = table.getDefaultRenderer(Object.class); } else { - ReferentialReferenceDto<GearCaracteristicTypeDto> gearCaracteristicType = caracteristic.getGearCaracteristicType(); + ReferentialReferenceDto<GearCaracteristicTypeDto> gearCaracteristicTypeRef = + (ReferentialReferenceDto<GearCaracteristicTypeDto>)caracteristicRef.getPropertyValue(GearCaracteristicDto.PROPERTY_GEAR_CARACTERISTIC_TYPE); - String gearCaracteristicTypeId = gearCaracteristicType.getId(); + + String gearCaracteristicTypeId = gearCaracteristicTypeRef.getId(); tableCellRenderer = renderersByCaracteristicTypeId.get(gearCaracteristicTypeId); - //FIXME -// value = GearCaracteristicTypeDtos.getTypeValue(gearCaracteristicType, value); + value = GearCaracteristicTypeDtos.getTypeValue(gearCaracteristicTypeId, value); } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/GearUseFeaturesSeineTableModel.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/GearUseFeaturesSeineTableModel.java index 0e98438..709d7ac 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/GearUseFeaturesSeineTableModel.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/GearUseFeaturesSeineTableModel.java @@ -26,12 +26,14 @@ import fr.ird.observe.services.dto.referential.GearDto; import fr.ird.observe.services.dto.referential.ReferentialReferenceDto; import fr.ird.observe.services.dto.seine.GearUseFeaturesMeasurementSeineDto; import fr.ird.observe.services.dto.seine.GearUseFeaturesSeineDto; -import fr.ird.observe.services.dto.seine.TripSeineDto; +import fr.ird.observe.services.dto.seine.GearUseFeaturesSeineDtos; +import fr.ird.observe.services.dto.seine.TripSeineGearUseDto; import fr.ird.observe.ui.content.table.ContentTableMeta; import fr.ird.observe.ui.content.table.ContentTableModel; import fr.ird.observe.ui.content.table.ObserveContentTableUI; import org.apache.commons.collections4.CollectionUtils; +import java.util.Collection; import java.util.List; /** @@ -40,13 +42,13 @@ import java.util.List; * @author Tony Chemit - chemit@codelutin.com * @since 3.16 */ -public class GearUseFeaturesSeineTableModel extends ContentTableModel<TripSeineDto, GearUseFeaturesSeineDto> { +public class GearUseFeaturesSeineTableModel extends ContentTableModel<TripSeineGearUseDto, GearUseFeaturesSeineDto> { private static final long serialVersionUID = 1L; private GearUseFeaturesSeineUIHandler gearUseFeaturesSeineUIHandler; - public GearUseFeaturesSeineTableModel(ObserveContentTableUI<TripSeineDto, GearUseFeaturesSeineDto> context, + public GearUseFeaturesSeineTableModel(ObserveContentTableUI<TripSeineGearUseDto, GearUseFeaturesSeineDto> context, List<ContentTableMeta<GearUseFeaturesSeineDto>> contentTableMetas) { super(context, contentTableMetas); } @@ -120,6 +122,12 @@ public class GearUseFeaturesSeineTableModel extends ContentTableModel<TripSeineD } @Override + protected void setChilds(TripSeineGearUseDto parent, List<GearUseFeaturesSeineDto> childs) { + parent.getGearUseFeaturesSeine().clear(); + parent.addAllGearUseFeaturesSeine(childs); + } + + @Override public void resetEditBean() { int row = getSelectedRow(); @@ -134,6 +142,16 @@ public class GearUseFeaturesSeineTableModel extends ContentTableModel<TripSeineD } @Override + protected Collection<GearUseFeaturesSeineDto> getChilds(TripSeineGearUseDto bean) { + return bean.getGearUseFeaturesSeine(); + } + + @Override + protected void load(GearUseFeaturesSeineDto source, GearUseFeaturesSeineDto target) { + GearUseFeaturesSeineDtos.copyGearUseFeaturesSeineDto(source, target); + } + + @Override protected void resetRow(int row) { super.resetRow(row); diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/GearUseFeaturesSeineUI.jaxx b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/GearUseFeaturesSeineUI.jaxx index fb601e9..f382295 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/GearUseFeaturesSeineUI.jaxx +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/GearUseFeaturesSeineUI.jaxx @@ -21,7 +21,7 @@ --> <fr.ird.observe.ui.content.table.ContentTableUI - superGenericType='TripSeineDto, GearUseFeaturesSeineDto' + superGenericType='TripSeineGearUseDto, GearUseFeaturesSeineDto' contentTitle='{n("observe.gearUseFeaturesSeine.title")}' saveNewEntryText='{n("observe.action.create.gearUseFeaturesSeine")}' saveNewEntryTip='{n("observe.action.create.gearUseFeaturesSeine.tip")}'> @@ -31,7 +31,7 @@ <import> fr.ird.observe.services.dto.ReferenceDto fr.ird.observe.services.dto.CommentableDto - fr.ird.observe.services.dto.seine.TripSeineDto + fr.ird.observe.services.dto.seine.TripSeineGearUseDto fr.ird.observe.services.dto.seine.GearUseFeaturesSeineDto fr.ird.observe.services.dto.seine.GearUseFeaturesMeasurementSeineDto fr.ird.observe.services.dto.referential.GearDto @@ -57,7 +57,7 @@ initializer="getModel().getMeasurementsTableModel()"/> <!-- edit bean --> - <TripSeineDto id='bean'/> + <TripSeineGearUseDto id='bean'/> <!-- table edit bean --> <GearUseFeaturesSeineDto id='tableEditBean'/> @@ -67,7 +67,7 @@ <!-- le validateur de l'écran --> <BeanValidator id='validator' - beanClass='fr.ird.observe.services.dto.seine.TripSeineDto' + beanClass='fr.ird.observe.services.dto.seine.TripSeineGearUseDto' errorTableModel='{getErrorTableModel()}' context='n1-update-gearUseFeatures'/> diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/GearUseFeaturesSeineUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/GearUseFeaturesSeineUIHandler.java index 78ba65a..8116048 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/GearUseFeaturesSeineUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/GearUseFeaturesSeineUIHandler.java @@ -22,20 +22,29 @@ package fr.ird.observe.ui.content.table.impl.seine; * #L% */ +import com.google.common.base.Function; +import com.google.common.collect.Iterables; +import com.google.common.collect.Lists; import fr.ird.observe.ObserveSwingApplicationContext; import fr.ird.observe.business.db.DataContext; import fr.ird.observe.business.db.constants.DataContextType; import fr.ird.observe.services.dto.FormDto; +import fr.ird.observe.services.dto.ReferenceDto; +import fr.ird.observe.services.dto.ReferenceSetDto; import fr.ird.observe.services.dto.referential.GearCaracteristicDto; import fr.ird.observe.services.dto.referential.GearDto; +import fr.ird.observe.services.dto.referential.ReferentialReferenceDto; +import fr.ird.observe.services.dto.result.SaveResultDto; import fr.ird.observe.services.dto.seine.GearUseFeaturesMeasurementSeineDto; import fr.ird.observe.services.dto.seine.GearUseFeaturesSeineDto; -import fr.ird.observe.services.dto.seine.TripSeineDto; -import fr.ird.observe.services.dto.seine.TripSeineDtos; -import fr.ird.observe.services.service.seine.TripSeineService; +import fr.ird.observe.services.dto.seine.TripSeineGearUseDto; +import fr.ird.observe.services.dto.seine.TripSeineGearUseDtos; +import fr.ird.observe.services.service.ReferentialService; +import fr.ird.observe.services.service.seine.TripSeineGearUseService; import fr.ird.observe.ui.ObserveMainUI; import fr.ird.observe.ui.UIHelper; import fr.ird.observe.ui.content.ContentMode; +import fr.ird.observe.ui.content.ContentUIInitializer; import fr.ird.observe.ui.content.table.ContentTableUIHandler; import fr.ird.observe.ui.util.table.AutotSelectRowAndShowPopupActionSupport; import fr.ird.observe.ui.util.table.EditableTableModelSupport; @@ -47,14 +56,21 @@ import org.apache.commons.logging.LogFactory; import org.nuiton.decorator.Decorator; import org.nuiton.validator.NuitonValidatorScope; -import javax.swing.*; +import javax.swing.JComponent; +import javax.swing.JOptionPane; +import javax.swing.JPopupMenu; +import javax.swing.JScrollPane; +import javax.swing.JTable; +import javax.swing.ListSelectionModel; import javax.swing.event.TableModelEvent; import javax.swing.event.TableModelListener; import javax.swing.table.DefaultTableCellRenderer; -import java.awt.*; +import java.awt.GridBagConstraints; +import java.awt.Insets; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import java.io.Serializable; +import java.util.ArrayList; import java.util.Collections; import java.util.HashSet; import java.util.List; @@ -69,7 +85,7 @@ import static org.nuiton.i18n.I18n.t; * @author Tony Chemit - chemit@codelutin.com * @since 3.16 */ -public class GearUseFeaturesSeineUIHandler extends ContentTableUIHandler<TripSeineDto, GearUseFeaturesSeineDto> { +public class GearUseFeaturesSeineUIHandler extends ContentTableUIHandler<TripSeineGearUseDto, GearUseFeaturesSeineDto> { /** Logger */ static private Log log = LogFactory.getLog(GearUseFeaturesSeineUIHandler.class); @@ -145,19 +161,7 @@ public class GearUseFeaturesSeineUIHandler extends ContentTableUIHandler<TripSei } } else { - - // updating mode: loading from db - //FIXME -// try { -// -// measurements = getDataService().getGearUseFeaturesMeasurementSeine(getDataSource(), bean, measurementsTableModel.getLoader()); -// if (log.isInfoEnabled()) { -// log.info("Loaded measurements (" + bean.getTopiaId() + "): " + measurements.size()); -// } -// -// } catch (DataSourceException e) { -// throw new ObserveTechnicalException("Could not load measurements", e); -// } + measurements = Lists.newArrayList(bean.getGearUseFeaturesMeasurement()); } // init measurements @@ -214,7 +218,7 @@ public class GearUseFeaturesSeineUIHandler extends ContentTableUIHandler<TripSei n("observe.gearUseFeaturesSeine.table.comment"), n("observe.gearUseFeaturesSeine.table.comment.tip")); - UIHelper.setTableColumnRenderer(table, 0, UIHelper.newDecorateTableCellRenderer(renderer, GearDto.class)); + UIHelper.setTableColumnRenderer(table, 0, UIHelper.newDecorateTableCellRenderer(renderer, ReferenceDto.class, GearDto.class.getSimpleName())); UIHelper.setTableColumnRenderer(table, 1, UIHelper.newEmptyNumberTableCellRenderer(renderer)); UIHelper.setTableColumnRenderer(table, 2, UIHelper.newBooleanTableCellRenderer(renderer)); UIHelper.setTableColumnRenderer(table, 3, UIHelper.newStringTableCellRenderer(renderer, 10, true)); @@ -230,21 +234,20 @@ public class GearUseFeaturesSeineUIHandler extends ContentTableUIHandler<TripSei n("observe.gearUseFeaturesSeine.table.value"), n("observe.gearUseFeaturesSeine.table.value.tip")); - UIHelper.setTableColumnRenderer(table, 0, UIHelper.newDecorateTableCellRenderer(renderer, GearCaracteristicDto.class)); + UIHelper.setTableColumnRenderer(table, 0, UIHelper.newDecorateTableCellRenderer(renderer, ReferenceDto.class, GearCaracteristicDto.class.getSimpleName())); UIHelper.setTableColumnRenderer(table, 1, new GearUseFeatureMeasurementCellRenderer(0, renderer)); table.getTableHeader().setReorderingAllowed(false); - Decorator<GearCaracteristicDto> decorator = ObserveSwingApplicationContext.get().getDecorator(GearCaracteristicDto.class); + Decorator<ReferenceDto> decorator = ObserveSwingApplicationContext.get().getDecorator(ReferenceDto.class, GearCaracteristicDto.class.getSimpleName()); + + ReferentialService referentialService = ObserveSwingApplicationContext.get().newService(ReferentialService.class); + + ReferenceSetDto<GearCaracteristicDto> gearCaracteristicDtoRefSet = referentialService.getReferentialReferenceSet(GearCaracteristicDto.class); + + ArrayList<ReferenceDto> gearCaracteristics = Lists.newArrayList(gearCaracteristicDtoRefSet.getReference()); - //FIXME -// List<GearCaracteristicDto> list; -// try { -// list = getDataService().getList(getDataSource(), GearCaracteristic.class); -// } catch (DataSourceException e) { -// throw new ObserveTechnicalException("Could not get gear caracteristics", e); -// } -// UIHelper.setTableColumnEditor(table, 0, ContentUIInitializer.newDataColumnEditor(list, decorator)); + UIHelper.setTableColumnEditor(table, 0, ContentUIInitializer.newDataColumnEditor(gearCaracteristics, decorator)); UIHelper.setTableColumnEditor(table, 1, new GearUseFeatureMeasurementCellEditor(0)); GearUseFeaturesMeasurementSeinesTableModel tableModel = getModel().getMeasurementsTableModel(); @@ -293,19 +296,6 @@ public class GearUseFeaturesSeineUIHandler extends ContentTableUIHandler<TripSei } - //FIXME -// @Override -// protected TripSeine loadEditBean(ContentMode mode, DataContext dataContext, DataService dataService, DataSource dataSource) { -// -// TripSeine tripSeine = super.loadEditBean(mode, dataContext, dataService, dataSource); -// -// // reset measurements -// getModel().getMeasurementsTableModel().clear(); -// -// return tripSeine; -// -// } - @Override public void openUI() throws Exception { @@ -382,65 +372,6 @@ public class GearUseFeaturesSeineUIHandler extends ContentTableUIHandler<TripSei } - //FIXME -// @Override -// protected TripSeine onCreate(TopiaContext tx, Object parentBean, TripSeine editBean) throws TopiaException { -// return super.onCreate(tx, parentBean, editBean); -// } - - //FIXME -// @Override -// protected void onUpdateFinalize(TopiaContext tx, TripSeine bean, Collection<GearUseFeaturesSeine> oldChilds) throws TopiaException { -// -// List<GearUseFeaturesSeine> gearUseFeatures = bean.getGearUseFeaturesSeine(); -// -// GearUseFeaturesSeineUIModel model = getModel(); -// { -// -// // save measurments -// -// GearUseFeaturesMeasurementSeineDAO measureDao = ObserveDAOHelper.getGearUseFeaturesMeasurementSeineDAO(tx); -// -// GearUseFeaturesMeasurementSeinesTableModel measurementsTableModel = model.getMeasurementsTableModel(); -// Set<Integer> rowsChanged = measurementsTableModel.getCacheRowsChanged(); -// -// TopiaEntityBinder<GearUseFeaturesMeasurementSeine> loader = measurementsTableModel.getLoader(); -// for (Integer row : rowsChanged) { -// -// GearUseFeaturesSeine gearUseFeaturesSeine = gearUseFeatures.get(row); -// -// List<GearUseFeaturesMeasurementSeine> measurements = measurementsTableModel.getCacheForRow(row); -// List<GearUseFeaturesMeasurementSeine> measurementsToSave = new ArrayList<GearUseFeaturesMeasurementSeine>(measurements.size()); -// -// for (GearUseFeaturesMeasurementSeine measure : measurements) { -// -// if (measurementsTableModel.isRowNotEmpty(measure)) { -// -// GearUseFeaturesMeasurementSeine measureToSave; -// -// if (measure.getTopiaId() == null) { -// measureToSave = measureDao.create(measure); -// loader.load(measureToSave, measure, true); -// } else { -// measureToSave = gearUseFeaturesSeine.getGearUseFeaturesMeasurementByTopiaId(measure.getTopiaId()); -// loader.load(measure, measureToSave, true); -// } -// -// measurementsToSave.add(measureToSave); -// -// } -// -// } -// -// gearUseFeaturesSeine.clearGearUseFeaturesMeasurement(); -// gearUseFeaturesSeine.addAllGearUseFeaturesMeasurement(measurementsToSave); -// -// } -// -// } -// -// } - @Override protected void resetEditBean() { @@ -458,7 +389,7 @@ public class GearUseFeaturesSeineUIHandler extends ContentTableUIHandler<TripSei String selectedTripId = dataContext.getSelectedTripId(); - if (selectedTripId.equals(dataContext.getOpenTripId())) { + if (getOpenDataManager().isOpenTripSeine(selectedTripId)) { // mode mise a jour return ContentMode.UPDATE; @@ -528,34 +459,37 @@ public class GearUseFeaturesSeineUIHandler extends ContentTableUIHandler<TripSei public List<GearUseFeaturesMeasurementSeineDto> getDefaultGearUseFeaturesMeasurementSeine(String gearId) { - //FIXME -// try { -// List<GearUseFeaturesMeasurementSeineDto> measurements = getDataService().getDefaultGearUseFeaturesMeasurementSeine(getDataSource(), gearId); -// if (log.isInfoEnabled()) { -// log.info("Create mode, use default measurements: " + measurements.size()); -// } -// return measurements; -// } catch (DataSourceException e) { -// throw new ObserveTechnicalException("Could not create default measurements", e); -// } - return null; + GearDto gearDto = getDataSource().getObserveDto(GearDto.class, gearId); + List<GearUseFeaturesMeasurementSeineDto> measurements = Lists.newArrayList( + Iterables.transform(gearDto.getGearCaracteristic(), + new Function<ReferentialReferenceDto<GearCaracteristicDto>, GearUseFeaturesMeasurementSeineDto>() { + @Override + public GearUseFeaturesMeasurementSeineDto apply(ReferentialReferenceDto<GearCaracteristicDto> input) { + GearUseFeaturesMeasurementSeineDto measurementSeineDto = new GearUseFeaturesMeasurementSeineDto(); + measurementSeineDto.setGearCaracteristic(input); + return measurementSeineDto; + } + })); + + return measurements; } @Override - protected void doPersist(TripSeineDto bean) { - getTripSeineService().save(bean); + protected void doPersist(TripSeineGearUseDto bean) { + SaveResultDto saveResult = getTripSeineGearUseService().save(bean); + bean.setLastUpdate(saveResult.getLastUpdate()); } @Override protected void loadEditBean(String beanId) { - FormDto<TripSeineDto> formDto = getTripSeineService().loadToEdit(beanId); + FormDto<TripSeineGearUseDto> formDto = getTripSeineGearUseService().loadToEdit(beanId); getModel().setFormDto(formDto); - TripSeineDtos.copyTripSeineDto(formDto.getForm(), getBean()); + TripSeineGearUseDtos.copyTripSeineGearUseDto(formDto.getForm(), getBean()); } - protected TripSeineService getTripSeineService() { - return ObserveSwingApplicationContext.get().newService(TripSeineService.class); + protected TripSeineGearUseService getTripSeineGearUseService() { + return ObserveSwingApplicationContext.get().newService(TripSeineGearUseService.class); } static class SectionTemplatesAutotSelectRowAndShowPopupAction extends AutotSelectRowAndShowPopupActionSupport { diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/GearUseFeaturesSeineUIModel.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/GearUseFeaturesSeineUIModel.java index 58156ab..f252bde 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/GearUseFeaturesSeineUIModel.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/GearUseFeaturesSeineUIModel.java @@ -25,12 +25,11 @@ package fr.ird.observe.ui.content.table.impl.seine; import com.google.common.collect.ImmutableSet; import com.google.common.collect.Lists; import fr.ird.observe.services.dto.seine.GearUseFeaturesSeineDto; -import fr.ird.observe.services.dto.seine.TripSeineDto; +import fr.ird.observe.services.dto.seine.TripSeineGearUseDto; import fr.ird.observe.ui.content.table.ContentTableMeta; import fr.ird.observe.ui.content.table.ContentTableModel; import fr.ird.observe.ui.content.table.ContentTableUIModel; import fr.ird.observe.ui.content.table.ObserveContentTableUI; -import org.nuiton.util.beans.BinderModelBuilder; import java.util.List; import java.util.Set; @@ -41,7 +40,7 @@ import java.util.Set; * @author Tony Chemit - chemit@codelutin.com * @since 3.16 */ -public class GearUseFeaturesSeineUIModel extends ContentTableUIModel<TripSeineDto, GearUseFeaturesSeineDto> { +public class GearUseFeaturesSeineUIModel extends ContentTableUIModel<TripSeineGearUseDto, GearUseFeaturesSeineDto> { private static final long serialVersionUID = 1L; @@ -59,37 +58,22 @@ public class GearUseFeaturesSeineUIModel extends ContentTableUIModel<TripSeineDt public GearUseFeaturesSeineUIModel(GearUseFeaturesSeineUI ui) { - super(TripSeineDto.class, - GearUseFeaturesSeineDto.class, - new String[]{ - //FIXME -// TripSeineDto.PROPERTY_GEAR_USE_FEATURES_SEINE - }, - new String[]{ - GearUseFeaturesSeineDto.PROPERTY_COMMENT, - GearUseFeaturesSeineDto.PROPERTY_GEAR, + super(TripSeineGearUseDto.class, + GearUseFeaturesSeineDto.class, + new String[]{ + TripSeineGearUseDto.PROPERTY_ID, + TripSeineGearUseDto.PROPERTY_GEAR_USE_FEATURES_SEINE, + TripSeineGearUseDto.PROPERTY_LAST_UPDATE, + }, + new String[]{ + GearUseFeaturesSeineDto.PROPERTY_ID, GearUseFeaturesSeineDto.PROPERTY_NUMBER, - GearUseFeaturesSeineDto.PROPERTY_USED_IN_TRIP}); - - //FIXME -// BinderService binderService = ObserveServiceHelper.get().getBinderService(); - - String binderName = getClass().getName() + "-open"; - - //FIXME -// TopiaEntityBinder<GearUseFeaturesMeasurementSeine> binder = binderService.getTopiaBinder(GearUseFeaturesMeasurementSeine.class, binderName); -// -// if (binder == null) { -// -// BinderModelBuilder<GearUseFeaturesMeasurementSeine, GearUseFeaturesMeasurementSeine> builder = -// binderService.newBinderBuilder(GearUseFeaturesMeasurementSeine.class, -// GearUseFeaturesMeasurementSeine.PROPERTY_GEAR_CARACTERISTIC, -// GearUseFeaturesMeasurementSeine.PROPERTY_MEASUREMENT_VALUE); -// -// binder = binderService.registerTopiaBinder(GearUseFeaturesMeasurementSeine.class, builder, binderName); -// -// } -// + GearUseFeaturesSeineDto.PROPERTY_USED_IN_TRIP, + GearUseFeaturesSeineDto.PROPERTY_GEAR_USE_FEATURES_MEASUREMENT, + GearUseFeaturesSeineDto.PROPERTY_COMMENT + } + ); + this.measurementsTableModel = new GearUseFeaturesMeasurementSeinesTableModel(); List<ContentTableMeta<GearUseFeaturesSeineDto>> metas = Lists.newArrayList( @@ -103,7 +87,9 @@ public class GearUseFeaturesSeineUIModel extends ContentTableUIModel<TripSeineDt } @Override - protected GearUseFeaturesSeineTableModel createTableModel(ObserveContentTableUI<TripSeineDto, GearUseFeaturesSeineDto> ui, List<ContentTableMeta<GearUseFeaturesSeineDto>> contentTableMetas) { + protected GearUseFeaturesSeineTableModel createTableModel( + ObserveContentTableUI<TripSeineGearUseDto, GearUseFeaturesSeineDto> ui, + List<ContentTableMeta<GearUseFeaturesSeineDto>> contentTableMetas) { return new GearUseFeaturesSeineTableModel(ui, contentTableMetas); } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/NonTargetCatchUIModel.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/NonTargetCatchUIModel.java index 46f8c4b..494c67c 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/NonTargetCatchUIModel.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/NonTargetCatchUIModel.java @@ -28,6 +28,7 @@ import fr.ird.observe.services.dto.seine.SetSeineDto; import fr.ird.observe.ui.content.table.ContentTableMeta; import fr.ird.observe.ui.content.table.ContentTableModel; import fr.ird.observe.ui.content.table.ContentTableUIModel; +import fr.ird.observe.ui.content.table.ObserveContentTableUI; import java.util.List; @@ -78,4 +79,10 @@ public class NonTargetCatchUIModel extends ContentTableUIModel<SetSeineDto, NonT initModel(ui, metas); } + + @Override + protected ContentTableModel<SetSeineDto, NonTargetCatchDto> createTableModel(ObserveContentTableUI<SetSeineDto, NonTargetCatchDto> ui, List<ContentTableMeta<NonTargetCatchDto>> contentTableMetas) { + // FIXME + return null; + } } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/NonTargetSampleUIModel.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/NonTargetSampleUIModel.java index 66c8710..77585e2 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/NonTargetSampleUIModel.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/NonTargetSampleUIModel.java @@ -28,6 +28,7 @@ import fr.ird.observe.services.dto.seine.NonTargetSampleDto; import fr.ird.observe.ui.content.table.ContentTableMeta; import fr.ird.observe.ui.content.table.ContentTableModel; import fr.ird.observe.ui.content.table.ContentTableUIModel; +import fr.ird.observe.ui.content.table.ObserveContentTableUI; import java.util.List; @@ -79,4 +80,9 @@ public class NonTargetSampleUIModel extends ContentTableUIModel<NonTargetSampleD } + @Override + protected ContentTableModel<NonTargetSampleDto, NonTargetLengthDto> createTableModel(ObserveContentTableUI<NonTargetSampleDto, NonTargetLengthDto> ui, List<ContentTableMeta<NonTargetLengthDto>> contentTableMetas) { + // FIXME + return null; + } } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/ObjectObservedSpeciesUIModel.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/ObjectObservedSpeciesUIModel.java index faac82b..49e803d 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/ObjectObservedSpeciesUIModel.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/ObjectObservedSpeciesUIModel.java @@ -28,6 +28,7 @@ import fr.ird.observe.services.dto.seine.ObjectObservedSpeciesDto; import fr.ird.observe.ui.content.table.ContentTableMeta; import fr.ird.observe.ui.content.table.ContentTableModel; import fr.ird.observe.ui.content.table.ContentTableUIModel; +import fr.ird.observe.ui.content.table.ObserveContentTableUI; import java.util.List; @@ -63,4 +64,9 @@ public class ObjectObservedSpeciesUIModel extends ContentTableUIModel<FloatingOb } + @Override + protected ContentTableModel<FloatingObjectDto, ObjectObservedSpeciesDto> createTableModel(ObserveContentTableUI<FloatingObjectDto, ObjectObservedSpeciesDto> ui, List<ContentTableMeta<ObjectObservedSpeciesDto>> contentTableMetas) { + // FIXME + return null; + } } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/ObjectSchoolEstimateUIModel.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/ObjectSchoolEstimateUIModel.java index eab1105..31c2519 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/ObjectSchoolEstimateUIModel.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/ObjectSchoolEstimateUIModel.java @@ -28,6 +28,7 @@ import fr.ird.observe.services.dto.seine.ObjectSchoolEstimateDto; import fr.ird.observe.ui.content.table.ContentTableMeta; import fr.ird.observe.ui.content.table.ContentTableModel; import fr.ird.observe.ui.content.table.ContentTableUIModel; +import fr.ird.observe.ui.content.table.ObserveContentTableUI; import java.util.List; @@ -60,4 +61,9 @@ public class ObjectSchoolEstimateUIModel extends ContentTableUIModel<FloatingObj } + @Override + protected ContentTableModel<FloatingObjectDto, ObjectSchoolEstimateDto> createTableModel(ObserveContentTableUI<FloatingObjectDto, ObjectSchoolEstimateDto> ui, List<ContentTableMeta<ObjectSchoolEstimateDto>> contentTableMetas) { + // FIXME + return null; + } } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/SchoolEstimateUIModel.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/SchoolEstimateUIModel.java index 5471c35..600eee5 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/SchoolEstimateUIModel.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/SchoolEstimateUIModel.java @@ -28,6 +28,7 @@ import fr.ird.observe.services.dto.seine.SetSeineDto; import fr.ird.observe.ui.content.table.ContentTableMeta; import fr.ird.observe.ui.content.table.ContentTableModel; import fr.ird.observe.ui.content.table.ContentTableUIModel; +import fr.ird.observe.ui.content.table.ObserveContentTableUI; import java.util.List; @@ -64,4 +65,10 @@ public class SchoolEstimateUIModel extends ContentTableUIModel<SetSeineDto, Scho initModel(ui, metas); } + + @Override + protected ContentTableModel<SetSeineDto, SchoolEstimateDto> createTableModel(ObserveContentTableUI<SetSeineDto, SchoolEstimateDto> ui, List<ContentTableMeta<SchoolEstimateDto>> contentTableMetas) { + // FIXME + return null; + } } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/TargetCatchUIModel.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/TargetCatchUIModel.java index 0aa6217..a67d877 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/TargetCatchUIModel.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/TargetCatchUIModel.java @@ -29,6 +29,7 @@ import fr.ird.observe.services.dto.seine.TargetCatchDto; import fr.ird.observe.ui.content.table.ContentTableMeta; import fr.ird.observe.ui.content.table.ContentTableModel; import fr.ird.observe.ui.content.table.ContentTableUIModel; +import fr.ird.observe.ui.content.table.ObserveContentTableUI; import java.util.List; @@ -71,4 +72,9 @@ public class TargetCatchUIModel extends ContentTableUIModel<SetSeineDto, TargetC } + @Override + protected ContentTableModel<SetSeineDto, TargetCatchDto> createTableModel(ObserveContentTableUI<SetSeineDto, TargetCatchDto> ui, List<ContentTableMeta<TargetCatchDto>> contentTableMetas) { + // FIXME + return null; + } } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/TargetDiscardCatchUIModel.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/TargetDiscardCatchUIModel.java index 2b53997..f64b986 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/TargetDiscardCatchUIModel.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/TargetDiscardCatchUIModel.java @@ -29,6 +29,7 @@ import fr.ird.observe.services.dto.seine.TargetCatchDto; import fr.ird.observe.ui.content.table.ContentTableMeta; import fr.ird.observe.ui.content.table.ContentTableModel; import fr.ird.observe.ui.content.table.ContentTableUIModel; +import fr.ird.observe.ui.content.table.ObserveContentTableUI; import java.util.List; @@ -72,4 +73,9 @@ public class TargetDiscardCatchUIModel extends ContentTableUIModel<SetSeineDto, } + @Override + protected ContentTableModel<SetSeineDto, TargetCatchDto> createTableModel(ObserveContentTableUI<SetSeineDto, TargetCatchDto> ui, List<ContentTableMeta<TargetCatchDto>> contentTableMetas) { + // FIXME + return null; + } } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/TargetSampleUIModel.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/TargetSampleUIModel.java index 4c05619..58aa066 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/TargetSampleUIModel.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/TargetSampleUIModel.java @@ -28,6 +28,7 @@ import fr.ird.observe.services.dto.seine.TargetSampleDto; import fr.ird.observe.ui.content.table.ContentTableMeta; import fr.ird.observe.ui.content.table.ContentTableModel; import fr.ird.observe.ui.content.table.ContentTableUIModel; +import fr.ird.observe.ui.content.table.ObserveContentTableUI; import java.util.List; @@ -69,4 +70,10 @@ public class TargetSampleUIModel extends ContentTableUIModel<TargetSampleDto, Ta initModel(ui, metas); } + + @Override + protected ContentTableModel<TargetSampleDto, TargetLengthDto> createTableModel(ObserveContentTableUI<TargetSampleDto, TargetLengthDto> ui, List<ContentTableMeta<TargetLengthDto>> contentTableMetas) { + // FIXME + return null; + } } diff --git a/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/seine/GearUseFeaturesSeineServiceController.java b/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/seine/GearUseFeaturesSeineServiceController.java deleted file mode 100644 index edbc68a..0000000 --- a/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/seine/GearUseFeaturesSeineServiceController.java +++ /dev/null @@ -1,70 +0,0 @@ -package fr.ird.observe.application.web.controller.v1.seine; - -/* - * #%L - * ObServe :: Application Web - * %% - * Copyright (C) 2008 - 2015 IRD, Codelutin, Tony Chemit - * %% - * 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.application.web.controller.v1.ObserveAuthenticatedServiceControllerSupport; -import fr.ird.observe.services.dto.FormDto; -import fr.ird.observe.services.dto.seine.GearUseFeaturesSeineDto; -import fr.ird.observe.services.service.seine.GearUseFeaturesSeineService; - -import java.util.List; - -/** - * @author Sylvain Bavencoff - bavencoff@codelutin.com - */ -public class GearUseFeaturesSeineServiceController extends ObserveAuthenticatedServiceControllerSupport<GearUseFeaturesSeineService> implements GearUseFeaturesSeineService { - - public GearUseFeaturesSeineServiceController() { - super(GearUseFeaturesSeineService.class); - } - - @Override - public List<GearUseFeaturesSeineDto> getGearUseFeaturesSeineByTripSeine(String tripSeineId) { - return service.getGearUseFeaturesSeineByTripSeine(tripSeineId); - } - - @Override - public FormDto<GearUseFeaturesSeineDto> loadToRead(String gearUseFeaturesSeineId) { - return service.loadToRead(gearUseFeaturesSeineId); - } - - @Override - public FormDto<GearUseFeaturesSeineDto> loadToEdit(String gearUseFeaturesSeineId) { - return service.loadToEdit(gearUseFeaturesSeineId); - } - - @Override - public FormDto<GearUseFeaturesSeineDto> preCreate() { - return service.preCreate(); - } - - @Override - public String save(String tripSeineId, FormDto<GearUseFeaturesSeineDto> form) { - return service.save(tripSeineId, form); - } - - @Override - public void delete(String tripSeineId, String gearUseFeaturesSeineId) { - service.delete(tripSeineId, gearUseFeaturesSeineId); - } -} diff --git a/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/seine/TripSeineGearUseServiceController.java b/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/seine/TripSeineGearUseServiceController.java new file mode 100644 index 0000000..ec4871a --- /dev/null +++ b/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/seine/TripSeineGearUseServiceController.java @@ -0,0 +1,54 @@ +package fr.ird.observe.application.web.controller.v1.seine; + +/* + * #%L + * ObServe :: Application Web + * %% + * Copyright (C) 2008 - 2015 IRD, Codelutin, Tony Chemit + * %% + * 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.application.web.controller.v1.ObserveAuthenticatedServiceControllerSupport; +import fr.ird.observe.services.dto.FormDto; +import fr.ird.observe.services.dto.result.SaveResultDto; +import fr.ird.observe.services.dto.seine.TripSeineGearUseDto; +import fr.ird.observe.services.service.seine.TripSeineGearUseService; + +/** + * @author Sylvain Bavencoff - bavencoff@codelutin.com + */ +public class TripSeineGearUseServiceController extends ObserveAuthenticatedServiceControllerSupport<TripSeineGearUseService> implements TripSeineGearUseService { + + public TripSeineGearUseServiceController() { + super(TripSeineGearUseService.class); + } + + @Override + public FormDto<TripSeineGearUseDto> loadToRead(String tripSeineId) { + return service.loadToRead(tripSeineId); + } + + @Override + public FormDto<TripSeineGearUseDto> loadToEdit(String tripSeineId) { + return service.loadToEdit(tripSeineId); + } + + @Override + public SaveResultDto save(TripSeineGearUseDto dto) { + return service.save(dto); + } +} diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/GearUseFeaturesSeineService.java b/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/TripSeineGearUseService.java similarity index 62% rename from observe-services-api/src/main/java/fr/ird/observe/services/service/seine/GearUseFeaturesSeineService.java rename to observe-services-api/src/main/java/fr/ird/observe/services/service/seine/TripSeineGearUseService.java index 2de2d83..b3c6044 100644 --- a/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/GearUseFeaturesSeineService.java +++ b/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/TripSeineGearUseService.java @@ -24,41 +24,27 @@ package fr.ird.observe.services.service.seine; import fr.ird.observe.services.ObserveService; import fr.ird.observe.services.dto.FormDto; -import fr.ird.observe.services.dto.seine.GearUseFeaturesSeineDto; -import fr.ird.observe.services.spi.DeleteRequest; +import fr.ird.observe.services.dto.result.SaveResultDto; +import fr.ird.observe.services.dto.seine.TripSeineGearUseDto; import fr.ird.observe.services.spi.PostRequest; import fr.ird.observe.services.spi.ReadDataPermission; import fr.ird.observe.services.spi.Write; import fr.ird.observe.services.spi.WriteDataPermission; -import java.util.List; - /** * @author Sylvain Bavencoff - bavencoff@codelutin.com */ -public interface GearUseFeaturesSeineService extends ObserveService { - - @ReadDataPermission - List<GearUseFeaturesSeineDto> getGearUseFeaturesSeineByTripSeine(String tripSeineId); +public interface TripSeineGearUseService extends ObserveService { @ReadDataPermission - FormDto<GearUseFeaturesSeineDto> loadToRead(String gearUseFeaturesSeineId); - - @WriteDataPermission - FormDto<GearUseFeaturesSeineDto> loadToEdit(String gearUseFeaturesSeineId); + FormDto<TripSeineGearUseDto> loadToRead(String TripSeineId); @WriteDataPermission - FormDto<GearUseFeaturesSeineDto> preCreate(); + FormDto<TripSeineGearUseDto> loadToEdit(String TripSeineId); @Write @WriteDataPermission @PostRequest - String save(String tripSeineId, FormDto<GearUseFeaturesSeineDto> form); - - @Write - @WriteDataPermission - @DeleteRequest - void delete(String tripSeineId, String gearUseFeaturesSeineId); - + SaveResultDto save(TripSeineGearUseDto dto); } diff --git a/observe-services-model/src/main/java/fr/ird/observe/services/dto/referential/GearCaracteristicTypeDtos.java b/observe-services-model/src/main/java/fr/ird/observe/services/dto/referential/GearCaracteristicTypeDtos.java new file mode 100644 index 0000000..6f1edb2 --- /dev/null +++ b/observe-services-model/src/main/java/fr/ird/observe/services/dto/referential/GearCaracteristicTypeDtos.java @@ -0,0 +1,71 @@ +package fr.ird.observe.services.dto.referential; + +import com.google.common.collect.Sets; + +import java.util.Set; + +public class GearCaracteristicTypeDtos extends AbstractGearCaracteristicTypeDtos { + + public static final Set<String> INTEGER_IDS = Sets.newHashSet( + "fr.ird.observe.entities.referentiel.GearCaracteristicType#1239832686123#0.3", + "fr.ird.observe.entities.referentiel.GearCaracteristicType#1239832686123#0.5" + ); + + public static final Set<String> FLOAT_IDS = Sets.newHashSet( + "fr.ird.observe.entities.referentiel.GearCaracteristicType#1239832686123#0.4", + "fr.ird.observe.entities.referentiel.GearCaracteristicType#1239832686123#0.6" + ); + + public static final Set<String> BOOLEAN_IDS = Sets.newHashSet( + "fr.ird.observe.entities.referentiel.GearCaracteristicType#1239832686123#0.2" + ); + + + public static boolean isBoolean(GearCaracteristicTypeDto type) { + return isBoolean(type.getId()); + } + + public static boolean isBoolean(String gearCaracteristicTypeId) { + return BOOLEAN_IDS.contains(gearCaracteristicTypeId); + } + + public static boolean isInteger(GearCaracteristicTypeDto type) { + return isInteger(type.getId()); + } + + public static boolean isInteger(String gearCaracteristicTypeId) { + return INTEGER_IDS.contains(gearCaracteristicTypeId); + } + + public static boolean isFloat(GearCaracteristicTypeDto type) { + return isFloat(type.getId()); + } + + public static boolean isFloat(String gearCaracteristicTypeId) { + return FLOAT_IDS.contains(gearCaracteristicTypeId); + } + + + public static Object getTypeValue(String gearCaracteristicTypeId, Object value) { + + if (value != null) { + + if (isBoolean(gearCaracteristicTypeId)) { + + value = Boolean.valueOf((String) value); + + } else if (isInteger(gearCaracteristicTypeId)) { + + value = Float.valueOf((String) value).intValue(); + + } else if (isFloat(gearCaracteristicTypeId)) { + + value = Float.valueOf((String) value); + + } + } + + return value; + + } +} diff --git a/observe-services-model/src/main/xmi/observe-services-dto-seine.properties b/observe-services-model/src/main/xmi/observe-services-dto-seine.properties index c1e641c..df49918 100644 --- a/observe-services-model/src/main/xmi/observe-services-dto-seine.properties +++ b/observe-services-model/src/main/xmi/observe-services-dto-seine.properties @@ -84,4 +84,5 @@ fr.ird.observe.services.dto.seine.NonTargetSample.attribute.nonTargetLength.ster fr.ird.observe.services.dto.seine.GearUseFeaturesSeine.attribute.gearUseFeaturesMeasurement.stereotype=unique fr.ird.observe.services.dto.seine.ActivitySeineObservedSystem.attribute.observedSystem.stereotype=unique fr.ird.observe.services.dto.seine.TripSeine.attribute.route.stereotype=unique,ordered +fr.ird.observe.services.dto.seine.TripSeineGearUse.attribute.gearUseFeaturesSeine.stereotype=unique,ordered fr.ird.observe.services.dto.seine.Route.attribute.activitySeine.stereotype=unique,ordered diff --git a/observe-services-model/src/main/xmi/observe-services-dto-seine.zargo b/observe-services-model/src/main/xmi/observe-services-dto-seine.zargo index 146b059..2c4ddf2 100644 Binary files a/observe-services-model/src/main/xmi/observe-services-dto-seine.zargo and b/observe-services-model/src/main/xmi/observe-services-dto-seine.zargo differ diff --git a/observe-services-rest/src/test/java/fr/ird/observe/services/service/seine/GearUseFeaturesSeineServiceRestTest.java b/observe-services-rest/src/test/java/fr/ird/observe/services/service/seine/TripSeineGearUseServiceRestTest.java similarity index 65% rename from observe-services-rest/src/test/java/fr/ird/observe/services/service/seine/GearUseFeaturesSeineServiceRestTest.java rename to observe-services-rest/src/test/java/fr/ird/observe/services/service/seine/TripSeineGearUseServiceRestTest.java index 75a9f6d..db15c9a 100644 --- a/observe-services-rest/src/test/java/fr/ird/observe/services/service/seine/GearUseFeaturesSeineServiceRestTest.java +++ b/observe-services-rest/src/test/java/fr/ird/observe/services/service/seine/TripSeineGearUseServiceRestTest.java @@ -23,6 +23,7 @@ package fr.ird.observe.services.service.seine; */ import com.google.common.collect.Collections2; +import com.google.common.collect.Iterables; import fr.ird.observe.services.dto.FormDto; import fr.ird.observe.services.dto.IdDtos; import fr.ird.observe.services.dto.ReferenceSetDto; @@ -31,92 +32,42 @@ import fr.ird.observe.services.dto.referential.GearCaracteristicDto; import fr.ird.observe.services.dto.referential.GearDto; import fr.ird.observe.services.dto.seine.GearUseFeaturesMeasurementSeineDto; import fr.ird.observe.services.dto.seine.GearUseFeaturesSeineDto; +import fr.ird.observe.services.dto.seine.TripSeineGearUseDto; import fr.ird.observe.services.service.AbstractServiceRestTest; import org.junit.Assert; import org.junit.Ignore; import org.junit.Test; import java.util.Collection; -import java.util.List; /** * @author Sylvain Bavencoff - bavencoff@codelutin.com */ -public class GearUseFeaturesSeineServiceRestTest extends AbstractServiceRestTest { +public class TripSeineGearUseServiceRestTest extends AbstractServiceRestTest { public static final String GEAR_USE_FEATURES_SEINE_ID_1 = "fr.ird.observe.entities.seine.GearUseFeaturesSeine#1440486230661#0.42614931015885216"; public static final String GEAR_USE_FEATURES_SEINE_ID_2 = "fr.ird.observe.entities.seine.GearUseFeaturesSeine#1440486387658#0.5629816198069391"; - protected GearUseFeaturesSeineService service; + protected TripSeineGearUseService service; @Override public void setUp() throws Exception { super.setUp(); - service = newService(GearUseFeaturesSeineService.class); + service = newService(TripSeineGearUseService.class); } - - @Test - public void getGearUseFeaturesSeineByTripSeine() { - - List<GearUseFeaturesSeineDto> featuresSeineDtos = service.getGearUseFeaturesSeineByTripSeine(TRIP_SEINE_ID_1); - - Assert.assertEquals(2, featuresSeineDtos.size()); - - GearUseFeaturesSeineDto feature1 = featuresSeineDtos.get(1); - - Assert.assertEquals(GEAR_USE_FEATURES_SEINE_ID_1, feature1.getId()); - Assert.assertEquals("fr.ird.observe.entities.referentiel.Gear#1239832686125#0.25", feature1.getGear().getId()); - Assert.assertEquals("Radeau", feature1.getGear().getPropertyValue("label")); - Assert.assertEquals(new Integer(1), feature1.getNumber()); - Assert.assertEquals(Boolean.TRUE, feature1.getUsedInTrip()); - Assert.assertEquals(3, feature1.sizeGearUseFeaturesMeasurement()); - - GearUseFeaturesMeasurementSeineDto measurement1 = IdDtos.findById( - feature1.getGearUseFeaturesMeasurement(), - "fr.ird.observe.entities.seine.GearUseFeaturesMeasurementSeine#1440486230663#0.8598592739610341"); - Assert.assertEquals("fr.ird.observe.entities.referentiel.GearCaracteristic#1239832686124#0.20", measurement1.getGearCaracteristic().getId()); - Assert.assertEquals("3", measurement1.getMeasurementValue()); - - - GearUseFeaturesMeasurementSeineDto measurement2 = IdDtos.findById( - feature1.getGearUseFeaturesMeasurement(), - "fr.ird.observe.entities.seine.GearUseFeaturesMeasurementSeine#1440486230664#0.3389960469962563"); - Assert.assertEquals("fr.ird.observe.entities.referentiel.GearCaracteristic#1239832686124#0.21", measurement2.getGearCaracteristic().getId()); - Assert.assertEquals("true", measurement2.getMeasurementValue()); - - - GearUseFeaturesMeasurementSeineDto measurement3 = IdDtos.findById( - feature1.getGearUseFeaturesMeasurement(), - "fr.ird.observe.entities.seine.GearUseFeaturesMeasurementSeine#1440486230665#0.018683933154531762"); - Assert.assertEquals("fr.ird.observe.entities.referentiel.GearCaracteristic#1239832686124#0.22", measurement3.getGearCaracteristic().getId()); - Assert.assertEquals("false", measurement3.getMeasurementValue()); - - - GearUseFeaturesSeineDto feature2 = featuresSeineDtos.get(0); - - Assert.assertEquals(GEAR_USE_FEATURES_SEINE_ID_2, feature2.getId()); - Assert.assertEquals("fr.ird.observe.entities.referentiel.Gear#1239832686125#0.3", feature2.getGear().getId()); - Assert.assertEquals("Radar de route", feature2.getGear().getPropertyValue("label")); - Assert.assertEquals(Boolean.TRUE, feature2.getUsedInTrip()); - Assert.assertEquals(1, feature2.sizeGearUseFeaturesMeasurement()); - - GearUseFeaturesMeasurementSeineDto measurement4 = IdDtos.findById( - feature2.getGearUseFeaturesMeasurement(), - "fr.ird.observe.entities.seine.GearUseFeaturesMeasurementSeine#1440486387660#0.5120256423294711"); - Assert.assertEquals("fr.ird.observe.entities.referentiel.GearCaracteristic#1239832686124#0.1", measurement4.getGearCaracteristic().getId()); - Assert.assertEquals("50", measurement4.getMeasurementValue()); - - } - - @Test public void loadToReadTest() { - FormDto<GearUseFeaturesSeineDto> formDto = service.loadToRead(GEAR_USE_FEATURES_SEINE_ID_1); + FormDto<TripSeineGearUseDto> formDto = service.loadToRead(TRIP_SEINE_ID_1); Assert.assertNotNull(formDto); - GearUseFeaturesSeineDto feature1 = formDto.getForm(); + TripSeineGearUseDto tripSeineGearUseDto = formDto.getForm(); + + Assert.assertEquals(TRIP_SEINE_ID_1, tripSeineGearUseDto.getId()); + Assert.assertEquals(2, tripSeineGearUseDto.sizeGearUseFeaturesSeine()); + + GearUseFeaturesSeineDto feature1 = Iterables.find(tripSeineGearUseDto.getGearUseFeaturesSeine(), IdDtos.newIdPredicate(GEAR_USE_FEATURES_SEINE_ID_1)); Assert.assertEquals(GEAR_USE_FEATURES_SEINE_ID_1, feature1.getId()); Assert.assertEquals("fr.ird.observe.entities.referentiel.Gear#1239832686125#0.25", feature1.getGear().getId()); @@ -162,10 +113,15 @@ public class GearUseFeaturesSeineServiceRestTest extends AbstractServiceRestTest @Test public void loadToEditTest() { - FormDto<GearUseFeaturesSeineDto> formDto = service.loadToEdit(GEAR_USE_FEATURES_SEINE_ID_1); + FormDto<TripSeineGearUseDto> formDto = service.loadToRead(TRIP_SEINE_ID_1); Assert.assertNotNull(formDto); - GearUseFeaturesSeineDto feature1 = formDto.getForm(); + TripSeineGearUseDto tripSeineGearUseDto = formDto.getForm(); + + Assert.assertEquals(TRIP_SEINE_ID_1, tripSeineGearUseDto.getId()); + Assert.assertEquals(2, tripSeineGearUseDto.sizeGearUseFeaturesSeine()); + + GearUseFeaturesSeineDto feature1 = Iterables.find(tripSeineGearUseDto.getGearUseFeaturesSeine(), IdDtos.newIdPredicate(GEAR_USE_FEATURES_SEINE_ID_1)); Assert.assertEquals(GEAR_USE_FEATURES_SEINE_ID_1, feature1.getId()); Assert.assertEquals("fr.ird.observe.entities.referentiel.Gear#1239832686125#0.25", feature1.getGear().getId()); @@ -208,40 +164,14 @@ public class GearUseFeaturesSeineServiceRestTest extends AbstractServiceRestTest } } - @Test - public void preCreateTest() { - FormDto<GearUseFeaturesSeineDto> formDto = service.preCreate(); - - Assert.assertNotNull(formDto); - GearUseFeaturesSeineDto featuresSeineDto = formDto.getForm(); - - Assert.assertNull(featuresSeineDto.getId()); - Assert.assertNull(featuresSeineDto.getNumber()); - Assert.assertNull(featuresSeineDto.getUsedInTrip()); - Assert.assertNull(featuresSeineDto.getComment()); - Assert.assertEquals(0, featuresSeineDto.sizeGearUseFeaturesMeasurement()); - - Assert.assertNotNull(formDto.getLabels()); - - Collection<Class> types = Collections2.transform(formDto.getLabels(), ReferenceSetDtos.getTypeFunction()); - Assert.assertTrue(types.contains(GearDto.class)); - Assert.assertTrue(types.contains(GearCaracteristicDto.class)); - Assert.assertEquals(2, formDto.sizeLabels()); - - for (ReferenceSetDto referenceSetDto : formDto.getLabels()) { - - Assert.assertTrue(referenceSetDto.sizeReference() > 0); - - } - - } - @Ignore @Test public void saveUpdateTest() { - FormDto<GearUseFeaturesSeineDto> formDto = service.loadToEdit(GEAR_USE_FEATURES_SEINE_ID_1); + FormDto<TripSeineGearUseDto> formDto = service.loadToEdit(TRIP_SEINE_ID_1); + + TripSeineGearUseDto tripSeineGearUseDto = formDto.getForm(); - GearUseFeaturesSeineDto featuresSeineDto = formDto.getForm(); + GearUseFeaturesSeineDto featuresSeineDto = Iterables.find(tripSeineGearUseDto.getGearUseFeaturesSeine(), IdDtos.newIdPredicate(GEAR_USE_FEATURES_SEINE_ID_1)); featuresSeineDto.setNumber(12); featuresSeineDto.setComment("Un Commentaire"); @@ -255,11 +185,14 @@ public class GearUseFeaturesSeineServiceRestTest extends AbstractServiceRestTest } } - service.save(TRIP_SEINE_ID_1, formDto); + service.save(tripSeineGearUseDto); + + FormDto<TripSeineGearUseDto> formDtoAfterSave = service.loadToEdit(TRIP_SEINE_ID_1); + + tripSeineGearUseDto = formDtoAfterSave.getForm(); - FormDto<GearUseFeaturesSeineDto> formDtoAfterSave = service.loadToEdit(GEAR_USE_FEATURES_SEINE_ID_1); + GearUseFeaturesSeineDto feature1 = Iterables.find(tripSeineGearUseDto.getGearUseFeaturesSeine(), IdDtos.newIdPredicate(GEAR_USE_FEATURES_SEINE_ID_1)); - GearUseFeaturesSeineDto feature1 = formDtoAfterSave.getForm(); Assert.assertEquals(GEAR_USE_FEATURES_SEINE_ID_1, feature1.getId()); Assert.assertEquals("fr.ird.observe.entities.referentiel.Gear#1239832686125#0.25", feature1.getGear().getId()); diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/dto/ObserveDtosInitializer.java b/observe-services-topia/src/main/java/fr/ird/observe/services/dto/ObserveDtosInitializer.java index 3539f72..7758685 100644 --- a/observe-services-topia/src/main/java/fr/ird/observe/services/dto/ObserveDtosInitializer.java +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/dto/ObserveDtosInitializer.java @@ -232,6 +232,7 @@ import fr.ird.observe.services.dto.seine.TargetLengthDto; import fr.ird.observe.services.dto.seine.TargetSampleDto; import fr.ird.observe.services.dto.seine.TransmittingBuoyDto; import fr.ird.observe.services.dto.seine.TripSeineDto; +import fr.ird.observe.services.dto.seine.TripSeineGearUseDto; import org.nuiton.topia.persistence.TopiaEntity; import org.nuiton.util.beans.Binder; import org.nuiton.util.beans.BinderFactory; @@ -763,7 +764,8 @@ public class ObserveDtosInitializer implements ObserveModelInitializer { public void initGearCaracteristicDto() { registerDtoType(GearCaracteristicDto.class, GearCaracteristic.class); registerReferentialDtoBinder(GearCaracteristicDto.class, GearCaracteristic.class, GearCaracteristicDto.PROPERTY_GEAR_CARACTERISTIC_TYPE, GearCaracteristicDto.PROPERTY_UNIT); - registerReferentialReferenceDtoBinder(GearCaracteristicDto.class, GearCaracteristic.class); + registerReferentialReferenceDtoBinder(GearCaracteristicDto.class, GearCaracteristic.class, + GearCaracteristicDto.PROPERTY_GEAR_CARACTERISTIC_TYPE); } @Override @@ -1638,6 +1640,13 @@ public class ObserveDtosInitializer implements ObserveModelInitializer { } @Override + public void initTripSeineGearUseDto() { + registerDto(TripSeineGearUseDto.class, TripSeine.class, + TripSeineGearUseDto.PROPERTY_GEAR_USE_FEATURES_SEINE, + TripSeineGearUseDto.PROPERTY_LAST_UPDATE); + } + + @Override public void initTripSeineStubDto() { // la logique de copie est à ecrire directement dans le service } diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/service/seine/GearUseFeaturesSeineServiceTopia.java b/observe-services-topia/src/main/java/fr/ird/observe/services/service/seine/GearUseFeaturesSeineServiceTopia.java deleted file mode 100644 index f5430af..0000000 --- a/observe-services-topia/src/main/java/fr/ird/observe/services/service/seine/GearUseFeaturesSeineServiceTopia.java +++ /dev/null @@ -1,148 +0,0 @@ -package fr.ird.observe.services.service.seine; - -/* - * #%L - * ObServe :: Services ToPIA Implementation - * %% - * Copyright (C) 2008 - 2015 IRD, Codelutin, Tony Chemit - * %% - * 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 com.google.common.collect.Lists; -import fr.ird.observe.entities.seine.GearUseFeaturesSeine; -import fr.ird.observe.entities.seine.TripSeine; -import fr.ird.observe.services.ObserveServiceTopia; -import fr.ird.observe.services.dto.FormDto; -import fr.ird.observe.services.dto.ReferenceTypeName; -import fr.ird.observe.services.dto.referential.GearCaracteristicDto; -import fr.ird.observe.services.dto.referential.GearDto; -import fr.ird.observe.services.dto.seine.GearUseFeaturesMeasurementSeineDto; -import fr.ird.observe.services.dto.seine.GearUseFeaturesSeineDto; -import fr.ird.observe.services.dto.seine.TripSeineDto; -import fr.ird.observe.services.service.DataNotFoundException; - -import java.util.List; - -/** - * @author Sylvain Bavencoff - bavencoff@codelutin.com - */ -public class GearUseFeaturesSeineServiceTopia extends ObserveServiceTopia implements GearUseFeaturesSeineService { - - @Override - public List<GearUseFeaturesSeineDto> getGearUseFeaturesSeineByTripSeine(String tripSeineId) { - - TripSeine tripSeine = loadEntity(TripSeineDto.class, TripSeine.class, tripSeineId); - - List<GearUseFeaturesSeineDto> dtos = Lists.newLinkedList(); - - for (GearUseFeaturesSeine features : tripSeine.getGearUseFeaturesSeine()) { - - GearUseFeaturesSeineDto dto = entityToDto(GearUseFeaturesSeineDto.class, GearUseFeaturesSeine.class, features); - - dtos.add(dto); - } - - return dtos; - } - - @Override - public FormDto<GearUseFeaturesSeineDto> loadToRead(String gearUseFeaturesSeineId) { - - GearUseFeaturesSeine featuresSeine = loadEntity(GearUseFeaturesSeineDto.class, GearUseFeaturesSeine.class, gearUseFeaturesSeineId); - - FormDto<GearUseFeaturesSeineDto> form = entityToReadFormDto(GearUseFeaturesSeineDto.class, GearUseFeaturesSeine.class, featuresSeine); - - return form; - } - - @Override - public FormDto<GearUseFeaturesSeineDto> loadToEdit(String gearUseFeaturesSeineId) { - - GearUseFeaturesSeine featuresSeine = loadEntity(GearUseFeaturesSeineDto.class, GearUseFeaturesSeine.class, gearUseFeaturesSeineId); - - FormDto<GearUseFeaturesSeineDto> form = entityToEditFormDto( - GearUseFeaturesSeineDto.class, - GearUseFeaturesSeine.class, - featuresSeine, - new ReferenceTypeName(GearUseFeaturesSeineDto.class, GearDto.class, GearUseFeaturesSeineDto.PROPERTY_GEAR), - new ReferenceTypeName(GearUseFeaturesMeasurementSeineDto.class, GearCaracteristicDto.class, GearUseFeaturesMeasurementSeineDto.PROPERTY_GEAR_CARACTERISTIC)); - - return form; - } - - @Override - public FormDto<GearUseFeaturesSeineDto> preCreate() { - - GearUseFeaturesSeine featuresSeine = newEntity(GearUseFeaturesSeine.class); - - FormDto<GearUseFeaturesSeineDto> form = entityToEditFormDto( - GearUseFeaturesSeineDto.class, - GearUseFeaturesSeine.class, - featuresSeine, - new ReferenceTypeName(GearUseFeaturesSeineDto.class, GearDto.class, GearUseFeaturesSeineDto.PROPERTY_GEAR), - new ReferenceTypeName(GearUseFeaturesMeasurementSeineDto.class, GearCaracteristicDto.class, GearUseFeaturesMeasurementSeineDto.PROPERTY_GEAR_CARACTERISTIC)); - - return form; - } - - @Override - public String save(String tripSeineId, FormDto<GearUseFeaturesSeineDto> form) { - - TripSeine tripSeine = loadEntity(TripSeineDto.class, TripSeine.class, tripSeineId); - - GearUseFeaturesSeineDto featuresSeineDto = form.getForm(); - - GearUseFeaturesSeine featuresSeine = dtoToEntity(GearUseFeaturesSeineDto.class, GearUseFeaturesSeine.class, featuresSeineDto); - -// for (GearUseFeaturesMeasurementSeine measurementSeine : featuresSeine.getGearUseFeaturesMeasurement()) { -// -// saveEntity(GearUseFeaturesMeasurementSeine.class, measurementSeine); -// -// } - - featuresSeine = saveEntity(GearUseFeaturesSeine.class, featuresSeine); - - if (featuresSeineDto.isNotPersisted()) { - - tripSeine.addGearUseFeaturesSeine(featuresSeine); - - saveEntity(TripSeine.class, tripSeine); - - } - - return featuresSeine.getTopiaId(); - } - - @Override - public void delete(String tripSeineId, String gearUseFeaturesSeineId) { - - TripSeine tripSeine = loadEntity(TripSeineDto.class, TripSeine.class, tripSeineId); - - GearUseFeaturesSeine featuresSeine = loadEntity(GearUseFeaturesSeineDto.class, GearUseFeaturesSeine.class, gearUseFeaturesSeineId); - - if (! tripSeine.containsGearUseFeaturesSeine(featuresSeine)) { - throw new DataNotFoundException(GearUseFeaturesSeineDto.class, gearUseFeaturesSeineId); - } - - //TODO Bien vérifier que l'on a pas besoin de faire cette suppression physiquement, dans le modèle on a une composition - //TODO Donc les delete cascade dans hibernate devrait faire le job -// deleteEntity(GearUseFeaturesSeineDto.class, GearUseFeaturesSeine.class, Collections.singleton(gearUseFeaturesSeineId)); - - tripSeine.removeGearUseFeaturesSeine(featuresSeine); - - } -} diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/service/seine/TripSeineGearUseServiceTopia.java b/observe-services-topia/src/main/java/fr/ird/observe/services/service/seine/TripSeineGearUseServiceTopia.java new file mode 100644 index 0000000..e8b0e7f --- /dev/null +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/service/seine/TripSeineGearUseServiceTopia.java @@ -0,0 +1,80 @@ +package fr.ird.observe.services.service.seine; + +/* + * #%L + * ObServe :: Services ToPIA Implementation + * %% + * Copyright (C) 2008 - 2015 IRD, Codelutin, Tony Chemit + * %% + * 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.entities.seine.TripSeine; +import fr.ird.observe.entities.seine.TripSeineTopiaDao; +import fr.ird.observe.services.ObserveServiceTopia; +import fr.ird.observe.services.dto.FormDto; +import fr.ird.observe.services.dto.ReferenceTypeName; +import fr.ird.observe.services.dto.referential.GearCaracteristicDto; +import fr.ird.observe.services.dto.referential.GearDto; +import fr.ird.observe.services.dto.result.SaveResultDto; +import fr.ird.observe.services.dto.result.SaveResultDtos; +import fr.ird.observe.services.dto.seine.GearUseFeaturesMeasurementSeineDto; +import fr.ird.observe.services.dto.seine.GearUseFeaturesSeineDto; +import fr.ird.observe.services.dto.seine.TripSeineGearUseDto; + +/** + * @author Sylvain Bavencoff - bavencoff@codelutin.com + */ +public class TripSeineGearUseServiceTopia extends ObserveServiceTopia implements TripSeineGearUseService { + + @Override + public FormDto<TripSeineGearUseDto> loadToRead(String tripSeineId) { + + TripSeine tripSeine = loadEntity(TripSeineGearUseDto.class, TripSeine.class, tripSeineId); + + FormDto<TripSeineGearUseDto> form = entityToReadFormDto(TripSeineGearUseDto.class, TripSeine.class, tripSeine); + + return form; + } + + @Override + public FormDto<TripSeineGearUseDto> loadToEdit(String tripSeineId) { + + TripSeine tripSeine = loadEntity(TripSeineGearUseDto.class, TripSeine.class, tripSeineId); + + FormDto<TripSeineGearUseDto> form = entityToEditFormDto( + TripSeineGearUseDto.class, + TripSeine.class, + tripSeine, + new ReferenceTypeName(GearUseFeaturesSeineDto.class, GearDto.class, GearUseFeaturesSeineDto.PROPERTY_GEAR), + new ReferenceTypeName(GearUseFeaturesMeasurementSeineDto.class, GearCaracteristicDto.class, GearUseFeaturesMeasurementSeineDto.PROPERTY_GEAR_CARACTERISTIC)); + + return form; + } + + @Override + public SaveResultDto save(TripSeineGearUseDto dto) { + + TripSeine tripSeine = dtoToEntity(TripSeineGearUseDto.class, TripSeine.class, dto); + + tripSeine = saveEntity(TripSeine.class, tripSeine); + + TripSeineTopiaDao dao = getTopiaPersistenceContext().getTripSeineDao(); + dao.updateEndDate(tripSeine); + + return SaveResultDtos.newSaveResult(tripSeine.getTopiaId(), tripSeine.getLastUpdate()); + } +} diff --git a/observe-services-topia/src/test/java/fr/ird/observe/services/service/seine/GearUseFeaturesSeineServiceTopiaTest.java b/observe-services-topia/src/test/java/fr/ird/observe/services/service/seine/TripSeineGearUseServiceTopiaTest.java similarity index 54% rename from observe-services-topia/src/test/java/fr/ird/observe/services/service/seine/GearUseFeaturesSeineServiceTopiaTest.java rename to observe-services-topia/src/test/java/fr/ird/observe/services/service/seine/TripSeineGearUseServiceTopiaTest.java index 231697d..4fbbeae 100644 --- a/observe-services-topia/src/test/java/fr/ird/observe/services/service/seine/GearUseFeaturesSeineServiceTopiaTest.java +++ b/observe-services-topia/src/test/java/fr/ird/observe/services/service/seine/TripSeineGearUseServiceTopiaTest.java @@ -22,7 +22,6 @@ package fr.ird.observe.services.service.seine; * #L% */ -import com.google.common.base.Predicate; import com.google.common.collect.Collections2; import com.google.common.collect.ImmutableSet; import com.google.common.collect.Iterables; @@ -30,13 +29,14 @@ import fr.ird.observe.entities.seine.GearUseFeaturesMeasurementSeine; import fr.ird.observe.entities.seine.GearUseFeaturesSeine; import fr.ird.observe.entities.seine.TripSeine; import fr.ird.observe.services.dto.FormDto; +import fr.ird.observe.services.dto.IdDtos; import fr.ird.observe.services.dto.ReferenceSetDto; import fr.ird.observe.services.dto.ReferenceSetDtos; import fr.ird.observe.services.dto.referential.GearCaracteristicDto; import fr.ird.observe.services.dto.referential.GearDto; -import fr.ird.observe.services.dto.referential.ReferentialReferenceDto; import fr.ird.observe.services.dto.seine.GearUseFeaturesMeasurementSeineDto; import fr.ird.observe.services.dto.seine.GearUseFeaturesSeineDto; +import fr.ird.observe.services.dto.seine.TripSeineGearUseDto; import fr.ird.observe.services.service.AbstractServiceTopiaTest; import fr.ird.observe.services.service.ReferentialService; import org.junit.Assert; @@ -44,15 +44,14 @@ import org.junit.Test; import org.nuiton.topia.persistence.TopiaEntities; import java.util.Collection; -import java.util.List; import java.util.Set; /** * @author Sylvain Bavencoff - bavencoff@codelutin.com */ -public class GearUseFeaturesSeineServiceTopiaTest extends AbstractServiceTopiaTest { +public class TripSeineGearUseServiceTopiaTest extends AbstractServiceTopiaTest { - protected GearUseFeaturesSeineService service; + protected TripSeineGearUseService service; protected ReferentialService referentialService; @@ -76,55 +75,27 @@ public class GearUseFeaturesSeineServiceTopiaTest extends AbstractServiceTopiaTe super.setUp(); - service = newService(GearUseFeaturesSeineService.class); + service = newService(TripSeineGearUseService.class); referentialService = newService(ReferentialService.class); } @Test - public void getGearUseFeaturesSeineByTripSeine() { - - List<GearUseFeaturesSeineDto> featuresSeineDtos = service.getGearUseFeaturesSeineByTripSeine(TRIP_SEINE_ID_1); + public void loadToReadTest() { TripSeine tripSeine = dataSourceResource.findById(TripSeine.class, TRIP_SEINE_ID_1); - Assert.assertEquals(tripSeine.sizeGearUseFeaturesSeine(), featuresSeineDtos.size()); - - for (GearUseFeaturesSeineDto featuresSeineDto : featuresSeineDtos) { - GearUseFeaturesSeine features = Iterables.find( - tripSeine.getGearUseFeaturesSeine(), - TopiaEntities.entityHasId(featuresSeineDto.getId())); - - assertEntityEqualsReferenceDto(features.getGear(), featuresSeineDto.getGear()); - Assert.assertEquals(features.getNumber(), featuresSeineDto.getNumber()); - Assert.assertEquals(features.getUsedInTrip(), featuresSeineDto.getUsedInTrip()); - Assert.assertEquals(features.getComment(), featuresSeineDto.getComment()); - - Assert.assertEquals(features.sizeGearUseFeaturesMeasurement(), featuresSeineDto.sizeGearUseFeaturesMeasurement()); - - for (GearUseFeaturesMeasurementSeineDto measurementSeineDto : featuresSeineDto.getGearUseFeaturesMeasurement()) { - GearUseFeaturesMeasurementSeine measurementSeine = Iterables.find( - features.getGearUseFeaturesMeasurement(), - TopiaEntities.entityHasId(measurementSeineDto.getId())); - - assertEntityEqualsReferenceDto(measurementSeine.getGearCaracteristic(), measurementSeineDto.getGearCaracteristic()); - Assert.assertEquals(measurementSeine.getMeasurementValue(), measurementSeineDto.getMeasurementValue()); - } - - } - } - - - @Test - public void loadToReadTest() { + FormDto<TripSeineGearUseDto> formDto = service.loadToRead(TRIP_SEINE_ID_1); - GearUseFeaturesSeine featuresSeine = dataSourceResource.findById(GearUseFeaturesSeine.class, GEAR_USE_FEATURES_SEINE_ID); + Assert.assertNotNull(formDto); + TripSeineGearUseDto tripSeineGearUseDto = formDto.getForm(); - FormDto<GearUseFeaturesSeineDto> formDto = service.loadToRead(GEAR_USE_FEATURES_SEINE_ID); + Assert.assertEquals(tripSeine.getTopiaId(), tripSeineGearUseDto.getId()); + Assert.assertEquals(tripSeine.sizeGearUseFeaturesSeine(), tripSeineGearUseDto.sizeGearUseFeaturesSeine()); - Assert.assertNotNull(formDto); - GearUseFeaturesSeineDto featuresSeineDto = formDto.getForm(); + GearUseFeaturesSeine featuresSeine = tripSeine.getGearUseFeaturesSeineByTopiaId(GEAR_USE_FEATURES_SEINE_ID); + GearUseFeaturesSeineDto featuresSeineDto = Iterables.find(tripSeineGearUseDto.getGearUseFeaturesSeine(), IdDtos.newIdPredicate(GEAR_USE_FEATURES_SEINE_ID)); Assert.assertEquals(featuresSeine.getTopiaId(), featuresSeineDto.getId()); assertEntityEqualsReferenceDto(featuresSeine.getGear(), featuresSeineDto.getGear()); @@ -160,12 +131,18 @@ public class GearUseFeaturesSeineServiceTopiaTest extends AbstractServiceTopiaTe @Test public void loadToEditTest() { - GearUseFeaturesSeine featuresSeine = dataSourceResource.findById(GearUseFeaturesSeine.class, GEAR_USE_FEATURES_SEINE_ID); + TripSeine tripSeine = dataSourceResource.findById(TripSeine.class, TRIP_SEINE_ID_1); - FormDto<GearUseFeaturesSeineDto> formDto = service.loadToEdit(GEAR_USE_FEATURES_SEINE_ID); + FormDto<TripSeineGearUseDto> formDto = service.loadToEdit(TRIP_SEINE_ID_1); Assert.assertNotNull(formDto); - GearUseFeaturesSeineDto featuresSeineDto = formDto.getForm(); + TripSeineGearUseDto tripSeineGearUseDto = formDto.getForm(); + + Assert.assertEquals(tripSeine.getTopiaId(), tripSeineGearUseDto.getId()); + Assert.assertEquals(tripSeine.sizeGearUseFeaturesSeine(), tripSeineGearUseDto.sizeGearUseFeaturesSeine()); + + GearUseFeaturesSeine featuresSeine = tripSeine.getGearUseFeaturesSeineByTopiaId(GEAR_USE_FEATURES_SEINE_ID); + GearUseFeaturesSeineDto featuresSeineDto = Iterables.find(tripSeineGearUseDto.getGearUseFeaturesSeine(), IdDtos.newIdPredicate(GEAR_USE_FEATURES_SEINE_ID)); Assert.assertEquals(featuresSeine.getTopiaId(), featuresSeineDto.getId()); assertEntityEqualsReferenceDto(featuresSeine.getGear(), featuresSeineDto.getGear()); @@ -199,38 +176,12 @@ public class GearUseFeaturesSeineServiceTopiaTest extends AbstractServiceTopiaTe } @Test - public void preCreateTest() { - FormDto<GearUseFeaturesSeineDto> formDto = service.preCreate(); - - Assert.assertNotNull(formDto); - GearUseFeaturesSeineDto featuresSeineDto = formDto.getForm(); - - Assert.assertNull(featuresSeineDto.getId()); - Assert.assertNull(featuresSeineDto.getNumber()); - Assert.assertNull(featuresSeineDto.getUsedInTrip()); - Assert.assertNull(featuresSeineDto.getComment()); - Assert.assertEquals(0, featuresSeineDto.sizeGearUseFeaturesMeasurement()); - - Assert.assertNotNull(formDto.getLabels()); - - Collection<Class> types = Collections2.transform(formDto.getLabels(), ReferenceSetDtos.getTypeFunction()); - Assert.assertTrue(types.contains(GearDto.class)); - Assert.assertTrue(types.contains(GearCaracteristicDto.class)); - Assert.assertEquals(2, formDto.sizeLabels()); - - for (ReferenceSetDto referenceSetDto : formDto.getLabels()) { - - Assert.assertTrue(referenceSetDto.sizeReference() > 0); - - } - - } - - @Test public void saveUpdateTest() { - FormDto<GearUseFeaturesSeineDto> formDto = service.loadToEdit(GEAR_USE_FEATURES_SEINE_ID); + FormDto<TripSeineGearUseDto> formDto = service.loadToEdit(TRIP_SEINE_ID_1); + + TripSeineGearUseDto tripSeineGearUseDto = formDto.getForm(); - GearUseFeaturesSeineDto featuresSeineDto = formDto.getForm(); + GearUseFeaturesSeineDto featuresSeineDto = Iterables.find(tripSeineGearUseDto.getGearUseFeaturesSeine(), IdDtos.newIdPredicate(GEAR_USE_FEATURES_SEINE_ID)); featuresSeineDto.setNumber(12); featuresSeineDto.setComment("Un Commentaire"); @@ -244,7 +195,7 @@ public class GearUseFeaturesSeineServiceTopiaTest extends AbstractServiceTopiaTe } } - service.save(TRIP_SEINE_ID_1, formDto); + service.save(tripSeineGearUseDto); GearUseFeaturesSeine featuresSeine = dataSourceResource.findById(GearUseFeaturesSeine.class, GEAR_USE_FEATURES_SEINE_ID); @@ -267,69 +218,5 @@ public class GearUseFeaturesSeineServiceTopiaTest extends AbstractServiceTopiaTe } - @Test - public void saveCreateTest() { - FormDto<GearUseFeaturesSeineDto> formDto = service.preCreate(); - - GearUseFeaturesSeineDto featuresSeineDto = formDto.getForm(); - - ReferentialReferenceDto<GearDto> radarRefDto = formDto.getReferentialReferenceById(GearDto.class, "fr.ird.observe.entities.referentiel.Gear#1239832686125#0.4"); - - featuresSeineDto.setGear(radarRefDto); - featuresSeineDto.setNumber(1); - featuresSeineDto.setComment("Un autre Commentaire"); - - GearUseFeaturesMeasurementSeineDto measurementSeineDto1 = new GearUseFeaturesMeasurementSeineDto(); - - ReferentialReferenceDto<GearCaracteristicDto> rangeRefDto = formDto.getReferentialReferenceById(GearCaracteristicDto.class, "fr.ird.observe.entities.referentiel.GearCaracteristic#1239832686124#0.1"); - - measurementSeineDto1.setGearCaracteristic(rangeRefDto); - measurementSeineDto1.setMeasurementValue("50"); - - featuresSeineDto.addGearUseFeaturesMeasurement(measurementSeineDto1); - - String featuresSeineId = service.save(TRIP_SEINE_ID_1, formDto); - - GearUseFeaturesSeine featuresSeine = dataSourceResource.findById(GearUseFeaturesSeine.class, featuresSeineId); - - assertReferenceDtoEqualsEntity(featuresSeineDto.getGear(), featuresSeine.getGear()); - Assert.assertEquals(featuresSeineDto.getNumber(), featuresSeine.getNumber()); - Assert.assertEquals(featuresSeineDto.getUsedInTrip(), featuresSeine.getUsedInTrip()); - Assert.assertEquals(featuresSeineDto.getComment(), featuresSeine.getComment()); - - Assert.assertEquals(featuresSeineDto.sizeGearUseFeaturesMeasurement(), featuresSeine.sizeGearUseFeaturesMeasurement()); - - for (final GearUseFeaturesMeasurementSeineDto measurementSeineDto : featuresSeineDto.getGearUseFeaturesMeasurement()) { - GearUseFeaturesMeasurementSeine measurementSeine = Iterables.find( - featuresSeine.getGearUseFeaturesMeasurement(), - new Predicate<GearUseFeaturesMeasurementSeine>() { - - @Override - public boolean apply(GearUseFeaturesMeasurementSeine gearUseFeaturesMeasurementSeine) { - return measurementSeineDto.getGearCaracteristic().getId().equals(gearUseFeaturesMeasurementSeine.getGearCaracteristic().getTopiaId()); - } - }); - - assertReferenceDtoEqualsEntity(measurementSeineDto.getGearCaracteristic(), measurementSeine.getGearCaracteristic()); - Assert.assertEquals(measurementSeineDto.getMeasurementValue(), measurementSeine.getMeasurementValue()); - } - - } - - @Test - public void deleteTest() { - - Assert.assertTrue(dataSourceResource.exists(GearUseFeaturesSeine.class, GEAR_USE_FEATURES_SEINE_ID)); - - service.delete(TRIP_SEINE_ID_1, GEAR_USE_FEATURES_SEINE_ID); - - List<GearUseFeaturesSeineDto> featuresSeineDtos = service.getGearUseFeaturesSeineByTripSeine(TRIP_SEINE_ID_1); - - Assert.assertEquals(1, featuresSeineDtos.size()); - - Assert.assertFalse(dataSourceResource.exists(GearUseFeaturesSeine.class, GEAR_USE_FEATURES_SEINE_ID)); - - } - } -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.