1 package fr.ifremer.dali.ui.swing.content.manage.referential.location.table;
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.dto.referential.HarbourDTO;
27 import fr.ifremer.dali.dto.referential.PositioningSystemDTO;
28 import fr.ifremer.dali.ui.swing.util.table.AbstractDaliTableModel;
29 import fr.ifremer.dali.ui.swing.util.table.DaliColumnIdentifier;
30 import fr.ifremer.quadrige3.ui.core.dto.referential.StatusDTO;
31 import fr.ifremer.quadrige3.ui.swing.table.SwingTableColumnModel;
32
33 import java.util.Date;
34
35 import static org.nuiton.i18n.I18n.n;
36
37
38
39
40
41
42 public class LocationTableModel extends AbstractDaliTableModel<LocationTableRowModel> {
43
44 private final boolean readOnly;
45
46
47 public static final DaliColumnIdentifier<LocationTableRowModel> ID = DaliColumnIdentifier.newId(
48 LocationTableRowModel.PROPERTY_ID,
49 n("dali.property.id"),
50 n("dali.property.id.tip"),
51 Integer.class);
52
53
54 public static final DaliColumnIdentifier<LocationTableRowModel> LABEL = DaliColumnIdentifier.newId(
55 LocationTableRowModel.PROPERTY_LABEL,
56 n("dali.property.label"),
57 n("dali.property.label"),
58 String.class);
59
60
61 public static final DaliColumnIdentifier<LocationTableRowModel> NAME = DaliColumnIdentifier.newId(
62 LocationTableRowModel.PROPERTY_NAME,
63 n("dali.property.name"),
64 n("dali.property.name"),
65 String.class,
66 true);
67
68
69 public static final DaliColumnIdentifier<LocationTableRowModel> BATHYMETRIE = DaliColumnIdentifier.newId(
70 LocationTableRowModel.PROPERTY_BATHYMETRY,
71 n("dali.property.location.bathymetry"),
72 n("dali.property.location.bathymetry"),
73 Double.class);
74
75
76 public static final DaliColumnIdentifier<LocationTableRowModel> LATITUDE_MIN = DaliColumnIdentifier.newId(
77 LocationTableRowModel.PROPERTY_MIN_LATITUDE,
78 n("dali.property.location.latitude.min"),
79 n("dali.property.location.latitude.min"),
80 Double.class,
81 true);
82
83
84 public static final DaliColumnIdentifier<LocationTableRowModel> LONGITUDE_MIN = DaliColumnIdentifier.newId(
85 LocationTableRowModel.PROPERTY_MIN_LONGITUDE,
86 n("dali.property.location.longitude.min"),
87 n("dali.property.location.longitude.min"),
88 Double.class,
89 true);
90
91
92 public static final DaliColumnIdentifier<LocationTableRowModel> COMMENT = DaliColumnIdentifier.newId(
93 LocationTableRowModel.PROPERTY_COMMENT,
94 n("dali.property.comment"),
95 n("dali.property.comment"),
96 String.class);
97
98
99 public static final DaliColumnIdentifier<LocationTableRowModel> HARBOUR = DaliColumnIdentifier.newId(
100 LocationTableRowModel.PROPERTY_HARBOUR,
101 n("dali.property.location.harbour"),
102 n("dali.property.location.harbour"),
103 HarbourDTO.class);
104
105
106 public static final DaliColumnIdentifier<LocationTableRowModel> DELTA_UT_HIVER = DaliColumnIdentifier.newId(
107 LocationTableRowModel.PROPERTY_UT_FORMAT,
108 n("dali.property.location.deltaUT"),
109 n("dali.property.location.deltaUT"),
110 Double.class);
111
112
113 public static final DaliColumnIdentifier<LocationTableRowModel> DAYLIGHT_SAVING_TIME = DaliColumnIdentifier.newId(
114 LocationTableRowModel.PROPERTY_DAY_LIGHT_SAVING_TIME,
115 n("dali.property.location.daylightSavingTime"),
116 n("dali.property.location.daylightSavingTime"),
117 Boolean.class);
118
119
120 public static final DaliColumnIdentifier<LocationTableRowModel> LATITUDE_MAX = DaliColumnIdentifier.newId(
121 LocationTableRowModel.PROPERTY_MAX_LATITUDE,
122 n("dali.property.location.latitude.max"),
123 n("dali.property.location.latitude.max"),
124 Double.class);
125
126
127 public static final DaliColumnIdentifier<LocationTableRowModel> LONGITUDE_MAX = DaliColumnIdentifier.newId(
128 LocationTableRowModel.PROPERTY_MAX_LONGITUDE,
129 n("dali.property.location.longitude.max"),
130 n("dali.property.location.longitude.max"),
131 Double.class);
132
133
134 public static final DaliColumnIdentifier<LocationTableRowModel> POSITIONING_NAME = DaliColumnIdentifier.newId(
135 LocationTableRowModel.PROPERTY_POSITIONING,
136 n("dali.property.location.positioning.name"),
137 n("dali.property.location.positioning.name"),
138 PositioningSystemDTO.class,
139 true);
140
141
142 public static final DaliColumnIdentifier<LocationTableRowModel> POSITIONING_PRECISION = DaliColumnIdentifier.newId(
143 LocationTableRowModel.PROPERTY_POSITIONING_PRECISION,
144 n("dali.property.location.positioning.precision"),
145 n("dali.property.location.positioning.precision"),
146 String.class,
147 true);
148
149
150
151
152
153
154
155
156
157
158
159
160
161 public static final DaliColumnIdentifier<LocationTableRowModel> CREATION_DATE = DaliColumnIdentifier.newReadOnlyId(
162 LocationTableRowModel.PROPERTY_CREATION_DATE,
163 n("dali.property.date.creation"),
164 n("dali.property.date.creation"),
165 Date.class);
166
167 public static final DaliColumnIdentifier<LocationTableRowModel> UPDATE_DATE = DaliColumnIdentifier.newReadOnlyId(
168 LocationTableRowModel.PROPERTY_UPDATE_DATE,
169 n("dali.property.date.modification"),
170 n("dali.property.date.modification"),
171 Date.class);
172
173 public static final DaliColumnIdentifier<LocationTableRowModel> STATUS = DaliColumnIdentifier.newId(
174 LocationTableRowModel.PROPERTY_STATUS,
175 n("dali.property.status"),
176 n("dali.property.status"),
177 StatusDTO.class, true);
178
179
180
181
182
183
184 public LocationTableModel(final SwingTableColumnModel columnModel, boolean createNewRowAllowed) {
185 super(columnModel, createNewRowAllowed, false);
186 this.readOnly = !createNewRowAllowed;
187 }
188
189
190 @Override
191 public LocationTableRowModel createNewRow() {
192 return new LocationTableRowModel(readOnly);
193 }
194
195
196 @Override
197 public DaliColumnIdentifier<LocationTableRowModel> getFirstColumnEditing() {
198 return LABEL;
199 }
200 }