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