1 package fr.ifremer.dali.ui.swing.content.manage.referential.analysisinstruments.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.AnalysisInstrumentDTO;
27 import fr.ifremer.dali.service.StatusFilter;
28 import fr.ifremer.dali.ui.swing.content.manage.filter.element.menu.ApplyFilterUIModel;
29 import fr.ifremer.dali.ui.swing.content.manage.referential.analysisinstruments.menu.AnalysisInstrumentsMenuUIModel;
30 import fr.ifremer.dali.ui.swing.content.manage.referential.analysisinstruments.table.AnalysisInstrumentsTableModel;
31 import fr.ifremer.dali.ui.swing.content.manage.referential.analysisinstruments.table.AnalysisInstrumentsTableRowModel;
32 import fr.ifremer.dali.ui.swing.util.table.AbstractDaliTableModel;
33 import fr.ifremer.dali.ui.swing.util.table.AbstractDaliTableUIHandler;
34 import fr.ifremer.quadrige3.ui.swing.table.SwingTable;
35 import org.jdesktop.swingx.table.TableColumnExt;
36
37 import java.util.List;
38
39 import static org.nuiton.i18n.I18n.t;
40
41
42
43
44 public class AnalysisInstrumentsNationalUIHandler extends AbstractDaliTableUIHandler<AnalysisInstrumentsTableRowModel, AnalysisInstrumentsNationalUIModel, AnalysisInstrumentsNationalUI> {
45
46
47 @Override
48 public void beforeInit(AnalysisInstrumentsNationalUI ui) {
49 super.beforeInit(ui);
50
51
52 AnalysisInstrumentsNationalUIModel model = new AnalysisInstrumentsNationalUIModel();
53 ui.setContextValue(model);
54
55 }
56
57
58 @Override
59 @SuppressWarnings("unchecked")
60 public void afterInit(AnalysisInstrumentsNationalUI ui) {
61 initUI(ui);
62
63
64 ui.getAnalysisInstrumentsNationalMenuUI().getModel().addPropertyChangeListener(AnalysisInstrumentsMenuUIModel.PROPERTY_RESULTS, evt -> {
65
66 if (evt.getNewValue() != null) {
67 getModel().setBeans((List<AnalysisInstrumentDTO>) evt.getNewValue());
68 }
69 });
70
71
72 ui.getAnalysisInstrumentsNationalMenuUI().getApplyFilterUI().getModel().addPropertyChangeListener(ApplyFilterUIModel.PROPERTY_ELEMENTS,
73 evt -> getModel().setBeans((List<AnalysisInstrumentDTO>) evt.getNewValue()));
74
75 initTable();
76
77 }
78
79 private void initTable() {
80
81
82 final SwingTable table = getTable();
83
84
85 TableColumnExt mnemonicCol = addColumn(AnalysisInstrumentsTableModel.NAME);
86 mnemonicCol.setSortable(true);
87 mnemonicCol.setEditable(false);
88
89
90 TableColumnExt descriptionCol = addColumn(AnalysisInstrumentsTableModel.DESCRIPTION);
91 descriptionCol.setSortable(true);
92 descriptionCol.setEditable(false);
93
94
95 addCommentColumn(AnalysisInstrumentsTableModel.COMMENT, false);
96 TableColumnExt creationDateCol = addDatePickerColumnToModel(AnalysisInstrumentsTableModel.CREATION_DATE, getConfig().getDateTimeFormat(), false);
97 fixColumnWidth(creationDateCol, 120);
98 TableColumnExt updateDateCol = addDatePickerColumnToModel(AnalysisInstrumentsTableModel.UPDATE_DATE, getConfig().getDateTimeFormat(), false);
99 fixColumnWidth(updateDateCol, 120);
100
101
102 TableColumnExt statusCol = addFilterableComboDataColumnToModel(
103 AnalysisInstrumentsTableModel.STATUS,
104 getContext().getReferentialService().getStatus(StatusFilter.ACTIVE),
105 false);
106 statusCol.setSortable(true);
107 statusCol.setEditable(false);
108
109 AnalysisInstrumentsTableModel tableModel = new AnalysisInstrumentsTableModel(getTable().getColumnModel(), false);
110 table.setModel(tableModel);
111
112 addExportToCSVAction(t("dali.property.analysisInstrument"));
113
114
115 initTable(table, true);
116
117 creationDateCol.setVisible(false);
118 updateDateCol.setVisible(false);
119
120
121 table.setVisibleRowCount(5);
122 }
123
124
125
126
127 public void clearTable() {
128 getModel().setBeans(null);
129 }
130
131
132 @Override
133 public AbstractDaliTableModel<AnalysisInstrumentsTableRowModel> getTableModel() {
134 return (AnalysisInstrumentsTableModel) getTable().getModel();
135 }
136
137
138 @Override
139 public SwingTable getTable() {
140 return getUI().getAnalysisInstrumentsNationalTable();
141 }
142 }