1 package fr.ifremer.dali.ui.swing.content.manage.referential.pmfm.parameter.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.dto.referential.pmfm.ParameterDTO;
27 import fr.ifremer.dali.service.StatusFilter;
28 import fr.ifremer.dali.ui.swing.content.manage.referential.pmfm.parameter.menu.ManageParametersMenuUIModel;
29 import fr.ifremer.dali.ui.swing.content.manage.referential.pmfm.parameter.table.ParameterTableModel;
30 import fr.ifremer.dali.ui.swing.content.manage.referential.pmfm.parameter.table.ParameterTableRowModel;
31 import fr.ifremer.dali.ui.swing.util.table.AbstractDaliTableModel;
32 import fr.ifremer.dali.ui.swing.util.table.AbstractDaliTableUIHandler;
33 import fr.ifremer.dali.ui.swing.util.table.editor.AssociatedQualitativeValueCellEditor;
34 import fr.ifremer.dali.ui.swing.util.table.renderer.AssociatedQualitativeValueCellRenderer;
35 import fr.ifremer.quadrige3.ui.swing.table.SwingTable;
36 import org.jdesktop.swingx.table.TableColumnExt;
37
38 import java.util.Collection;
39
40 import static org.nuiton.i18n.I18n.t;
41
42
43
44
45 public class ManageParametersNationalUIHandler extends
46 AbstractDaliTableUIHandler<ParameterTableRowModel, ManageParametersNationalUIModel, ManageParametersNationalUI> {
47
48
49 @Override
50 public void beforeInit(ManageParametersNationalUI ui) {
51 super.beforeInit(ui);
52
53
54 ManageParametersNationalUIModel model = new ManageParametersNationalUIModel();
55 ui.setContextValue(model);
56
57 }
58
59
60 @Override
61 @SuppressWarnings("unchecked")
62 public void afterInit(ManageParametersNationalUI ui) {
63 initUI(ui);
64
65 ManageParametersMenuUIModel menuUIModel = getUI().getMenuUI().getModel();
66
67
68 menuUIModel.addPropertyChangeListener(ManageParametersMenuUIModel.PROPERTY_RESULTS, evt -> getModel().setBeans((Collection<ParameterDTO>) evt.getNewValue()));
69
70 initTable();
71
72 }
73
74 private void initTable() {
75
76
77 final SwingTable table = getTable();
78
79
80 final TableColumnExt codeCol = addColumn(ParameterTableModel.CODE);
81 codeCol.setSortable(true);
82 codeCol.setEditable(false);
83
84
85 final TableColumnExt mnemonicCol = addColumn(ParameterTableModel.NAME);
86 mnemonicCol.setSortable(true);
87 mnemonicCol.setEditable(false);
88
89
90 final TableColumnExt descriptionCol = addColumn(ParameterTableModel.DESCRIPTION);
91 descriptionCol.setSortable(true);
92 descriptionCol.setEditable(false);
93
94
95 final TableColumnExt qualitativeCol = addBooleanColumnToModel(ParameterTableModel.IS_QUALITATIVE, table);
96 qualitativeCol.setSortable(true);
97 qualitativeCol.setEditable(false);
98
99
100 final TableColumnExt calculatedCol = addBooleanColumnToModel(ParameterTableModel.IS_CALCULATED, table);
101 calculatedCol.setSortable(true);
102 calculatedCol.setEditable(false);
103
104
105 final TableColumnExt taxonomicCol = addBooleanColumnToModel(ParameterTableModel.IS_TAXONOMIC, table);
106 taxonomicCol.setSortable(true);
107 taxonomicCol.setEditable(false);
108
109
110 final TableColumnExt associatedQualitativeValueCol = addColumn(
111 new AssociatedQualitativeValueCellEditor(getTable(), getUI(), false),
112 new AssociatedQualitativeValueCellRenderer(),
113 ParameterTableModel.ASSOCIATED_QUALITATIVE_VALUE);
114 associatedQualitativeValueCol.setSortable(true);
115
116
117 addCommentColumn(ParameterTableModel.COMMENT, false);
118 TableColumnExt creationDateCol = addDatePickerColumnToModel(ParameterTableModel.CREATION_DATE, getConfig().getDateTimeFormat(), false);
119 fixColumnWidth(creationDateCol, 120);
120 TableColumnExt updateDateCol = addDatePickerColumnToModel(ParameterTableModel.UPDATE_DATE, getConfig().getDateTimeFormat(), false);
121 fixColumnWidth(updateDateCol, 120);
122
123
124 final TableColumnExt statusCol = addFilterableComboDataColumnToModel(
125 ParameterTableModel.STATUS,
126 getContext().getReferentialService().getStatus(StatusFilter.ALL),
127 false);
128 statusCol.setSortable(true);
129 statusCol.setEditable(false);
130 fixDefaultColumnWidth(statusCol);
131
132
133 final TableColumnExt parameterGroupCol = addFilterableComboDataColumnToModel(
134 ParameterTableModel.PARAMETER_GROUP,
135 getContext().getReferentialService().getParameterGroup(StatusFilter.ACTIVE),
136 false);
137 parameterGroupCol.setSortable(true);
138 parameterGroupCol.setEditable(false);
139
140 ParameterTableModel tableModel = new ParameterTableModel(getTable().getColumnModel(), false);
141 table.setModel(tableModel);
142
143 addExportToCSVAction(t("dali.property.pmfm.parameter"), ParameterTableModel.ASSOCIATED_QUALITATIVE_VALUE);
144
145
146 initTable(table, true);
147
148
149 parameterGroupCol.setVisible(false);
150
151 creationDateCol.setVisible(false);
152 updateDateCol.setVisible(false);
153
154 table.setVisibleRowCount(5);
155 }
156
157
158 @Override
159 public AbstractDaliTableModel<ParameterTableRowModel> getTableModel() {
160 return (ParameterTableModel) getTable().getModel();
161 }
162
163
164 @Override
165 public SwingTable getTable() {
166 return ui.getTable();
167 }
168
169 }