1 package fr.ifremer.dali.ui.swing.content.manage.campaign.menu;
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.configuration.filter.FilterDTO;
27 import fr.ifremer.dali.dto.enums.SearchDateValues;
28 import fr.ifremer.dali.ui.swing.content.manage.campaign.CampaignsUI;
29 import fr.ifremer.dali.ui.swing.content.manage.filter.element.menu.ApplyFilterUI;
30 import fr.ifremer.dali.ui.swing.content.manage.referential.menu.ReferentialMenuUIHandler;
31 import fr.ifremer.dali.ui.swing.util.DaliUIs;
32
33 import java.util.List;
34
35
36
37
38 public class CampaignsMenuUIHandler extends ReferentialMenuUIHandler<CampaignsMenuUIModel, CampaignsMenuUI> {
39
40
41 @Override
42 public void beforeInit(final CampaignsMenuUI ui) {
43 super.beforeInit(ui);
44
45
46 final CampaignsMenuUIModel model = new CampaignsMenuUIModel();
47 ui.setContextValue(model);
48 }
49
50
51 @Override
52 public void afterInit(final CampaignsMenuUI ui) {
53 super.afterInit(ui);
54
55
56 initComboBox();
57
58 initListeners();
59 }
60
61
62 @Override
63 public void enableSearch(boolean enabled) {
64 getUI().getNameEditor().setEnabled(enabled);
65 getUI().getStartDateCombo().setEnabled(enabled);
66 getUI().getEndDateCombo().setEnabled(enabled);
67 getUI().getStartDate1Editor().setEnabled(getModel().getSearchStartDate() != null);
68 getUI().getStartDate2Editor().setEnabled(getModel().getSearchStartDate() != null);
69 getUI().getEndDate1Editor().setEnabled(getModel().getSearchEndDate() != null);
70 getUI().getEndDate2Editor().setEnabled(getModel().getSearchEndDate() != null);
71 getUI().getClearButton().setEnabled(enabled);
72 getUI().getSearchButton().setEnabled(enabled);
73 getApplyFilterUI().setEnabled(enabled);
74 }
75
76
77 @Override
78 public List<FilterDTO> getFilters() {
79 return getContext().getContextService().getAllCampaignFilter();
80 }
81
82
83 @Override
84 public ApplyFilterUI getApplyFilterUI() {
85 return getUI().getApplyFilterUI();
86 }
87
88
89
90
91 private void initComboBox() {
92
93
94 initBeanFilterableComboBox(
95 getUI().getStartDateCombo(),
96 getContext().getSystemService().getSearchDates(),
97 null);
98 initBeanFilterableComboBox(
99 getUI().getEndDateCombo(),
100 getContext().getSystemService().getSearchDates(),
101 null);
102
103
104 getUI().getStartDate1Editor().setEnabled(false);
105 getUI().getStartDate2Editor().setEnabled(false);
106 getUI().getStartDate2Editor().setVisible(false);
107 getUI().getAndLabel1().setVisible(false);
108 getUI().getEndDate1Editor().setEnabled(false);
109 getUI().getEndDate2Editor().setEnabled(false);
110 getUI().getEndDate2Editor().setVisible(false);
111 getUI().getAndLabel2().setVisible(false);
112
113
114
115 DaliUIs.forceComponentSize(getUI().getNameEditor());
116 DaliUIs.forceComponentSize(getUI().getStartDateCombo(), 82);
117 DaliUIs.forceComponentSize(getUI().getEndDateCombo(), 82);
118 DaliUIs.forceComponentSize(getUI().getStartDate1Editor(), 120);
119 DaliUIs.forceComponentSize(getUI().getStartDate2Editor(), 120);
120 DaliUIs.forceComponentSize(getUI().getEndDate1Editor(), 120);
121 DaliUIs.forceComponentSize(getUI().getEndDate2Editor(), 120);
122
123 }
124
125
126 private void initListeners() {
127
128 getModel().addPropertyChangeListener(CampaignsMenuUIModel.PROPERTY_SEARCH_START_DATE, evt -> {
129
130 if (getModel().getSearchStartDate() != null) {
131
132
133 getUI().getStartDate1Editor().setEnabled(true);
134 getUI().getStartDate2Editor().setEnabled(true);
135
136 SearchDateValues searchDateValue = SearchDateValues.values()[getModel().getSearchStartDate().getId()];
137 if (searchDateValue == SearchDateValues.BETWEEN) {
138
139
140 getUI().getAndLabel1().setVisible(true);
141 getUI().getStartDate2Editor().setVisible(true);
142
143 } else {
144
145
146 getUI().getAndLabel1().setVisible(false);
147 getUI().getStartDate2Editor().setVisible(false);
148 getUI().getStartDate2Editor().setDate(null);
149 }
150
151 } else {
152
153
154 getUI().getStartDate1Editor().setDate(null);
155 getUI().getStartDate1Editor().setEnabled(false);
156 getUI().getStartDate2Editor().setDate(null);
157 getUI().getStartDate2Editor().setEnabled(false);
158 getUI().getStartDate2Editor().setVisible(false);
159 getUI().getAndLabel1().setVisible(false);
160 }
161 });
162
163 getModel().addPropertyChangeListener(CampaignsMenuUIModel.PROPERTY_SEARCH_END_DATE, evt -> {
164
165 if (getModel().getSearchEndDate() != null) {
166
167
168 getUI().getEndDate1Editor().setEnabled(true);
169 getUI().getEndDate2Editor().setEnabled(true);
170
171 SearchDateValues searchDateValue = SearchDateValues.values()[getModel().getSearchEndDate().getId()];
172 if (searchDateValue == SearchDateValues.BETWEEN) {
173
174
175 getUI().getAndLabel2().setVisible(true);
176 getUI().getEndDate2Editor().setVisible(true);
177
178 } else {
179
180
181 getUI().getAndLabel2().setVisible(false);
182 getUI().getEndDate2Editor().setVisible(false);
183 getUI().getEndDate2Editor().setDate(null);
184 }
185
186 } else {
187
188
189 getUI().getEndDate1Editor().setDate(null);
190 getUI().getEndDate1Editor().setEnabled(false);
191 getUI().getEndDate2Editor().setDate(null);
192 getUI().getEndDate2Editor().setEnabled(false);
193 getUI().getEndDate2Editor().setVisible(false);
194 getUI().getAndLabel2().setVisible(false);
195 }
196 });
197
198 }
199
200 public CampaignsUI getCampaignsUI() {
201 return getUI().getParentContainer(CampaignsUI.class);
202 }
203 }