1 package fr.ifremer.dali.ui.swing.content.manage.referential.pmfm.fraction.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.FractionDTO;
27 import fr.ifremer.dali.service.StatusFilter;
28 import fr.ifremer.dali.ui.swing.content.manage.referential.pmfm.fraction.menu.ManageFractionsMenuUIModel;
29 import fr.ifremer.dali.ui.swing.content.manage.referential.pmfm.fraction.table.FractionsTableModel;
30 import fr.ifremer.dali.ui.swing.content.manage.referential.pmfm.fraction.table.FractionsTableRowModel;
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.AssociatedMatricesCellEditor;
34 import fr.ifremer.dali.ui.swing.util.table.renderer.AssociatedSupportsCellRenderer;
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 ManageFractionsNationalUIHandler extends
46 AbstractDaliTableUIHandler<FractionsTableRowModel, ManageFractionsNationalUIModel, ManageFractionsNationalUI> {
47
48
49 @Override
50 public void beforeInit(ManageFractionsNationalUI ui) {
51 super.beforeInit(ui);
52
53
54 ManageFractionsNationalUIModel model = new ManageFractionsNationalUIModel();
55 ui.setContextValue(model);
56
57 }
58
59
60 @Override
61 @SuppressWarnings("unchecked")
62 public void afterInit(ManageFractionsNationalUI ui) {
63 initUI(ui);
64
65 ManageFractionsMenuUIModel menuUIModel = getUI().getMenuUI().getModel();
66
67 menuUIModel.addPropertyChangeListener(ManageFractionsMenuUIModel.PROPERTY_RESULTS, evt -> getModel().setBeans((Collection<FractionDTO>) 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(FractionsTableModel.NAME);
80 mnemonicCol.setSortable(true);
81 mnemonicCol.setEditable(false);
82
83
84 final TableColumnExt descriptionCol = addColumn(FractionsTableModel.DESCRIPTION);
85 descriptionCol.setSortable(true);
86 descriptionCol.setEditable(false);
87
88
89 addCommentColumn(FractionsTableModel.COMMENT, false);
90 TableColumnExt creationDateCol = addDatePickerColumnToModel(FractionsTableModel.CREATION_DATE, getConfig().getDateTimeFormat(), false);
91 fixColumnWidth(creationDateCol, 120);
92 TableColumnExt updateDateCol = addDatePickerColumnToModel(FractionsTableModel.UPDATE_DATE, getConfig().getDateTimeFormat(), false);
93 fixColumnWidth(updateDateCol, 120);
94
95
96 final TableColumnExt statusCol = addFilterableComboDataColumnToModel(
97 FractionsTableModel.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 associatedSupportsCol = addColumn(
106 new AssociatedMatricesCellEditor(getTable(), getUI()),
107 new AssociatedSupportsCellRenderer(),
108 FractionsTableModel.ASSOCIATED_SUPPORTS);
109 associatedSupportsCol.setSortable(true);
110
111 FractionsTableModel tableModel = new FractionsTableModel(getTable().getColumnModel());
112 table.setModel(tableModel);
113
114 associatedSupportsCol.setVisible(false);
115
116 addExportToCSVAction(t("dali.property.pmfm.fraction"), FractionsTableModel.ASSOCIATED_SUPPORTS);
117
118
119 initTable(table, true);
120
121
122 descriptionCol.setVisible(false);
123
124 creationDateCol.setVisible(false);
125 updateDateCol.setVisible(false);
126
127 table.setVisibleRowCount(5);
128 }
129
130
131 @Override
132 public AbstractDaliTableModel<FractionsTableRowModel> getTableModel() {
133 return (FractionsTableModel) getTable().getModel();
134 }
135
136
137 @Override
138 public SwingTable getTable() {
139 return ui.getManageFractionsNationalTable();
140 }
141 }