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