View Javadoc
1   package fr.ifremer.dali.ui.swing.content.observation.operation.measurement.grouped.shared;
2   
3   /*
4    * #%L
5    * Dali :: UI
6    * $Id:$
7    * $HeadURL:$
8    * %%
9    * Copyright (C) 2014 - 2015 Ifremer
10   * %%
11   * This program is free software: you can redistribute it and/or modify
12   * it under the terms of the GNU Affero General Public License as published by
13   * the Free Software Foundation, either version 3 of the License, or
14   * (at your option) any later version.
15   *
16   * This program is distributed in the hope that it will be useful,
17   * but WITHOUT ANY WARRANTY; without even the implied warranty of
18   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
19   * GNU General Public License for more details.
20   *
21   * You should have received a copy of the GNU Affero General Public License
22   * along with this program.  If not, see <http://www.gnu.org/licenses/>.
23   * #L%
24   */
25  
26  import fr.ifremer.dali.decorator.DecoratorService;
27  import fr.ifremer.dali.dto.data.sampling.SamplingOperationDTO;
28  import fr.ifremer.dali.dto.referential.DepartmentDTO;
29  import fr.ifremer.dali.dto.referential.TaxonDTO;
30  import fr.ifremer.dali.dto.referential.TaxonGroupDTO;
31  import fr.ifremer.dali.ui.swing.content.observation.operation.measurement.grouped.OperationMeasurementsGroupedRowModel;
32  import fr.ifremer.dali.ui.swing.util.table.AbstractDaliTableModel;
33  import fr.ifremer.dali.ui.swing.util.table.DaliColumnIdentifier;
34  import fr.ifremer.quadrige3.ui.swing.table.SwingTableColumnModel;
35  
36  import static org.nuiton.i18n.I18n.n;
37  
38  /**
39   * Le modele pour le tableau des mesures des prelevements (ecran prelevements/mesure).
40   */
41  public abstract class AbstractOperationMeasurementsGroupedTableModel<R extends OperationMeasurementsGroupedRowModel>
42      extends AbstractDaliTableModel<R> {
43  
44      private boolean readOnly;
45  
46      /**
47       * Identifiant pour la colonne mnemonique.
48       */
49      public static final DaliColumnIdentifier<OperationMeasurementsGroupedRowModel> SAMPLING = DaliColumnIdentifier.newId(
50          OperationMeasurementsGroupedRowModel.PROPERTY_SAMPLING_OPERATION,
51          n("dali.property.mnemonic"),
52          n("dali.samplingOperation.measurement.mnemonic.tip"),
53          SamplingOperationDTO.class, true);
54  
55      public static final DaliColumnIdentifier<OperationMeasurementsGroupedRowModel> INDIVIDUAL_ID = DaliColumnIdentifier.newReadOnlyId(
56          OperationMeasurementsGroupedRowModel.PROPERTY_INDIVIDUAL_ID,
57          n("dali.property.individualId"),
58          n("dali.property.individualId"),
59          Integer.class
60      );
61  
62      /**
63       * Identifiant pour la colonne groupe taxon.
64       */
65      public static final DaliColumnIdentifier<OperationMeasurementsGroupedRowModel> TAXON_GROUP = DaliColumnIdentifier.newId(
66          OperationMeasurementsGroupedRowModel.PROPERTY_TAXON_GROUP,
67          n("dali.property.taxonGroup.short"),
68          n("dali.samplingOperation.measurement.taxonGroup.tip"),
69          TaxonGroupDTO.class, DecoratorService.NAME);
70  
71      /**
72       * Identifiant pour la colonne taxon.
73       */
74      public static final DaliColumnIdentifier<OperationMeasurementsGroupedRowModel> TAXON = DaliColumnIdentifier.newId(
75          OperationMeasurementsGroupedRowModel.PROPERTY_TAXON,
76          n("dali.property.taxon"),
77          n("dali.samplingOperation.measurement.taxon.tip"),
78          TaxonDTO.class,
79          DecoratorService.WITH_CITATION);
80  
81      /**
82       * Identifiant pour la colonne taxon saisi.
83       */
84      public static final DaliColumnIdentifier<OperationMeasurementsGroupedRowModel> INPUT_TAXON_NAME = DaliColumnIdentifier.newReadOnlyId(
85          OperationMeasurementsGroupedRowModel.PROPERTY_INPUT_TAXON_NAME,
86          n("dali.property.inputTaxon"),
87          n("dali.samplingOperation.measurement.inputTaxon.tip"),
88          String.class);
89  
90      /**
91       * Identifiant pour la colonne valeur.
92       */
93      public static final DaliColumnIdentifier<OperationMeasurementsGroupedRowModel> COMMENT = DaliColumnIdentifier.newId(
94          OperationMeasurementsGroupedRowModel.PROPERTY_COMMENT,
95          n("dali.property.comment"),
96          n("dali.samplingOperation.measurement.comment.tip"),
97          String.class);
98  
99      /**
100      * Identifiant pour la colonne analyst.
101      */
102     public static final DaliColumnIdentifier<OperationMeasurementsGroupedRowModel> ANALYST = DaliColumnIdentifier.newId(
103         OperationMeasurementsGroupedRowModel.PROPERTY_ANALYST,
104         n("dali.property.analyst"),
105         n("dali.samplingOperation.measurement.analyst.tip"),
106         DepartmentDTO.class);
107 
108     /**
109      * Constructor.
110      *
111      * @param columnModel Le modele pour les colonnes
112      */
113     public AbstractOperationMeasurementsGroupedTableModel(final SwingTableColumnModel columnModel, boolean createNewRow) {
114         super(columnModel, createNewRow, false);
115         readOnly = false;
116     }
117 
118     public void setReadOnly(boolean readOnly) {
119         this.readOnly = readOnly;
120     }
121 
122     @Override
123     public boolean isCreateNewRow() {
124         return !readOnly && super.isCreateNewRow();
125     }
126 
127 
128     public abstract DaliColumnIdentifier<R> getPmfmInsertPosition();
129 
130 }