1 package fr.ifremer.dali.ui.swing.content.manage.referential.department.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.DepartmentDTO;
27 import fr.ifremer.dali.service.StatusFilter;
28 import fr.ifremer.dali.ui.swing.content.manage.referential.department.menu.DepartmentMenuUIModel;
29 import fr.ifremer.dali.ui.swing.content.manage.referential.department.table.DepartmentRowModel;
30 import fr.ifremer.dali.ui.swing.content.manage.referential.department.table.DepartmentTableModel;
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.List;
37
38 import static org.nuiton.i18n.I18n.t;
39
40
41
42
43 public class ManageDepartmentsNationalUIHandler extends AbstractDaliTableUIHandler<DepartmentRowModel, ManageDepartmentsNationalUIModel, ManageDepartmentsNationalUI> {
44
45
46 @Override
47 public void beforeInit(ManageDepartmentsNationalUI ui) {
48 super.beforeInit(ui);
49
50
51 ManageDepartmentsNationalUIModel model = new ManageDepartmentsNationalUIModel();
52 ui.setContextValue(model);
53
54 }
55
56
57 @Override
58 @SuppressWarnings("unchecked")
59 public void afterInit(ManageDepartmentsNationalUI ui) {
60 initUI(ui);
61
62
63 ui.getDepartmentMenuUI().getHandler().enableContextFilter(false);
64
65
66 ui.getDepartmentMenuUI().getModel().addPropertyChangeListener(DepartmentMenuUIModel.PROPERTY_RESULTS, evt -> getModel().setBeans((List<DepartmentDTO>) evt.getNewValue()));
67
68 initTable();
69
70 }
71
72 private void initTable() {
73
74
75 final SwingTable table = getTable();
76
77
78 TableColumnExt codeCol = addColumn(DepartmentTableModel.CODE);
79 codeCol.setSortable(true);
80 codeCol.setEditable(false);
81
82
83 TableColumnExt nameCol = addColumn(DepartmentTableModel.NAME);
84 nameCol.setSortable(true);
85 nameCol.setEditable(false);
86
87
88 TableColumnExt descCol = addColumn(DepartmentTableModel.DESCRIPTION);
89 descCol.setSortable(true);
90 descCol.setEditable(false);
91
92
93 TableColumnExt parentCol = addFilterableComboDataColumnToModel(
94 DepartmentTableModel.PARENT_DEPARTMENT,
95 getContext().getReferentialService().getDepartments(StatusFilter.ALL),
96 true);
97 parentCol.setSortable(true);
98 parentCol.setEditable(false);
99
100
101 TableColumnExt emailCol = addColumn(DepartmentTableModel.EMAIL);
102 emailCol.setSortable(true);
103 emailCol.setEditable(false);
104
105
106 TableColumnExt phoneCol = addColumn(DepartmentTableModel.PHONE);
107 phoneCol.setSortable(true);
108 phoneCol.setEditable(false);
109
110
111 TableColumnExt statusCol = addFilterableComboDataColumnToModel(
112 DepartmentTableModel.STATUS,
113 getContext().getReferentialService().getStatus(StatusFilter.ALL),
114 false);
115 statusCol.setSortable(true);
116 statusCol.setEditable(false);
117
118
119 TableColumnExt addressCol = addColumn(DepartmentTableModel.ADDRESS);
120 addressCol.setSortable(true);
121 addressCol.setEditable(false);
122
123
124 addCommentColumn(DepartmentTableModel.COMMENT, false);
125 TableColumnExt creationDateCol = addDatePickerColumnToModel(DepartmentTableModel.CREATION_DATE, getConfig().getDateTimeFormat(), false);
126 fixColumnWidth(creationDateCol, 120);
127 TableColumnExt updateDateCol = addDatePickerColumnToModel(DepartmentTableModel.UPDATE_DATE, getConfig().getDateTimeFormat(), false);
128 fixColumnWidth(updateDateCol, 120);
129
130
131 DepartmentTableModel tableModel = new DepartmentTableModel(getTable().getColumnModel(), false);
132 table.setModel(tableModel);
133
134 addExportToCSVAction(t("dali.property.department"));
135
136
137 initTable(table, true);
138
139 creationDateCol.setVisible(false);
140 updateDateCol.setVisible(false);
141
142
143 addressCol.setVisible(false);
144
145 table.setVisibleRowCount(5);
146 }
147
148
149 @Override
150 public AbstractDaliTableModel<DepartmentRowModel> getTableModel() {
151 return (DepartmentTableModel) getTable().getModel();
152 }
153
154
155 @Override
156 public SwingTable getTable() {
157 return getUI().getDepartmentsNationalTable();
158 }
159 }