1 package fr.ifremer.dali.ui.swing.content.manage.program.strategiesByLocation.strategies;
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.decorator.DecoratorService;
27 import fr.ifremer.dali.dto.configuration.programStrategy.ProgramDTO;
28 import fr.ifremer.dali.dto.referential.LocationDTO;
29 import fr.ifremer.dali.ui.swing.util.table.AbstractDaliTableModel;
30 import fr.ifremer.dali.ui.swing.util.table.AbstractDaliTableUIHandler;
31 import fr.ifremer.quadrige3.ui.swing.table.SwingTable;
32 import org.jdesktop.swingx.table.TableColumnExt;
33
34 import javax.swing.BorderFactory;
35 import javax.swing.SortOrder;
36
37 import static org.nuiton.i18n.I18n.t;
38
39
40
41
42 public class StrategiesLieuTableUIHandler extends AbstractDaliTableUIHandler<StrategiesLieuTableRowModel, StrategiesLieuTableUIModel, StrategiesLieuTableUI> {
43
44
45 @Override
46 public AbstractDaliTableModel<StrategiesLieuTableRowModel> getTableModel() {
47 return (StrategiesLieuTableModel) getTable().getModel();
48 }
49
50
51 @Override
52 public SwingTable getTable() {
53 return getUI().getTableau();
54 }
55
56
57 @Override
58 public void beforeInit(final StrategiesLieuTableUI ui) {
59 super.beforeInit(ui);
60
61
62 final StrategiesLieuTableUIModel model = new StrategiesLieuTableUIModel();
63 ui.setContextValue(model);
64 }
65
66
67 @Override
68 public void afterInit(StrategiesLieuTableUI ui) {
69
70
71 initUI(ui);
72
73
74 initialiserTableau();
75 }
76
77
78
79
80
81
82 public void load(final LocationDTO lieu) {
83
84
85 getModel().setBeans(getContext().getProgramStrategyService().getStrategyUsageByLocationId(lieu.getId()));
86
87
88 getUI().setBorder(BorderFactory.createTitledBorder(
89 t("dali.program.strategies.strategy.title", lieu.getName())));
90 }
91
92
93
94
95 private void initialiserTableau() {
96
97
98 final SwingTable table = getTable();
99
100
101 final TableColumnExt colonneProgramme = addColumn(
102 null,
103 newTableCellRender(ProgramDTO.class, DecoratorService.CODE),
104 StrategiesLieuTableModel.PROGRAM);
105 colonneProgramme.setSortable(true);
106 colonneProgramme.setMinWidth(200);
107
108
109
110
111
112
113
114
115 final TableColumnExt colonneLibelle = addColumn(
116 StrategiesLieuTableModel.NAME);
117 colonneLibelle.setSortable(true);
118 colonneLibelle.setMinWidth(200);
119
120
121 final TableColumnExt colonneStartDate = addLocalDatePickerColumnToModel(
122 StrategiesLieuTableModel.START_DATE, getConfig().getDateFormat(), false);
123 colonneStartDate.setSortable(true);
124 colonneStartDate.setMinWidth(100);
125
126
127 final TableColumnExt colonneEndDate = addLocalDatePickerColumnToModel(
128 StrategiesLieuTableModel.END_DATE, getConfig().getDateFormat(), false);
129 colonneEndDate.setSortable(true);
130 colonneEndDate.setMinWidth(100);
131
132
133 final StrategiesLieuTableModel tableModel = new StrategiesLieuTableModel(getTable().getColumnModel());
134 table.setModel(tableModel);
135
136
137 table.setEditable(false);
138
139
140 initTable(table, true);
141
142
143 table.setSortOrder(StrategiesLieuTableModel.PROGRAM, SortOrder.ASCENDING);
144
145
146 colonneProgramme.setHideable(false);
147
148 colonneLibelle.setHideable(false);
149 colonneStartDate.setHideable(false);
150 colonneEndDate.setHideable(false);
151 }
152 }