1 package fr.ifremer.dali.ui.swing.content.manage.referential.unit.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.UnitDTO;
27 import fr.ifremer.dali.service.StatusFilter;
28 import fr.ifremer.dali.ui.swing.content.manage.referential.unit.menu.ReferentialUnitsMenuUIModel;
29 import fr.ifremer.dali.ui.swing.content.manage.referential.unit.table.UnitTableModel;
30 import fr.ifremer.dali.ui.swing.content.manage.referential.unit.table.UnitTableRowModel;
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 ReferentialUnitsNationalUIHandler extends
44 AbstractDaliTableUIHandler<UnitTableRowModel, ReferentialUnitsNationalUIModel, ReferentialUnitsNationalUI> {
45
46
47 @Override
48 public void beforeInit(ReferentialUnitsNationalUI ui) {
49 super.beforeInit(ui);
50
51
52 ReferentialUnitsNationalUIModel model = new ReferentialUnitsNationalUIModel();
53 ui.setContextValue(model);
54
55 }
56
57
58 @Override
59 @SuppressWarnings("unchecked")
60 public void afterInit(ReferentialUnitsNationalUI ui) {
61 initUI(ui);
62
63 ReferentialUnitsMenuUIModel menuUIModel = getUI().getMenuUI().getModel();
64
65 menuUIModel.addPropertyChangeListener(ReferentialUnitsMenuUIModel.PROPERTY_RESULTS, evt -> getModel().setBeans((Collection<UnitDTO>) evt.getNewValue()));
66
67 initTable();
68 }
69
70 private void initTable() {
71
72
73 final SwingTable table = getTable();
74
75
76 final TableColumnExt mnemonicCol = addColumn(
77 UnitTableModel.NAME);
78 mnemonicCol.setSortable(true);
79
80
81 final TableColumnExt symbolCol = addColumn(
82 UnitTableModel.SYMBOL);
83 symbolCol.setSortable(true);
84
85
86 addCommentColumn(UnitTableModel.COMMENT, false);
87 TableColumnExt creationDateCol = addDatePickerColumnToModel(UnitTableModel.CREATION_DATE, getConfig().getDateTimeFormat(), false);
88 fixColumnWidth(creationDateCol, 120);
89 TableColumnExt updateDateCol = addDatePickerColumnToModel(UnitTableModel.UPDATE_DATE, getConfig().getDateTimeFormat(), false);
90 fixColumnWidth(updateDateCol, 120);
91
92
93 final TableColumnExt statusCol = addFilterableComboDataColumnToModel(
94 UnitTableModel.STATUS,
95 getContext().getReferentialService().getStatus(StatusFilter.ACTIVE),
96 false);
97 statusCol.setSortable(true);
98
99 final UnitTableModel tableModel = new UnitTableModel(getTable().getColumnModel(), false);
100 table.setModel(tableModel);
101
102
103 tableModel.setNoneEditableCols(
104 UnitTableModel.NAME,
105 UnitTableModel.SYMBOL,
106 UnitTableModel.STATUS);
107
108 addExportToCSVAction(t("dali.property.unit"));
109
110
111 initTable(table, true);
112
113 creationDateCol.setVisible(false);
114 updateDateCol.setVisible(false);
115
116 table.setVisibleRowCount(5);
117 }
118
119
120 @Override
121 public AbstractDaliTableModel<UnitTableRowModel> getTableModel() {
122 return (UnitTableModel) getTable().getModel();
123 }
124
125
126 @Override
127 public SwingTable getTable() {
128 return ui.getReferentialUnitsNationalTable();
129 }
130
131 }