1 package fr.ifremer.dali.ui.swing.content.manage.referential.pmfm.national;
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.referential.pmfm.PmfmDTO;
28 import fr.ifremer.dali.ui.swing.content.manage.filter.element.menu.ApplyFilterUIModel;
29 import fr.ifremer.dali.ui.swing.content.manage.referential.pmfm.menu.PmfmMenuUIModel;
30 import fr.ifremer.dali.ui.swing.content.manage.referential.pmfm.table.PmfmTableModel;
31 import fr.ifremer.dali.ui.swing.content.manage.referential.pmfm.table.PmfmTableRowModel;
32 import fr.ifremer.dali.ui.swing.util.table.AbstractDaliTableModel;
33 import fr.ifremer.dali.ui.swing.util.table.AbstractDaliTableUIHandler;
34 import fr.ifremer.dali.ui.swing.util.table.editor.AssociatedQualitativeValueCellEditor;
35 import fr.ifremer.dali.ui.swing.util.table.renderer.AssociatedQualitativeValueCellRenderer;
36 import fr.ifremer.quadrige3.ui.swing.table.SwingTable;
37 import org.jdesktop.swingx.table.TableColumnExt;
38
39 import java.util.List;
40
41 import static org.nuiton.i18n.I18n.t;
42
43
44
45
46 public class PmfmsNationalUIHandler extends
47 AbstractDaliTableUIHandler<PmfmTableRowModel, PmfmsNationalUIModel, PmfmsNationalUI> {
48
49
50 @Override
51 public void beforeInit(PmfmsNationalUI ui) {
52 super.beforeInit(ui);
53
54
55 PmfmsNationalUIModel model = new PmfmsNationalUIModel();
56 ui.setContextValue(model);
57
58 }
59
60
61 @Override
62 @SuppressWarnings("unchecked")
63 public void afterInit(PmfmsNationalUI ui) {
64 initUI(ui);
65
66
67 ui.getPmfmsNationalMenuUI().getHandler().enableContextFilter(false);
68
69
70 ui.getPmfmsNationalMenuUI().getModel().addPropertyChangeListener(PmfmMenuUIModel.PROPERTY_RESULTS,
71 evt -> getModel().setBeans((List<PmfmDTO>) evt.getNewValue()));
72
73
74 ui.getPmfmsNationalMenuUI().getApplyFilterUI().getModel().addPropertyChangeListener(ApplyFilterUIModel.PROPERTY_ELEMENTS,
75 evt -> getModel().setBeans((List<PmfmDTO>) evt.getNewValue()));
76
77 initTable();
78
79 }
80
81 private void initTable() {
82
83
84 final SwingTable table = getTable();
85
86 TableColumnExt idCol = addColumn(PmfmTableModel.PMFM_ID);
87 idCol.setSortable(true);
88 idCol.setEditable(false);
89
90
91 TableColumnExt nameCol = addColumn(PmfmTableModel.NAME);
92 nameCol.setSortable(true);
93 nameCol.setEditable(false);
94
95
96
97 TableColumnExt parameterCol = addColumn(
98 null,
99 newTableCellRender(
100 PmfmTableModel.PARAMETER.getPropertyType(),
101 PmfmTableModel.PARAMETER.getDecoratorName(),
102 DecoratorService.NAME
103 ),
104 PmfmTableModel.PARAMETER);
105 parameterCol.setSortable(true);
106 parameterCol.setEditable(false);
107
108
109 final TableColumnExt supportCol = addColumn(PmfmTableModel.SUPPORT);
110 supportCol.setSortable(true);
111 supportCol.setEditable(false);
112
113
114 final TableColumnExt fractionCol = addColumn(PmfmTableModel.FRACTION);
115 fractionCol.setSortable(true);
116 fractionCol.setEditable(false);
117
118
119 final TableColumnExt methodCol = addColumn(PmfmTableModel.METHOD);
120 methodCol.setSortable(true);
121 methodCol.setEditable(false);
122
123
124 final TableColumnExt unitCol = addColumn(PmfmTableModel.UNIT);
125 unitCol.setSortable(true);
126 unitCol.setEditable(false);
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144 addCommentColumn(PmfmTableModel.COMMENT, false);
145 TableColumnExt creationDateCol = addDatePickerColumnToModel(PmfmTableModel.CREATION_DATE, getConfig().getDateTimeFormat(), false);
146 fixColumnWidth(creationDateCol, 120);
147 TableColumnExt updateDateCol = addDatePickerColumnToModel(PmfmTableModel.UPDATE_DATE, getConfig().getDateTimeFormat(), false);
148 fixColumnWidth(updateDateCol, 120);
149
150
151 final TableColumnExt statusCol = addColumn(PmfmTableModel.STATUS);
152 statusCol.setSortable(true);
153 statusCol.setEditable(false);
154 fixDefaultColumnWidth(statusCol);
155
156
157 final TableColumnExt associatedQualitativeValueCol = addColumn(
158 new AssociatedQualitativeValueCellEditor(getTable(), getUI(), false),
159 new AssociatedQualitativeValueCellRenderer(),
160 PmfmTableModel.QUALITATIVE_VALUES);
161 associatedQualitativeValueCol.setSortable(true);
162 fixColumnWidth(associatedQualitativeValueCol, 120);
163
164 PmfmTableModel tableModel = new PmfmTableModel(getTable().getColumnModel());
165 table.setModel(tableModel);
166
167 addExportToCSVAction(t("dali.property.pmfm"), PmfmTableModel.QUALITATIVE_VALUES);
168
169
170 initTable(table, true);
171
172
173 associatedQualitativeValueCol.setVisible(false);
174 idCol.setVisible(false);
175
176
177
178
179 creationDateCol.setVisible(false);
180 updateDateCol.setVisible(false);
181
182 table.setVisibleRowCount(5);
183 }
184
185
186
187
188 @Override
189 public AbstractDaliTableModel<PmfmTableRowModel> getTableModel() {
190 return (PmfmTableModel) getTable().getModel();
191 }
192
193
194 @Override
195 public SwingTable getTable() {
196 return ui.getPmfmsNationalTable();
197 }
198
199 }