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