branch feature/5954 updated (da2b256 -> c6cab78)
This is an automated email from the git hooks/post-receive script. New change to branch feature/5954 in repository tutti. See http://git.codelutin.com/tutti.git from da2b256 refs #6129 [IMPORT SUMATRA] Import des valeurs des PSFMs et des champs du trait new b24d4a8 refs #6129 new 3cce90a refs #5954 add v2 version new c6cab78 refs #6129 [IMPORT SUMATRA] Import des valeurs des PSFMs et des champs du trait The 3 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "adds" were already present in the repository and have only been added to this reference. Detailed log of new commits: commit c6cab787eebbaab9e342adab66d1b85cbfc52871 Author: Kevin Morin <morin@codelutin.com> Date: Thu Nov 27 16:37:05 2014 +0100 refs #6129 [IMPORT SUMATRA] Import des valeurs des PSFMs et des champs du trait commit 3cce90a607e12c98c77a80fc5306da31bd0f17e6 Author: Kevin Morin <morin@codelutin.com> Date: Mon Nov 24 14:31:13 2014 +0100 refs #5954 add v2 version commit b24d4a8e6f8100adba2ffd6bee10320c3eb94d6f Author: Kevin Morin <morin@codelutin.com> Date: Mon Nov 24 11:05:10 2014 +0100 refs #6129 Summary of changes: .../entities/protocol/CaracteristicType.java | 14 +- .../entities/protocol/TuttiProtocols.java | 4 +- .../TuttiProtocol1.java => v2/TuttiProtocol2.java} | 101 +++++------ .../TuttiProtocolBean2.java} | 196 ++++++++++++++------- .../i18n/tutti-persistence_en_GB.properties | 4 + .../fr/ifremer/tutti/service/DecoratorService.java | 11 ++ .../resources/i18n/tutti-service_en_GB.properties | 8 + .../resources/i18n/tutti-service_fr_FR.properties | 4 + .../tutti/ui/swing/action/SaveProtocolAction.java | 6 + .../content/protocol/CaracteristicMappingUI.css | 7 + .../content/protocol/CaracteristicMappingUI.jaxx | 40 +++++ .../protocol/CaracteristicMappingUIHandler.java | 176 ++++++++++++++++++ .../protocol/CaracteristicMappingUIModel.java | 62 +++++++ .../EditProtocolCaracteristicsRowModel.java | 96 ++++++++++ .../EditProtocolCaracteristicsTableModel.java | 45 +++++ .../ui/swing/content/protocol/EditProtocolUI.jaxx | 3 + .../content/protocol/EditProtocolUIHandler.java | 9 +- .../util/table/AbstractTuttiTableUIHandler.java | 1 + .../resources/i18n/tutti-ui-swing_en_GB.properties | 8 +- .../resources/i18n/tutti-ui-swing_fr_FR.properties | 7 + 20 files changed, 685 insertions(+), 117 deletions(-) copy tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/protocol/{v1/TuttiProtocol1.java => v2/TuttiProtocol2.java} (57%) copy tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/protocol/{v1/TuttiProtocolBean1.java => v2/TuttiProtocolBean2.java} (58%) create mode 100644 tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/CaracteristicMappingUI.css create mode 100644 tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/CaracteristicMappingUI.jaxx create mode 100644 tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/CaracteristicMappingUIHandler.java create mode 100644 tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/CaracteristicMappingUIModel.java create mode 100644 tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolCaracteristicsRowModel.java create mode 100644 tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolCaracteristicsTableModel.java -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch feature/5954 in repository tutti. See http://git.codelutin.com/tutti.git commit b24d4a8e6f8100adba2ffd6bee10320c3eb94d6f Author: Kevin Morin <morin@codelutin.com> Date: Mon Nov 24 11:05:10 2014 +0100 refs #6129 --- .../entities/protocol/CaracteristicType.java | 33 ++++++++-- .../i18n/tutti-persistence_en_GB.properties | 4 ++ .../EditProtocolCaracteristicsRowModel.java | 71 ++++++++++++++++++++++ .../EditProtocolCaracteristicsTableModel.java | 39 ++++++++++++ .../ui/swing/content/protocol/EditProtocolUI.jaxx | 5 ++ .../content/protocol/EditProtocolUIHandler.java | 46 ++++++++++++++ .../resources/i18n/tutti-ui-swing_en_GB.properties | 7 +++ .../resources/i18n/tutti-ui-swing_fr_FR.properties | 7 +++ 8 files changed, 207 insertions(+), 5 deletions(-) diff --git a/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/protocol/CaracteristicType.java b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/protocol/CaracteristicType.java index 358a184..b0d2b01 100644 --- a/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/protocol/CaracteristicType.java +++ b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/protocol/CaracteristicType.java @@ -22,16 +22,39 @@ package fr.ifremer.tutti.persistence.entities.protocol; * #L% */ +import fr.ifremer.tutti.LabelAware; + +import static org.nuiton.i18n.I18n.n; +import static org.nuiton.i18n.I18n.t; + /** * To define which caracteristic can be imported. * * @author tchemit <chemit@codelutin.com> * @since 1.0 */ -public enum CaracteristicType { +public enum CaracteristicType implements LabelAware { + + LENGTH_STEP(n("tutti.caracteristicType.lengthStep")), + VESSEL_USE_FEATURE(n("tutti.caracteristicType.vesselUseFeature")), + GEAR_USE_FEATURE(n("tutti.caracteristicType.gearUseFeature")), + INDIVIDUAL_OBSERVATION(n("tutti.caracteristicType.individualObservation")); + + private String labelKey; + + private CaracteristicType(String labelKey) { + this.labelKey = labelKey; + } + + @Override + public String getLabel() { + return t(labelKey); + } - LENGTH_STEP, - VESSEL_USE_FEATURE, - GEAR_USE_FEATURE, - INDIVIDUAL_OBSERVATION + public static CaracteristicType[] getTabTypes() { + return new CaracteristicType[] { + VESSEL_USE_FEATURE, + GEAR_USE_FEATURE + }; + } } diff --git a/tutti-persistence/src/main/resources/i18n/tutti-persistence_en_GB.properties b/tutti-persistence/src/main/resources/i18n/tutti-persistence_en_GB.properties index c074775..c2f80a2 100644 --- a/tutti-persistence/src/main/resources/i18n/tutti-persistence_en_GB.properties +++ b/tutti-persistence/src/main/resources/i18n/tutti-persistence_en_GB.properties @@ -28,6 +28,10 @@ application.common.unit.g=Gram application.common.unit.kg=Kilogram application.common.unit.short.g=g application.common.unit.short.kg=kg +tutti.caracteristicType.gearUseFeature= +tutti.caracteristicType.individualObservation= +tutti.caracteristicType.lengthStep= +tutti.caracteristicType.vesselUseFeature= tutti.config= tutti.config.option.basedir.description= tutti.config.option.cruiseId.description= diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolCaracteristicsRowModel.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolCaracteristicsRowModel.java new file mode 100644 index 0000000..149cfaf --- /dev/null +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolCaracteristicsRowModel.java @@ -0,0 +1,71 @@ +package fr.ifremer.tutti.ui.swing.content.protocol; + +import fr.ifremer.tutti.persistence.entities.protocol.CaracteristicMappingRow; +import fr.ifremer.tutti.persistence.entities.protocol.CaracteristicMappingRowBean; +import fr.ifremer.tutti.persistence.entities.protocol.CaracteristicType; +import fr.ifremer.tutti.persistence.entities.referential.Caracteristic; +import fr.ifremer.tutti.ui.swing.util.AbstractTuttiBeanUIModel; +import org.nuiton.util.beans.Binder; +import org.nuiton.util.beans.BinderFactory; + +/** + * @author Kevin Morin (Code Lutin) + * @since 3.10 + */ +public class EditProtocolCaracteristicsRowModel extends AbstractTuttiBeanUIModel<CaracteristicMappingRow, EditProtocolCaracteristicsRowModel> { + + public static final String PROPERTY_PSFM = "psfm"; + public static final String PROPERTY_TYPE = "type"; + public static final String PROPERTY_IMPORT_FILE_COLUMN = "importFileColumn"; + + protected Caracteristic psfm; + protected CaracteristicType type; + protected String importFileColumn; + + protected static final Binder<CaracteristicMappingRow, EditProtocolCaracteristicsRowModel> fromBeanBinder = + BinderFactory.newBinder(CaracteristicMappingRow.class, + EditProtocolCaracteristicsRowModel.class); + + protected static final Binder<EditProtocolCaracteristicsRowModel, CaracteristicMappingRow> toBeanBinder = + BinderFactory.newBinder(EditProtocolCaracteristicsRowModel.class, + CaracteristicMappingRow.class); + + public EditProtocolCaracteristicsRowModel() { + super(fromBeanBinder, toBeanBinder); + } + + public Caracteristic getPsfm() { + return psfm; + } + + public void setPsfm(Caracteristic psfm) { + Object oldValue = getPsfm(); + this.psfm = psfm; + firePropertyChanged(PROPERTY_PSFM, oldValue, psfm); + } + + public CaracteristicType getType() { + return type; + } + + public void setType(CaracteristicType type) { + Object oldValue = getType(); + this.type = type; + firePropertyChanged(PROPERTY_TYPE, oldValue, type); + } + + public String getImportFileColumn() { + return importFileColumn; + } + + public void setImportFileColumn(String importFileColumn) { + Object oldValue = getImportFileColumn(); + this.importFileColumn = importFileColumn; + firePropertyChanged(PROPERTY_IMPORT_FILE_COLUMN, oldValue, importFileColumn); + } + + @Override + protected CaracteristicMappingRow newEntity() { + return new CaracteristicMappingRowBean(); + } +} diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolCaracteristicsTableModel.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolCaracteristicsTableModel.java new file mode 100644 index 0000000..140872a --- /dev/null +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolCaracteristicsTableModel.java @@ -0,0 +1,39 @@ +package fr.ifremer.tutti.ui.swing.content.protocol; + +import org.jdesktop.swingx.table.TableColumnModelExt; +import org.nuiton.jaxx.application.swing.table.AbstractApplicationTableModel; +import org.nuiton.jaxx.application.swing.table.ColumnIdentifier; + +import static org.nuiton.i18n.I18n.n; + +/** + * @author Kevin Morin (Code Lutin) + * @since x.x + */ +public class EditProtocolCaracteristicsTableModel extends AbstractApplicationTableModel<EditProtocolCaracteristicsRowModel> { + + public static final ColumnIdentifier<EditProtocolCaracteristicsRowModel> PSFM_ID = ColumnIdentifier.newId( + EditProtocolCaracteristicsRowModel.PROPERTY_PSFM, + n("tutti.editProtocol.table.header.caracteristics.psfmId"), + n("tutti.editProtocol.table.header.caracteristics.psfmId.tip")); + + public static final ColumnIdentifier<EditProtocolCaracteristicsRowModel> TYPE = ColumnIdentifier.newId( + EditProtocolCaracteristicsRowModel.PROPERTY_TYPE, + n("tutti.editProtocol.table.header.caracteristics.type"), + n("tutti.editProtocol.table.header.caracteristics.type.tip")); + + public static final ColumnIdentifier<EditProtocolCaracteristicsRowModel> IMPORT_FILE_COLUMN = ColumnIdentifier.newId( + EditProtocolCaracteristicsRowModel.PROPERTY_IMPORT_FILE_COLUMN, + n("tutti.editProtocol.table.header.caracteristics.importFileColumn"), + n("tutti.editProtocol.table.header.caracteristics.importFileColumn.tip")); + + public EditProtocolCaracteristicsTableModel(TableColumnModelExt columnModel) { + super(columnModel, true, true); + setNoneEditableCols(); + } + + @Override + public EditProtocolCaracteristicsRowModel createNewRow() { + return new EditProtocolCaracteristicsRowModel(); + } +} diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUI.jaxx b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUI.jaxx index 0ca8922..d6ccd4f 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUI.jaxx +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUI.jaxx @@ -117,6 +117,11 @@ <BeanDoubleList id='individualObservationList' genericType='Caracteristic'/> </tab> + <tab title='tutti.editProtocol.tab.caracteristic.mapping'> + <JScrollPane> + <JXTable id='caracteristicsTable'/> + </JScrollPane> + </tab> </JTabbedPane> </JPanel> </tab> diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIHandler.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIHandler.java index 6471cda..cbf5edb 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIHandler.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIHandler.java @@ -27,9 +27,11 @@ import com.google.common.base.Predicate; import com.google.common.collect.Lists; import com.google.common.collect.Multimap; import com.google.common.collect.Sets; +import fr.ifremer.adagio.core.dao.referential.pmfm.Pmfm; import fr.ifremer.tutti.persistence.entities.TuttiEntities; import fr.ifremer.tutti.persistence.entities.data.SampleCategoryModel; import fr.ifremer.tutti.persistence.entities.data.SampleCategoryModelEntry; +import fr.ifremer.tutti.persistence.entities.protocol.CaracteristicType; import fr.ifremer.tutti.persistence.entities.protocol.SpeciesProtocol; import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol; import fr.ifremer.tutti.persistence.entities.referential.Caracteristic; @@ -76,6 +78,7 @@ import javax.swing.table.TableColumnModel; import java.awt.Dimension; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; +import java.util.ArrayList; import java.util.Collection; import java.util.List; import java.util.Map; @@ -422,6 +425,49 @@ public class EditProtocolUIHandler extends AbstractTuttiUIHandler<EditProtocolUI Lists.newArrayList(model.getCaracteristics()), model.getIndividualObservationPmfmId()); + // table of caracteristic mapping + + { + JXTable caracteristicsMappingTable = ui.getCaracteristicsTable(); + + DefaultTableColumnModelExt columnModel = new DefaultTableColumnModelExt(); + +// getModel().addPropertyChangeListener(EditProtocolUIModel.PROPERTY_LENGTH_CLASSES_PMFM_ID, new PropertyChangeListener() { +// @Override +// public void propertyChange(PropertyChangeEvent evt) { +// List<String> ids = (List<String>) evt.getNewValue(); +// selectLengthClasses(ids, comboBox); +// } +// }); + + Decorator<Caracteristic> decorator = getDecorator(Caracteristic.class, null); + addComboDataColumnToModel(columnModel, + EditProtocolCaracteristicsTableModel.PSFM_ID, + decorator, + new ArrayList<Caracteristic>(getModel().getAllCaracteristic().values())); + + addComboDataColumnToModel(columnModel, + EditProtocolCaracteristicsTableModel.TYPE, + getDecorator(CaracteristicType.class, null), + Lists.newArrayList(CaracteristicType.getTabTypes())); + + addColumnToModel(columnModel, + EditProtocolCaracteristicsTableModel.IMPORT_FILE_COLUMN); + + EditProtocolCaracteristicsTableModel tableModel = new EditProtocolCaracteristicsTableModel(columnModel); + caracteristicsMappingTable.setModel(tableModel); + caracteristicsMappingTable.setColumnModel(columnModel); + + JTableHeader tableHeader = caracteristicsMappingTable.getTableHeader(); + + // by default do not authorize to change column orders + tableHeader.setReorderingAllowed(false); + + addHighlighters(caracteristicsMappingTable); + + tableModel.setRows(new ArrayList<EditProtocolCaracteristicsRowModel>()); + } + // if new protocol can already cancel his creation model.setModify(model.isCreate() || model.isCleaned()); diff --git a/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties b/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties index f8de42f..d8bdee7 100644 --- a/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties +++ b/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties @@ -951,11 +951,18 @@ tutti.editProtocol.tab.caracteristic= tutti.editProtocol.tab.caracteristic.gearUseFeature= tutti.editProtocol.tab.caracteristic.individualObservation= tutti.editProtocol.tab.caracteristic.lengthClasses= +tutti.editProtocol.tab.caracteristic.mapping= tutti.editProtocol.tab.caracteristic.vesselUseFeature= tutti.editProtocol.tab.info= tutti.editProtocol.tab.species= tutti.editProtocol.table.header.calcifySample= tutti.editProtocol.table.header.calcifySample.tip= +tutti.editProtocol.table.header.caracteristics.importFileColumn= +tutti.editProtocol.table.header.caracteristics.importFileColumn.tip= +tutti.editProtocol.table.header.caracteristics.psfmId= +tutti.editProtocol.table.header.caracteristics.psfmId.tip= +tutti.editProtocol.table.header.caracteristics.type= +tutti.editProtocol.table.header.caracteristics.type.tip= tutti.editProtocol.table.header.countIfNoFrequency= tutti.editProtocol.table.header.countIfNoFrequency.tip= tutti.editProtocol.table.header.lengthStep= diff --git a/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties b/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties index b9c2f76..d8cbc07 100644 --- a/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties +++ b/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties @@ -930,11 +930,18 @@ tutti.editProtocol.tab.caracteristic=Caractéristiques tutti.editProtocol.tab.caracteristic.gearUseFeature=Mise en œuvre de l'engin tutti.editProtocol.tab.caracteristic.individualObservation=Observations individuelles tutti.editProtocol.tab.caracteristic.lengthClasses=Classes de taille +tutti.editProtocol.tab.caracteristic.mapping=Caractéristiques du trait tutti.editProtocol.tab.caracteristic.vesselUseFeature=Autres caractéristiques tutti.editProtocol.tab.info=Informations générales tutti.editProtocol.tab.species=Espèces tutti.editProtocol.table.header.calcifySample=Prélèvement de pièces calcifiées tutti.editProtocol.table.header.calcifySample.tip=Prélèvement de pièces calcifiées (pour les données individuelles) +tutti.editProtocol.table.header.caracteristics.importFileColumn=Colonne du fichier d'import +tutti.editProtocol.table.header.caracteristics.importFileColumn.tip=Colonne du fichier d'import +tutti.editProtocol.table.header.caracteristics.psfmId=Caractéristique +tutti.editProtocol.table.header.caracteristics.psfmId.tip=Caractéristique +tutti.editProtocol.table.header.caracteristics.type=Onglet +tutti.editProtocol.table.header.caracteristics.type.tip=Onglet tutti.editProtocol.table.header.countIfNoFrequency=Dénombrement tutti.editProtocol.table.header.countIfNoFrequency.tip=L'espèce doit elle être dénombrée ? tutti.editProtocol.table.header.lengthStep=Mode de mensuration -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch feature/5954 in repository tutti. See http://git.codelutin.com/tutti.git commit 3cce90a607e12c98c77a80fc5306da31bd0f17e6 Author: Kevin Morin <morin@codelutin.com> Date: Mon Nov 24 14:31:13 2014 +0100 refs #5954 add v2 version --- .../entities/protocol/v2/TuttiProtocol2.java | 176 ++++++++ .../entities/protocol/v2/TuttiProtocolBean2.java | 444 +++++++++++++++++++++ 2 files changed, 620 insertions(+) diff --git a/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/protocol/v2/TuttiProtocol2.java b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/protocol/v2/TuttiProtocol2.java new file mode 100644 index 0000000..a67f592 --- /dev/null +++ b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/protocol/v2/TuttiProtocol2.java @@ -0,0 +1,176 @@ +package fr.ifremer.tutti.persistence.entities.protocol.v2; + +import fr.ifremer.tutti.persistence.entities.CommentAware; +import fr.ifremer.tutti.persistence.entities.TuttiEntity; +import fr.ifremer.tutti.persistence.entities.protocol.SpeciesProtocol; + +import javax.annotation.Generated; +import java.util.Collection; +import java.util.List; + +@Generated(value = "org.nuiton.eugene.java.SimpleJavaBeanTransformer", date = "Mon Nov 24 12:54:48 CET 2014") +public interface TuttiProtocol2 extends CommentAware, TuttiEntity { + + String PROPERTY_NAME = "name"; + + String PROPERTY_COMMENT = "comment"; + + String PROPERTY_GEAR_USE_FEATURE_PMFM_ID = "gearUseFeaturePmfmId"; + + String PROPERTY_VESSEL_USE_FEATURE_PMFM_ID = "vesselUseFeaturePmfmId"; + + String PROPERTY_LENGTH_CLASSES_PMFM_ID = "lengthClassesPmfmId"; + + String PROPERTY_INDIVIDUAL_OBSERVATION_PMFM_ID = "individualObservationPmfmId"; + + String PROPERTY_VERSION = "version"; + + String PROPERTY_SPECIES = "species"; + + String PROPERTY_BENTHOS = "benthos"; + + String getName(); + + void setName(String name); + + String getComment(); + + void setComment(String comment); + + String getGearUseFeaturePmfmId(int index); + + boolean isGearUseFeaturePmfmIdEmpty(); + + int sizeGearUseFeaturePmfmId(); + + void addGearUseFeaturePmfmId(String gearUseFeaturePmfmId); + + void addAllGearUseFeaturePmfmId(Collection<String> gearUseFeaturePmfmId); + + boolean removeGearUseFeaturePmfmId(String gearUseFeaturePmfmId); + + boolean removeAllGearUseFeaturePmfmId(Collection<String> gearUseFeaturePmfmId); + + boolean containsGearUseFeaturePmfmId(String gearUseFeaturePmfmId); + + boolean containsAllGearUseFeaturePmfmId(Collection<String> gearUseFeaturePmfmId); + + List<String> getGearUseFeaturePmfmId(); + + void setGearUseFeaturePmfmId(List<String> gearUseFeaturePmfmId); + + String getVesselUseFeaturePmfmId(int index); + + boolean isVesselUseFeaturePmfmIdEmpty(); + + int sizeVesselUseFeaturePmfmId(); + + void addVesselUseFeaturePmfmId(String vesselUseFeaturePmfmId); + + void addAllVesselUseFeaturePmfmId(Collection<String> vesselUseFeaturePmfmId); + + boolean removeVesselUseFeaturePmfmId(String vesselUseFeaturePmfmId); + + boolean removeAllVesselUseFeaturePmfmId(Collection<String> vesselUseFeaturePmfmId); + + boolean containsVesselUseFeaturePmfmId(String vesselUseFeaturePmfmId); + + boolean containsAllVesselUseFeaturePmfmId(Collection<String> vesselUseFeaturePmfmId); + + List<String> getVesselUseFeaturePmfmId(); + + void setVesselUseFeaturePmfmId(List<String> vesselUseFeaturePmfmId); + + String getLengthClassesPmfmId(int index); + + boolean isLengthClassesPmfmIdEmpty(); + + int sizeLengthClassesPmfmId(); + + void addLengthClassesPmfmId(String lengthClassesPmfmId); + + void addAllLengthClassesPmfmId(Collection<String> lengthClassesPmfmId); + + boolean removeLengthClassesPmfmId(String lengthClassesPmfmId); + + boolean removeAllLengthClassesPmfmId(Collection<String> lengthClassesPmfmId); + + boolean containsLengthClassesPmfmId(String lengthClassesPmfmId); + + boolean containsAllLengthClassesPmfmId(Collection<String> lengthClassesPmfmId); + + List<String> getLengthClassesPmfmId(); + + void setLengthClassesPmfmId(List<String> lengthClassesPmfmId); + + String getIndividualObservationPmfmId(int index); + + boolean isIndividualObservationPmfmIdEmpty(); + + int sizeIndividualObservationPmfmId(); + + void addIndividualObservationPmfmId(String individualObservationPmfmId); + + void addAllIndividualObservationPmfmId(Collection<String> individualObservationPmfmId); + + boolean removeIndividualObservationPmfmId(String individualObservationPmfmId); + + boolean removeAllIndividualObservationPmfmId(Collection<String> individualObservationPmfmId); + + boolean containsIndividualObservationPmfmId(String individualObservationPmfmId); + + boolean containsAllIndividualObservationPmfmId(Collection<String> individualObservationPmfmId); + + List<String> getIndividualObservationPmfmId(); + + void setIndividualObservationPmfmId(List<String> individualObservationPmfmId); + + Integer getVersion(); + + void setVersion(Integer version); + + SpeciesProtocol getSpecies(int index); + + boolean isSpeciesEmpty(); + + int sizeSpecies(); + + void addSpecies(SpeciesProtocol species); + + void addAllSpecies(Collection<SpeciesProtocol> species); + + boolean removeSpecies(SpeciesProtocol species); + + boolean removeAllSpecies(Collection<SpeciesProtocol> species); + + boolean containsSpecies(SpeciesProtocol species); + + boolean containsAllSpecies(Collection<SpeciesProtocol> species); + + List<SpeciesProtocol> getSpecies(); + + void setSpecies(List<SpeciesProtocol> species); + + SpeciesProtocol getBenthos(int index); + + boolean isBenthosEmpty(); + + int sizeBenthos(); + + void addBenthos(SpeciesProtocol benthos); + + void addAllBenthos(Collection<SpeciesProtocol> benthos); + + boolean removeBenthos(SpeciesProtocol benthos); + + boolean removeAllBenthos(Collection<SpeciesProtocol> benthos); + + boolean containsBenthos(SpeciesProtocol benthos); + + boolean containsAllBenthos(Collection<SpeciesProtocol> benthos); + + List<SpeciesProtocol> getBenthos(); + + void setBenthos(List<SpeciesProtocol> benthos); + +} //TuttiProtocol diff --git a/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/protocol/v2/TuttiProtocolBean2.java b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/protocol/v2/TuttiProtocolBean2.java new file mode 100644 index 0000000..9ae21f3 --- /dev/null +++ b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/protocol/v2/TuttiProtocolBean2.java @@ -0,0 +1,444 @@ +package fr.ifremer.tutti.persistence.entities.protocol.v2; + +import fr.ifremer.tutti.persistence.entities.TuttiEntityBean; +import fr.ifremer.tutti.persistence.entities.protocol.AbstractTuttiProtocolBean; +import fr.ifremer.tutti.persistence.entities.protocol.SpeciesProtocol; +import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol; + +import javax.annotation.Generated; +import java.util.Collection; +import java.util.LinkedList; +import java.util.List; + +@Generated(value = "org.nuiton.eugene.java.SimpleJavaBeanTransformer", date = "Mon Nov 24 12:54:48 CET 2014") +public class TuttiProtocolBean2 extends TuttiEntityBean implements TuttiProtocol { + + private static final long serialVersionUID = 3847260679792845110L; + + protected String name; + + protected String comment; + + protected List<String> gearUseFeaturePmfmId; + + protected List<String> vesselUseFeaturePmfmId; + + protected List<String> lengthClassesPmfmId; + + protected List<String> individualObservationPmfmId; + + protected Integer version; + + protected List<SpeciesProtocol> species; + + protected List<SpeciesProtocol> benthos; + + @Override + public String getName() { + return name; + } + + @Override + public void setName(String name) { + this.name = name; + } + + @Override + public String getComment() { + return comment; + } + + @Override + public void setComment(String comment) { + this.comment = comment; + } + + @Override + public String getGearUseFeaturePmfmId(int index) { + String o = getChild(gearUseFeaturePmfmId, index); + return o; + } + + @Override + public boolean isGearUseFeaturePmfmIdEmpty() { + return gearUseFeaturePmfmId == null || gearUseFeaturePmfmId.isEmpty(); + } + + @Override + public int sizeGearUseFeaturePmfmId() { + return gearUseFeaturePmfmId == null ? 0 : gearUseFeaturePmfmId.size(); + } + + @Override + public void addGearUseFeaturePmfmId(String gearUseFeaturePmfmId) { + getGearUseFeaturePmfmId().add(gearUseFeaturePmfmId); + } + + @Override + public void addAllGearUseFeaturePmfmId(Collection<String> gearUseFeaturePmfmId) { + getGearUseFeaturePmfmId().addAll(gearUseFeaturePmfmId); + } + + @Override + public boolean removeGearUseFeaturePmfmId(String gearUseFeaturePmfmId) { + boolean removed = getGearUseFeaturePmfmId().remove(gearUseFeaturePmfmId); + return removed; + } + + @Override + public boolean removeAllGearUseFeaturePmfmId(Collection<String> gearUseFeaturePmfmId) { + boolean removed = getGearUseFeaturePmfmId().removeAll(gearUseFeaturePmfmId); + return removed; + } + + @Override + public boolean containsGearUseFeaturePmfmId(String gearUseFeaturePmfmId) { + boolean contains = getGearUseFeaturePmfmId().contains(gearUseFeaturePmfmId); + return contains; + } + + @Override + public boolean containsAllGearUseFeaturePmfmId(Collection<String> gearUseFeaturePmfmId) { + boolean contains = getGearUseFeaturePmfmId().containsAll(gearUseFeaturePmfmId); + return contains; + } + + @Override + public List<String> getGearUseFeaturePmfmId() { + if (gearUseFeaturePmfmId == null) { + gearUseFeaturePmfmId = new LinkedList<String>(); + } + return gearUseFeaturePmfmId; + } + + @Override + public void setGearUseFeaturePmfmId(List<String> gearUseFeaturePmfmId) { + this.gearUseFeaturePmfmId = gearUseFeaturePmfmId; + } + + @Override + public String getVesselUseFeaturePmfmId(int index) { + String o = getChild(vesselUseFeaturePmfmId, index); + return o; + } + + @Override + public boolean isVesselUseFeaturePmfmIdEmpty() { + return vesselUseFeaturePmfmId == null || vesselUseFeaturePmfmId.isEmpty(); + } + + @Override + public int sizeVesselUseFeaturePmfmId() { + return vesselUseFeaturePmfmId == null ? 0 : vesselUseFeaturePmfmId.size(); + } + + @Override + public void addVesselUseFeaturePmfmId(String vesselUseFeaturePmfmId) { + getVesselUseFeaturePmfmId().add(vesselUseFeaturePmfmId); + } + + @Override + public void addAllVesselUseFeaturePmfmId(Collection<String> vesselUseFeaturePmfmId) { + getVesselUseFeaturePmfmId().addAll(vesselUseFeaturePmfmId); + } + + @Override + public boolean removeVesselUseFeaturePmfmId(String vesselUseFeaturePmfmId) { + boolean removed = getVesselUseFeaturePmfmId().remove(vesselUseFeaturePmfmId); + return removed; + } + + @Override + public boolean removeAllVesselUseFeaturePmfmId(Collection<String> vesselUseFeaturePmfmId) { + boolean removed = getVesselUseFeaturePmfmId().removeAll(vesselUseFeaturePmfmId); + return removed; + } + + @Override + public boolean containsVesselUseFeaturePmfmId(String vesselUseFeaturePmfmId) { + boolean contains = getVesselUseFeaturePmfmId().contains(vesselUseFeaturePmfmId); + return contains; + } + + @Override + public boolean containsAllVesselUseFeaturePmfmId(Collection<String> vesselUseFeaturePmfmId) { + boolean contains = getVesselUseFeaturePmfmId().containsAll(vesselUseFeaturePmfmId); + return contains; + } + + @Override + public List<String> getVesselUseFeaturePmfmId() { + if (vesselUseFeaturePmfmId == null) { + vesselUseFeaturePmfmId = new LinkedList<String>(); + } + return vesselUseFeaturePmfmId; + } + + @Override + public void setVesselUseFeaturePmfmId(List<String> vesselUseFeaturePmfmId) { + this.vesselUseFeaturePmfmId = vesselUseFeaturePmfmId; + } + + @Override + public String getLengthClassesPmfmId(int index) { + String o = getChild(lengthClassesPmfmId, index); + return o; + } + + @Override + public boolean isLengthClassesPmfmIdEmpty() { + return lengthClassesPmfmId == null || lengthClassesPmfmId.isEmpty(); + } + + @Override + public int sizeLengthClassesPmfmId() { + return lengthClassesPmfmId == null ? 0 : lengthClassesPmfmId.size(); + } + + @Override + public void addLengthClassesPmfmId(String lengthClassesPmfmId) { + getLengthClassesPmfmId().add(lengthClassesPmfmId); + } + + @Override + public void addAllLengthClassesPmfmId(Collection<String> lengthClassesPmfmId) { + getLengthClassesPmfmId().addAll(lengthClassesPmfmId); + } + + @Override + public boolean removeLengthClassesPmfmId(String lengthClassesPmfmId) { + boolean removed = getLengthClassesPmfmId().remove(lengthClassesPmfmId); + return removed; + } + + @Override + public boolean removeAllLengthClassesPmfmId(Collection<String> lengthClassesPmfmId) { + boolean removed = getLengthClassesPmfmId().removeAll(lengthClassesPmfmId); + return removed; + } + + @Override + public boolean containsLengthClassesPmfmId(String lengthClassesPmfmId) { + boolean contains = getLengthClassesPmfmId().contains(lengthClassesPmfmId); + return contains; + } + + @Override + public boolean containsAllLengthClassesPmfmId(Collection<String> lengthClassesPmfmId) { + boolean contains = getLengthClassesPmfmId().containsAll(lengthClassesPmfmId); + return contains; + } + + @Override + public List<String> getLengthClassesPmfmId() { + if (lengthClassesPmfmId == null) { + lengthClassesPmfmId = new LinkedList<String>(); + } + return lengthClassesPmfmId; + } + + @Override + public void setLengthClassesPmfmId(List<String> lengthClassesPmfmId) { + this.lengthClassesPmfmId = lengthClassesPmfmId; + } + + @Override + public String getIndividualObservationPmfmId(int index) { + String o = getChild(individualObservationPmfmId, index); + return o; + } + + @Override + public boolean isIndividualObservationPmfmIdEmpty() { + return individualObservationPmfmId == null || individualObservationPmfmId.isEmpty(); + } + + @Override + public int sizeIndividualObservationPmfmId() { + return individualObservationPmfmId == null ? 0 : individualObservationPmfmId.size(); + } + + @Override + public void addIndividualObservationPmfmId(String individualObservationPmfmId) { + getIndividualObservationPmfmId().add(individualObservationPmfmId); + } + + @Override + public void addAllIndividualObservationPmfmId(Collection<String> individualObservationPmfmId) { + getIndividualObservationPmfmId().addAll(individualObservationPmfmId); + } + + @Override + public boolean removeIndividualObservationPmfmId(String individualObservationPmfmId) { + boolean removed = getIndividualObservationPmfmId().remove(individualObservationPmfmId); + return removed; + } + + @Override + public boolean removeAllIndividualObservationPmfmId(Collection<String> individualObservationPmfmId) { + boolean removed = getIndividualObservationPmfmId().removeAll(individualObservationPmfmId); + return removed; + } + + @Override + public boolean containsIndividualObservationPmfmId(String individualObservationPmfmId) { + boolean contains = getIndividualObservationPmfmId().contains(individualObservationPmfmId); + return contains; + } + + @Override + public boolean containsAllIndividualObservationPmfmId(Collection<String> individualObservationPmfmId) { + boolean contains = getIndividualObservationPmfmId().containsAll(individualObservationPmfmId); + return contains; + } + + @Override + public List<String> getIndividualObservationPmfmId() { + if (individualObservationPmfmId == null) { + individualObservationPmfmId = new LinkedList<String>(); + } + return individualObservationPmfmId; + } + + @Override + public void setIndividualObservationPmfmId(List<String> individualObservationPmfmId) { + this.individualObservationPmfmId = individualObservationPmfmId; + } + + @Override + public Integer getVersion() { + return version; + } + + @Override + public void setVersion(Integer version) { + this.version = version; + } + + @Override + public SpeciesProtocol getSpecies(int index) { + SpeciesProtocol o = getChild(species, index); + return o; + } + + @Override + public boolean isSpeciesEmpty() { + return species == null || species.isEmpty(); + } + + @Override + public int sizeSpecies() { + return species == null ? 0 : species.size(); + } + + @Override + public void addSpecies(SpeciesProtocol species) { + getSpecies().add(species); + } + + @Override + public void addAllSpecies(Collection<SpeciesProtocol> species) { + getSpecies().addAll(species); + } + + @Override + public boolean removeSpecies(SpeciesProtocol species) { + boolean removed = getSpecies().remove(species); + return removed; + } + + @Override + public boolean removeAllSpecies(Collection<SpeciesProtocol> species) { + boolean removed = getSpecies().removeAll(species); + return removed; + } + + @Override + public boolean containsSpecies(SpeciesProtocol species) { + boolean contains = getSpecies().contains(species); + return contains; + } + + @Override + public boolean containsAllSpecies(Collection<SpeciesProtocol> species) { + boolean contains = getSpecies().containsAll(species); + return contains; + } + + @Override + public List<SpeciesProtocol> getSpecies() { + if (species == null) { + species = new LinkedList<SpeciesProtocol>(); + } + return species; + } + + @Override + public void setSpecies(List<SpeciesProtocol> species) { + this.species = species; + } + + @Override + public SpeciesProtocol getBenthos(int index) { + SpeciesProtocol o = getChild(benthos, index); + return o; + } + + @Override + public boolean isBenthosEmpty() { + return benthos == null || benthos.isEmpty(); + } + + @Override + public int sizeBenthos() { + return benthos == null ? 0 : benthos.size(); + } + + @Override + public void addBenthos(SpeciesProtocol benthos) { + getBenthos().add(benthos); + } + + @Override + public void addAllBenthos(Collection<SpeciesProtocol> benthos) { + getBenthos().addAll(benthos); + } + + @Override + public boolean removeBenthos(SpeciesProtocol benthos) { + boolean removed = getBenthos().remove(benthos); + return removed; + } + + @Override + public boolean removeAllBenthos(Collection<SpeciesProtocol> benthos) { + boolean removed = getBenthos().removeAll(benthos); + return removed; + } + + @Override + public boolean containsBenthos(SpeciesProtocol benthos) { + boolean contains = getBenthos().contains(benthos); + return contains; + } + + @Override + public boolean containsAllBenthos(Collection<SpeciesProtocol> benthos) { + boolean contains = getBenthos().containsAll(benthos); + return contains; + } + + @Override + public List<SpeciesProtocol> getBenthos() { + if (benthos == null) { + benthos = new LinkedList<SpeciesProtocol>(); + } + return benthos; + } + + @Override + public void setBenthos(List<SpeciesProtocol> benthos) { + this.benthos = benthos; + } + +} -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch feature/5954 in repository tutti. See http://git.codelutin.com/tutti.git commit c6cab787eebbaab9e342adab66d1b85cbfc52871 Author: Kevin Morin <morin@codelutin.com> Date: Thu Nov 27 16:37:05 2014 +0100 refs #6129 [IMPORT SUMATRA] Import des valeurs des PSFMs et des champs du trait --- .../entities/protocol/CaracteristicType.java | 21 +-- .../entities/protocol/TuttiProtocols.java | 4 +- .../entities/protocol/v2/TuttiProtocolBean2.java | 2 +- .../fr/ifremer/tutti/service/DecoratorService.java | 11 ++ .../resources/i18n/tutti-service_en_GB.properties | 8 + .../resources/i18n/tutti-service_fr_FR.properties | 4 + .../tutti/ui/swing/action/SaveProtocolAction.java | 6 + .../content/protocol/CaracteristicMappingUI.css | 7 + .../content/protocol/CaracteristicMappingUI.jaxx | 40 +++++ .../protocol/CaracteristicMappingUIHandler.java | 176 +++++++++++++++++++++ .../protocol/CaracteristicMappingUIModel.java | 62 ++++++++ .../EditProtocolCaracteristicsRowModel.java | 27 +++- .../EditProtocolCaracteristicsTableModel.java | 10 +- .../ui/swing/content/protocol/EditProtocolUI.jaxx | 4 +- .../content/protocol/EditProtocolUIHandler.java | 49 +----- .../util/table/AbstractTuttiTableUIHandler.java | 1 + .../resources/i18n/tutti-ui-swing_en_GB.properties | 1 - 17 files changed, 364 insertions(+), 69 deletions(-) diff --git a/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/protocol/CaracteristicType.java b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/protocol/CaracteristicType.java index b0d2b01..f93a4b8 100644 --- a/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/protocol/CaracteristicType.java +++ b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/protocol/CaracteristicType.java @@ -33,23 +33,12 @@ import static org.nuiton.i18n.I18n.t; * @author tchemit <chemit@codelutin.com> * @since 1.0 */ -public enum CaracteristicType implements LabelAware { +public enum CaracteristicType { - LENGTH_STEP(n("tutti.caracteristicType.lengthStep")), - VESSEL_USE_FEATURE(n("tutti.caracteristicType.vesselUseFeature")), - GEAR_USE_FEATURE(n("tutti.caracteristicType.gearUseFeature")), - INDIVIDUAL_OBSERVATION(n("tutti.caracteristicType.individualObservation")); - - private String labelKey; - - private CaracteristicType(String labelKey) { - this.labelKey = labelKey; - } - - @Override - public String getLabel() { - return t(labelKey); - } + LENGTH_STEP, + VESSEL_USE_FEATURE, + GEAR_USE_FEATURE, + INDIVIDUAL_OBSERVATION; public static CaracteristicType[] getTabTypes() { return new CaracteristicType[] { diff --git a/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/protocol/TuttiProtocols.java b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/protocol/TuttiProtocols.java index 32d4279..ab5eb2a 100644 --- a/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/protocol/TuttiProtocols.java +++ b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/protocol/TuttiProtocols.java @@ -308,6 +308,8 @@ public class TuttiProtocols extends AbstractTuttiProtocols { YamlConfig result = new YamlConfig(); result.setClassTag(SpeciesProtocol.class.getSimpleName(), SpeciesProtocols.typeOfSpeciesProtocol()); + result.setClassTag(CaracteristicMappingRow.class.getSimpleName(), + CaracteristicMappingRows.typeOfCaracteristicMappingRow()); result.writeConfig.setAlwaysWriteClassname(false); result.writeConfig.setWriteRootTags(false); return result; @@ -409,7 +411,7 @@ public class TuttiProtocols extends AbstractTuttiProtocols { Collections2.filter(caracteristicMapping, new Predicate<CaracteristicMappingRow>() { @Override public boolean apply(CaracteristicMappingRow caracteristicMappingRow) { - return type.equals(caracteristicMappingRow.getTab()); + return type.name().equals(caracteristicMappingRow.getTab()); } }); diff --git a/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/protocol/v2/TuttiProtocolBean2.java b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/protocol/v2/TuttiProtocolBean2.java index 9ae21f3..0405b21 100644 --- a/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/protocol/v2/TuttiProtocolBean2.java +++ b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/protocol/v2/TuttiProtocolBean2.java @@ -11,7 +11,7 @@ import java.util.LinkedList; import java.util.List; @Generated(value = "org.nuiton.eugene.java.SimpleJavaBeanTransformer", date = "Mon Nov 24 12:54:48 CET 2014") -public class TuttiProtocolBean2 extends TuttiEntityBean implements TuttiProtocol { +public class TuttiProtocolBean2 extends TuttiEntityBean implements TuttiProtocol2 { private static final long serialVersionUID = 3847260679792845110L; diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/DecoratorService.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/DecoratorService.java index d8a9402..fa07772 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/DecoratorService.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/DecoratorService.java @@ -29,6 +29,7 @@ import fr.ifremer.tutti.persistence.entities.data.Cruise; import fr.ifremer.tutti.persistence.entities.data.FishingOperation; import fr.ifremer.tutti.persistence.entities.data.Program; import fr.ifremer.tutti.persistence.entities.data.SampleCategoryModelEntry; +import fr.ifremer.tutti.persistence.entities.protocol.CaracteristicType; import fr.ifremer.tutti.persistence.entities.protocol.SpeciesProtocol; import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol; import fr.ifremer.tutti.persistence.entities.referential.Caracteristic; @@ -115,6 +116,12 @@ public class DecoratorService extends AbstractTuttiService { registerDecorator(CARACTERISTIC_PARAMETER_ONLY_WITH_UNIT, new SimpleCaracteristicDecorator("${parameterName}$s")); registerTuttiDecorator(CaracteristicQualitativeValue.class, "${description}$s", SEPARATOR, " - "); + registerDecorator(new Decorator<CaracteristicType>(CaracteristicType.class) { + @Override + public String toString(Object bean) { + return bean == null ? "" : t("tutti.caracteristicType." + bean.toString()); + } + }); registerTuttiDecorator(SpeciesProtocol.class, "${speciesReferenceTaxonId}", SEPARATOR, " - "); registerTuttiDecorator(Attachment.class, "${name}$s", SEPARATOR, " - "); registerTuttiDecorator(LabelAware.class, "${label}$s", SEPARATOR, " - "); @@ -197,6 +204,10 @@ public class DecoratorService extends AbstractTuttiService { n("tutti.property.attachment"); n("tutti.property.multirigAggregation"); n("tutti.property.caracteristic"); + n("tutti.caracteristicType.GEAR_USE_FEATURE"); + n("tutti.caracteristicType.INDIVIDUAL_OBSERVATION"); + n("tutti.caracteristicType.lengthStep"); + n("tutti.caracteristicType.VESSEL_USE_FEATURE"); } public static class SpeciesDecorator extends TuttiDecorator<Species> implements Cloneable { diff --git a/tutti-service/src/main/resources/i18n/tutti-service_en_GB.properties b/tutti-service/src/main/resources/i18n/tutti-service_en_GB.properties index 2774bc4..6aae3a6 100644 --- a/tutti-service/src/main/resources/i18n/tutti-service_en_GB.properties +++ b/tutti-service/src/main/resources/i18n/tutti-service_en_GB.properties @@ -1,3 +1,11 @@ +tutti.caracteristicType.GEAR_USE_FEATURE= +tutti.caracteristicType.INDIVIDUAL_OBSERVATION= +tutti.caracteristicType.LENGTH_STEP= +tutti.caracteristicType.VESSEL_USE_FEATURE= +tutti.caracteristicType.gearUseFeature= +tutti.caracteristicType.individualObservation= +tutti.caracteristicType.lengthStep= +tutti.caracteristicType.vesselUseFeature= tutti.error.benthos.not.in.protocol= tutti.error.species.not.in.protocol= tutti.io.mkDir.error= diff --git a/tutti-service/src/main/resources/i18n/tutti-service_fr_FR.properties b/tutti-service/src/main/resources/i18n/tutti-service_fr_FR.properties index 4a69a80..98af0fd 100644 --- a/tutti-service/src/main/resources/i18n/tutti-service_fr_FR.properties +++ b/tutti-service/src/main/resources/i18n/tutti-service_fr_FR.properties @@ -1,3 +1,7 @@ +tutti.caracteristicType.GEAR_USE_FEATURE=Caractéristiques de l'engin +tutti.caracteristicType.INDIVIDUAL_OBSERVATION=Observations individuelles +tutti.caracteristicType.LENGTH_STEP=Classes de tailles +tutti.caracteristicType.VESSEL_USE_FEATURE=Autres caractéristiques tutti.io.mkDir.error=Erreur à la création du dossier %s tutti.pdf.export.missing.species.code=Une espèce (referenceId %s, nom scientifique %s) n'a ni code campagne, ni code refTax. tutti.property.attachment=Pièce jointe diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/SaveProtocolAction.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/SaveProtocolAction.java index f5950c0..c6378be 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/SaveProtocolAction.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/SaveProtocolAction.java @@ -25,6 +25,7 @@ package fr.ifremer.tutti.ui.swing.action; import com.google.common.collect.Lists; import fr.ifremer.tutti.persistence.entities.TuttiEntities; +import fr.ifremer.tutti.persistence.entities.protocol.CaracteristicMappingRow; import fr.ifremer.tutti.persistence.entities.protocol.SpeciesProtocol; import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol; import fr.ifremer.tutti.service.PersistenceService; @@ -36,6 +37,7 @@ import fr.ifremer.tutti.ui.swing.content.protocol.EditProtocolUIModel; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import java.util.ArrayList; import java.util.List; import static org.nuiton.i18n.I18n.t; @@ -68,6 +70,10 @@ public class SaveProtocolAction extends AbstractTuttiAction<EditProtocolUIModel, TuttiProtocol bean = model.toBean(); + List<CaracteristicMappingRow> caracteristicMappingRows = + new ArrayList<>(getUI().getCaracteristicsTable().getModel().getCaracteristicMapping().values()); + bean.setCaracteristicMapping(caracteristicMappingRows); + // get the species protocols from the table List<SpeciesProtocol> speciesProtocols = Lists.newArrayList(); diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/CaracteristicMappingUI.css b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/CaracteristicMappingUI.css new file mode 100644 index 0000000..4773389 --- /dev/null +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/CaracteristicMappingUI.css @@ -0,0 +1,7 @@ +#caracteristicsTable { + selectionMode: {ListSelectionModel.SINGLE_SELECTION}; + selectionBackground: {null}; + selectionForeground: {Color.BLACK}; + sortable: false; + enabled: true; +} \ No newline at end of file diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/CaracteristicMappingUI.jaxx b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/CaracteristicMappingUI.jaxx new file mode 100644 index 0000000..8706193 --- /dev/null +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/CaracteristicMappingUI.jaxx @@ -0,0 +1,40 @@ +<JPanel layout="{new BorderLayout()}" + implements='fr.ifremer.tutti.ui.swing.util.TuttiUI<CaracteristicMappingUIModel, CaracteristicMappingUIHandler>'> + + <import> + fr.ifremer.tutti.persistence.entities.referential.Caracteristic + fr.ifremer.tutti.persistence.entities.referential.Species + + fr.ifremer.tutti.ui.swing.TuttiHelpBroker + fr.ifremer.tutti.ui.swing.util.TuttiUI + fr.ifremer.tutti.ui.swing.util.TuttiUIUtil + + jaxx.runtime.swing.editor.bean.BeanFilterableComboBox + jaxx.runtime.swing.editor.bean.BeanDoubleList + + java.awt.Color + + javax.swing.ListSelectionModel + + org.jdesktop.swingx.JXTable + + static org.nuiton.i18n.I18n.t + static jaxx.runtime.SwingUtil.getStringValue + + </import> + + <script><![CDATA[ + + public CaracteristicMappingUI(TuttiUI parentUI) { + TuttiUIUtil.setParentUI(this, parentUI); + } + ]]> + </script> + + <CaracteristicMappingUIModel id='model' + initializer='getContextValue(CaracteristicMappingUIModel.class)'/> + + <JScrollPane constraints="BorderLayout.CENTER"> + <JXTable id='caracteristicsTable'/> + </JScrollPane> +</JPanel> \ No newline at end of file diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/CaracteristicMappingUIHandler.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/CaracteristicMappingUIHandler.java new file mode 100644 index 0000000..f1b92fc --- /dev/null +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/CaracteristicMappingUIHandler.java @@ -0,0 +1,176 @@ +package fr.ifremer.tutti.ui.swing.content.protocol; + +import com.google.common.collect.Lists; +import fr.ifremer.tutti.persistence.entities.protocol.CaracteristicMappingRow; +import fr.ifremer.tutti.persistence.entities.protocol.CaracteristicType; +import fr.ifremer.tutti.persistence.entities.referential.Caracteristic; +import fr.ifremer.tutti.ui.swing.util.TuttiBeanMonitor; +import fr.ifremer.tutti.ui.swing.util.table.AbstractTuttiTableUIHandler; +import jaxx.runtime.validator.swing.SwingValidator; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.jdesktop.swingx.JXTable; +import org.jdesktop.swingx.table.DefaultTableColumnModelExt; +import org.nuiton.jaxx.application.swing.table.AbstractApplicationTableModel; + +import javax.swing.*; +import java.beans.PropertyChangeEvent; +import java.beans.PropertyChangeListener; +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; + +/** + * @author Kevin Morin (Code Lutin) + * @since x.x + */ +public class CaracteristicMappingUIHandler + extends AbstractTuttiTableUIHandler<EditProtocolCaracteristicsRowModel, CaracteristicMappingUIModel, CaracteristicMappingUI> { + + private static final Log log = LogFactory.getLog(CaracteristicMappingUIHandler.class); + + public CaracteristicMappingUIHandler() { + super(EditProtocolCaracteristicsRowModel.PROPERTY_PSFM, + EditProtocolCaracteristicsRowModel.PROPERTY_TYPE, + EditProtocolCaracteristicsRowModel.PROPERTY_IMPORT_FILE_COLUMN); + } + + @Override + public AbstractApplicationTableModel<EditProtocolCaracteristicsRowModel> getTableModel() { + return (EditProtocolCaracteristicsTableModel) getTable().getModel(); + } + + @Override + public JXTable getTable() { + return getUI().getCaracteristicsTable(); + } + + @Override + protected boolean isRowValid(EditProtocolCaracteristicsRowModel row) { + return row.getPsfm() != null && row.getType() != null; + } + + @Override + protected void saveSelectedRowIfRequired(TuttiBeanMonitor<EditProtocolCaracteristicsRowModel> rowMonitor, + EditProtocolCaracteristicsRowModel row) { + if (row.isValid()) { + // there is a valid bean attached to the monitor + + if (rowMonitor.wasModified()) { + + // monitored bean was modified, save it + if (log.isInfoEnabled()) { + log.info("Row " + row + " was modified, will save it"); + } + + getModel().getCaracteristicMapping().put(row.getPsfm().getId(), row.toBean()); + } + } + + } + + @Override + public void onCloseUI() { + + } + + @Override + public SwingValidator<CaracteristicMappingUIModel> getValidator() { + return null; + } + + @Override + protected JComponent getComponentToFocus() { + return null; + } + + @Override + public void beforeInit(CaracteristicMappingUI ui) { + super.beforeInit(ui); + + EditProtocolUIModel editProtocolUIModel = + ui.getContextValue(EditProtocolUIModel.class); + + CaracteristicMappingUIModel model = new CaracteristicMappingUIModel(); + model.setCaracteristics(editProtocolUIModel.getCaracteristics()); + editProtocolUIModel.addPropertyChangeListener(EditProtocolUIModel.PROPERTY_CARACTERISTIC_MAPPING, new PropertyChangeListener() { + @Override + public void propertyChange(PropertyChangeEvent evt) { + getModel().setCaracteristicMappingRows((List<CaracteristicMappingRow>) evt.getNewValue()); + } + }); + ui.setContextValue(model); + } + + @Override + public void afterInit(CaracteristicMappingUI caracteristicMappingUI) { + + initUI(this.ui); + + JXTable caracteristicsMappingTable = caracteristicMappingUI.getCaracteristicsTable(); + + DefaultTableColumnModelExt columnModel = new DefaultTableColumnModelExt(); + +// getModel().addPropertyChangeListener(EditProtocolUIModel.PROPERTY_LENGTH_CLASSES_PMFM_ID, new PropertyChangeListener() { +// @Override +// public void propertyChange(PropertyChangeEvent evt) { +// List<String> ids = (List<String>) evt.getNewValue(); +// selectLengthClasses(ids, comboBox); +// } +// }); + + List<Caracteristic> caracteristics = new ArrayList<Caracteristic>(getModel().getCaracteristics()); + addComboDataColumnToModel(columnModel, + EditProtocolCaracteristicsTableModel.PSFM_ID, + getDecorator(Caracteristic.class, null), + caracteristics); + + addComboDataColumnToModel(columnModel, + EditProtocolCaracteristicsTableModel.TYPE, + getDecorator(CaracteristicType.class, null), + Lists.newArrayList(CaracteristicType.getTabTypes())); + + addColumnToModel(columnModel, + EditProtocolCaracteristicsTableModel.IMPORT_FILE_COLUMN); + + EditProtocolCaracteristicsTableModel tableModel = new EditProtocolCaracteristicsTableModel(columnModel, caracteristics); + caracteristicsMappingTable.setModel(tableModel); + caracteristicsMappingTable.setColumnModel(columnModel); + + initTable(caracteristicsMappingTable); + + getModel().addPropertyChangeListener(CaracteristicMappingUIModel.PROPERTY_CARACTERISTIC_MAPPING_ROWS, + new PropertyChangeListener() { + @Override + public void propertyChange(PropertyChangeEvent evt) { + populateTable((Collection<CaracteristicMappingRow>) evt.getNewValue()); + } + }); + + } + + protected void populateTable(Collection<CaracteristicMappingRow> values) { + List<EditProtocolCaracteristicsRowModel> rows = new ArrayList<EditProtocolCaracteristicsRowModel>(); + for (CaracteristicMappingRow row : values) { + EditProtocolCaracteristicsRowModel rowModel = getTableModel().createNewRow(); + rowModel.fromEntity(row); + recomputeRowValidState(rowModel); + rows.add(rowModel); + } + getTableModel().setRows(rows); + } + + @Override + protected void initTable(JXTable table) { + super.initTable(table); + installTableKeyListener(table.getColumnModel(), table); + } + + @Override + protected void onRowModified(int rowIndex, EditProtocolCaracteristicsRowModel row, + String propertyName, Object oldValue, Object newValue) { + recomputeRowValidState(row); + super.onRowModified(rowIndex, row, propertyName, oldValue, newValue); + saveSelectedRowIfNeeded(); + } +} diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/CaracteristicMappingUIModel.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/CaracteristicMappingUIModel.java new file mode 100644 index 0000000..d07ab9f --- /dev/null +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/CaracteristicMappingUIModel.java @@ -0,0 +1,62 @@ +package fr.ifremer.tutti.ui.swing.content.protocol; + +import com.google.common.base.Function; +import com.google.common.collect.Maps; +import fr.ifremer.tutti.persistence.entities.protocol.CaracteristicMappingRow; +import fr.ifremer.tutti.persistence.entities.protocol.CaracteristicMappingRowBean; +import fr.ifremer.tutti.persistence.entities.referential.Caracteristic; +import fr.ifremer.tutti.ui.swing.util.table.AbstractTuttiTableUIModel; +import org.nuiton.util.beans.Binder; +import org.nuiton.util.beans.BinderFactory; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * @author Kevin Morin (Code Lutin) + * @since x.x + */ +public class CaracteristicMappingUIModel extends AbstractTuttiTableUIModel<CaracteristicMappingRow, EditProtocolCaracteristicsRowModel, CaracteristicMappingUIModel> { + + public static final String PROPERTY_CARACTERISTIC_MAPPING_ROWS = "caracteristicMappingRows"; + + protected List<Caracteristic> caracteristics = new ArrayList<Caracteristic>(); + protected Map<String, CaracteristicMappingRow> caracteristicMappingRows = new HashMap<String, CaracteristicMappingRow>(); + + public CaracteristicMappingUIModel() { + super(CaracteristicMappingRow.class, null, null); + } + + public List<Caracteristic> getCaracteristics() { + return caracteristics; + } + + public void setCaracteristics(List<Caracteristic> caracteristics) { + this.caracteristics = caracteristics; + } + + public Map<String, CaracteristicMappingRow> getCaracteristicMapping() { + return caracteristicMappingRows; + } + + public void setCaracteristicMappingRows(List<CaracteristicMappingRow> caracteristicMappingRows) { + this.caracteristicMappingRows = new HashMap<String, CaracteristicMappingRow>(); + if (caracteristicMappingRows != null) { + this.caracteristicMappingRows.putAll(Maps.uniqueIndex(caracteristicMappingRows, new Function<CaracteristicMappingRow, String>() { + @Override + public String apply(CaracteristicMappingRow caracteristicMappingRow) { + return caracteristicMappingRow.getPmfmId(); + } + })); + } + firePropertyChanged(PROPERTY_CARACTERISTIC_MAPPING_ROWS, null, caracteristicMappingRows); + } + + @Override + protected CaracteristicMappingRow newEntity() { + return new CaracteristicMappingRowBean(); + } +} diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolCaracteristicsRowModel.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolCaracteristicsRowModel.java index 149cfaf..c845b8e 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolCaracteristicsRowModel.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolCaracteristicsRowModel.java @@ -1,5 +1,8 @@ package fr.ifremer.tutti.ui.swing.content.protocol; +import com.google.common.base.Function; +import com.google.common.collect.Maps; +import fr.ifremer.tutti.persistence.entities.TuttiEntities; import fr.ifremer.tutti.persistence.entities.protocol.CaracteristicMappingRow; import fr.ifremer.tutti.persistence.entities.protocol.CaracteristicMappingRowBean; import fr.ifremer.tutti.persistence.entities.protocol.CaracteristicType; @@ -8,6 +11,10 @@ import fr.ifremer.tutti.ui.swing.util.AbstractTuttiBeanUIModel; import org.nuiton.util.beans.Binder; import org.nuiton.util.beans.BinderFactory; +import java.util.Collection; +import java.util.HashMap; +import java.util.Map; + /** * @author Kevin Morin (Code Lutin) * @since 3.10 @@ -18,6 +25,7 @@ public class EditProtocolCaracteristicsRowModel extends AbstractTuttiBeanUIModel public static final String PROPERTY_TYPE = "type"; public static final String PROPERTY_IMPORT_FILE_COLUMN = "importFileColumn"; + protected Map<String, Caracteristic> caracteristicMap; protected Caracteristic psfm; protected CaracteristicType type; protected String importFileColumn; @@ -30,8 +38,9 @@ public class EditProtocolCaracteristicsRowModel extends AbstractTuttiBeanUIModel BinderFactory.newBinder(EditProtocolCaracteristicsRowModel.class, CaracteristicMappingRow.class); - public EditProtocolCaracteristicsRowModel() { + public EditProtocolCaracteristicsRowModel(Collection<Caracteristic> caracteristics) { super(fromBeanBinder, toBeanBinder); + caracteristicMap = caracteristics != null ? TuttiEntities.splitById(caracteristics) : new HashMap<String, Caracteristic>(); } public Caracteristic getPsfm() { @@ -64,6 +73,22 @@ public class EditProtocolCaracteristicsRowModel extends AbstractTuttiBeanUIModel firePropertyChanged(PROPERTY_IMPORT_FILE_COLUMN, oldValue, importFileColumn); } + public String getPmfmId() { + return psfm == null ? null : psfm.getId(); + } + + public void setPmfmId(String pmfmId) { + setPsfm(caracteristicMap.get(pmfmId)); + } + + public String getTab() { + return type == null ? null : type.name(); + } + + public void setTab(String tab) { + setType(CaracteristicType.valueOf(tab)); + } + @Override protected CaracteristicMappingRow newEntity() { return new CaracteristicMappingRowBean(); diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolCaracteristicsTableModel.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolCaracteristicsTableModel.java index 140872a..6e262ed 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolCaracteristicsTableModel.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolCaracteristicsTableModel.java @@ -1,9 +1,12 @@ package fr.ifremer.tutti.ui.swing.content.protocol; +import fr.ifremer.tutti.persistence.entities.referential.Caracteristic; import org.jdesktop.swingx.table.TableColumnModelExt; import org.nuiton.jaxx.application.swing.table.AbstractApplicationTableModel; import org.nuiton.jaxx.application.swing.table.ColumnIdentifier; +import java.util.Collection; + import static org.nuiton.i18n.I18n.n; /** @@ -12,6 +15,8 @@ import static org.nuiton.i18n.I18n.n; */ public class EditProtocolCaracteristicsTableModel extends AbstractApplicationTableModel<EditProtocolCaracteristicsRowModel> { + protected Collection<Caracteristic> caracteristics; + public static final ColumnIdentifier<EditProtocolCaracteristicsRowModel> PSFM_ID = ColumnIdentifier.newId( EditProtocolCaracteristicsRowModel.PROPERTY_PSFM, n("tutti.editProtocol.table.header.caracteristics.psfmId"), @@ -27,13 +32,14 @@ public class EditProtocolCaracteristicsTableModel extends AbstractApplicationTab n("tutti.editProtocol.table.header.caracteristics.importFileColumn"), n("tutti.editProtocol.table.header.caracteristics.importFileColumn.tip")); - public EditProtocolCaracteristicsTableModel(TableColumnModelExt columnModel) { + public EditProtocolCaracteristicsTableModel(TableColumnModelExt columnModel, Collection<Caracteristic> caracteristics) { super(columnModel, true, true); setNoneEditableCols(); + this.caracteristics = caracteristics; } @Override public EditProtocolCaracteristicsRowModel createNewRow() { - return new EditProtocolCaracteristicsRowModel(); + return new EditProtocolCaracteristicsRowModel(caracteristics); } } diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUI.jaxx b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUI.jaxx index d6ccd4f..b8e29f4 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUI.jaxx +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUI.jaxx @@ -118,9 +118,7 @@ genericType='Caracteristic'/> </tab> <tab title='tutti.editProtocol.tab.caracteristic.mapping'> - <JScrollPane> - <JXTable id='caracteristicsTable'/> - </JScrollPane> + <CaracteristicMappingUI id='caracteristicsTable' constructorParams="(TuttiUI)this"/> </tab> </JTabbedPane> </JPanel> diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIHandler.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIHandler.java index cbf5edb..d7c4c66 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIHandler.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIHandler.java @@ -180,6 +180,7 @@ public class EditProtocolUIHandler extends AbstractTuttiUIHandler<EditProtocolUI // afterUI method to fill model listModelIsModify(model); + this.ui.setContextValue(model); } @@ -425,49 +426,6 @@ public class EditProtocolUIHandler extends AbstractTuttiUIHandler<EditProtocolUI Lists.newArrayList(model.getCaracteristics()), model.getIndividualObservationPmfmId()); - // table of caracteristic mapping - - { - JXTable caracteristicsMappingTable = ui.getCaracteristicsTable(); - - DefaultTableColumnModelExt columnModel = new DefaultTableColumnModelExt(); - -// getModel().addPropertyChangeListener(EditProtocolUIModel.PROPERTY_LENGTH_CLASSES_PMFM_ID, new PropertyChangeListener() { -// @Override -// public void propertyChange(PropertyChangeEvent evt) { -// List<String> ids = (List<String>) evt.getNewValue(); -// selectLengthClasses(ids, comboBox); -// } -// }); - - Decorator<Caracteristic> decorator = getDecorator(Caracteristic.class, null); - addComboDataColumnToModel(columnModel, - EditProtocolCaracteristicsTableModel.PSFM_ID, - decorator, - new ArrayList<Caracteristic>(getModel().getAllCaracteristic().values())); - - addComboDataColumnToModel(columnModel, - EditProtocolCaracteristicsTableModel.TYPE, - getDecorator(CaracteristicType.class, null), - Lists.newArrayList(CaracteristicType.getTabTypes())); - - addColumnToModel(columnModel, - EditProtocolCaracteristicsTableModel.IMPORT_FILE_COLUMN); - - EditProtocolCaracteristicsTableModel tableModel = new EditProtocolCaracteristicsTableModel(columnModel); - caracteristicsMappingTable.setModel(tableModel); - caracteristicsMappingTable.setColumnModel(columnModel); - - JTableHeader tableHeader = caracteristicsMappingTable.getTableHeader(); - - // by default do not authorize to change column orders - tableHeader.setReorderingAllowed(false); - - addHighlighters(caracteristicsMappingTable); - - tableModel.setRows(new ArrayList<EditProtocolCaracteristicsRowModel>()); - } - // if new protocol can already cancel his creation model.setModify(model.isCreate() || model.isCleaned()); @@ -501,7 +459,8 @@ public class EditProtocolUIHandler extends AbstractTuttiUIHandler<EditProtocolUI }); dialog = new SelectSpeciesUI(false, this.ui); - + + listenModelModifiy(ui.getCaracteristicsTable().getModel()); } @Override @@ -591,6 +550,8 @@ public class EditProtocolUIHandler extends AbstractTuttiUIHandler<EditProtocolUI } clearValidators(); ui.getTabPanel().setSelectedIndex(0); + + closeUI(ui.getCaracteristicsTable()); } @Override diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/table/AbstractTuttiTableUIHandler.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/table/AbstractTuttiTableUIHandler.java index ab99b41..335d832 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/table/AbstractTuttiTableUIHandler.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/table/AbstractTuttiTableUIHandler.java @@ -264,6 +264,7 @@ public abstract class AbstractTuttiTableUIHandler<R extends AbstractTuttiBeanUIM getModel().addPropertyChangeListener(AbstractTuttiTableUIModel.PROPERTY_ROWS, new PropertyChangeListener() { @Override public void propertyChange(PropertyChangeEvent evt) { + log.info("row schanged"); onModelRowsChanged((List<R>) evt.getNewValue()); } }); diff --git a/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties b/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties index d8bdee7..b7ea6ee 100644 --- a/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties +++ b/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties @@ -1,6 +1,5 @@ application.action.create.error= application.error.ui.business.warning= -gtrph= swing.error.cannot.open.file= tutti.about.bottomText= tutti.about.message= -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
participants (1)
-
codelutin.com scm