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