1 package fr.ifremer.dali.ui.swing.content.observation.operation.measurement.grouped.shared;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
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
40
41 public abstract class AbstractOperationMeasurementsGroupedTableModel<R extends OperationMeasurementsGroupedRowModel>
42 extends AbstractDaliTableModel<R> {
43
44 private boolean readOnly;
45
46
47
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
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
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
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
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
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
110
111
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 }