1 package fr.ifremer.dali.ui.swing.content.manage.referential.taxongroup.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.TaxonGroupDTO;
27 import fr.ifremer.dali.service.StatusFilter;
28 import fr.ifremer.dali.ui.swing.content.manage.filter.element.menu.ApplyFilterUIModel;
29 import fr.ifremer.dali.ui.swing.content.manage.referential.taxongroup.menu.TaxonGroupMenuUIModel;
30 import fr.ifremer.dali.ui.swing.content.manage.referential.taxongroup.table.TaxonGroupTableModel;
31 import fr.ifremer.dali.ui.swing.content.manage.referential.taxongroup.table.TaxonGroupTableRowModel;
32 import fr.ifremer.dali.ui.swing.util.table.AbstractDaliTableModel;
33 import fr.ifremer.dali.ui.swing.util.table.AbstractDaliTableUIHandler;
34 import fr.ifremer.dali.ui.swing.util.table.editor.AssociatedTaxonCellEditor;
35 import fr.ifremer.dali.ui.swing.util.table.renderer.AssociatedTaxonCellRenderer;
36 import fr.ifremer.quadrige3.ui.swing.table.SwingTable;
37 import org.jdesktop.swingx.table.TableColumnExt;
38
39 import java.util.List;
40
41 import static org.nuiton.i18n.I18n.t;
42
43
44
45
46 public class TaxonGroupNationalUIHandler extends
47 AbstractDaliTableUIHandler<TaxonGroupTableRowModel, TaxonGroupNationalUIModel, TaxonGroupNationalUI> {
48
49
50 @Override
51 public void beforeInit(TaxonGroupNationalUI ui) {
52 super.beforeInit(ui);
53
54
55 TaxonGroupNationalUIModel model = new TaxonGroupNationalUIModel();
56 ui.setContextValue(model);
57
58 }
59
60
61 @Override
62 @SuppressWarnings("unchecked")
63 public void afterInit(TaxonGroupNationalUI ui) {
64 initUI(ui);
65
66
67 ui.getTaxonGroupNationalMenuUI().getModel().addPropertyChangeListener(TaxonGroupMenuUIModel.PROPERTY_RESULTS,
68 evt -> getModel().setBeans((List<TaxonGroupDTO>) evt.getNewValue()));
69
70
71 ui.getTaxonGroupNationalMenuUI().getApplyFilterUI().getModel().addPropertyChangeListener(ApplyFilterUIModel.PROPERTY_ELEMENTS,
72 evt -> getModel().setBeans((List<TaxonGroupDTO>) evt.getNewValue()));
73
74 initTable();
75
76 }
77
78 private void initTable() {
79
80
81 final SwingTable table = getTable();
82
83
84 TableColumnExt parentCol = addFilterableComboDataColumnToModel(
85 TaxonGroupTableModel.PARENT,
86 getContext().getReferentialService().getTaxonGroups(),
87 true);
88 parentCol.setSortable(true);
89 parentCol.setEditable(false);
90
91
92 TableColumnExt labelCol = addColumn(TaxonGroupTableModel.LABEL);
93 labelCol.setSortable(true);
94 labelCol.setEditable(false);
95
96
97 TableColumnExt nameCol = addColumn(TaxonGroupTableModel.NAME);
98 nameCol.setSortable(true);
99 nameCol.setEditable(false);
100
101
102 TableColumnExt statusCol = addFilterableComboDataColumnToModel(
103 TaxonGroupTableModel.STATUS,
104 getContext().getReferentialService().getStatus(StatusFilter.ALL),
105 false);
106 statusCol.setSortable(true);
107 statusCol.setEditable(false);
108
109
110 TableColumnExt typeCol = addColumn(TaxonGroupTableModel.TYPE);
111 typeCol.setSortable(true);
112 typeCol.setEditable(false);
113
114
115 TableColumnExt commentCol = addCommentColumn(TaxonGroupTableModel.COMMENT, false);
116 TableColumnExt creationDateCol = addDatePickerColumnToModel(TaxonGroupTableModel.CREATION_DATE, getConfig().getDateTimeFormat(), false);
117 fixColumnWidth(creationDateCol, 120);
118 TableColumnExt updateDateCol = addDatePickerColumnToModel(TaxonGroupTableModel.UPDATE_DATE, getConfig().getDateTimeFormat(), false);
119 fixColumnWidth(updateDateCol, 120);
120
121
122 TableColumnExt taxonsCol = addColumn(
123 new AssociatedTaxonCellEditor(getTable(), getUI()),
124 new AssociatedTaxonCellRenderer(),
125 TaxonGroupTableModel.TAXONS
126 );
127 taxonsCol.setSortable(true);
128
129 TaxonGroupTableModel tableModel = new TaxonGroupTableModel(getTable().getColumnModel(), true);
130 table.setModel(tableModel);
131
132 addExportToCSVAction(t("dali.property.taxonGroup"), TaxonGroupTableModel.TAXONS);
133
134
135 initTable(table, true);
136
137
138 typeCol.setVisible(false);
139 commentCol.setVisible(false);
140 taxonsCol.setVisible(false);
141
142 creationDateCol.setVisible(false);
143 updateDateCol.setVisible(false);
144
145
146 table.setVisibleRowCount(5);
147 }
148
149
150
151 @Override
152 public AbstractDaliTableModel<TaxonGroupTableRowModel> getTableModel() {
153 return (TaxonGroupTableModel) getTable().getModel();
154 }
155
156
157 @Override
158 public SwingTable getTable() {
159 return ui.getTaxonGroupNationalTable();
160 }
161
162
163 }