Revision 65c80174
Added by Andreas Kohlbecker over 6 years ago
src/main/java/eu/etaxonomy/cdm/vaadin/view/registration/ListViewBean.java | ||
---|---|---|
9 | 9 |
package eu.etaxonomy.cdm.vaadin.view.registration; |
10 | 10 |
|
11 | 11 |
import java.util.ArrayList; |
12 |
import java.util.Arrays; |
|
12 | 13 |
import java.util.Collection; |
13 | 14 |
import java.util.List; |
14 | 15 |
|
... | ... | |
23 | 24 |
import com.vaadin.server.Page; |
24 | 25 |
import com.vaadin.spring.annotation.SpringView; |
25 | 26 |
import com.vaadin.ui.CssLayout; |
27 |
import com.vaadin.ui.HorizontalLayout; |
|
28 |
import com.vaadin.ui.Label; |
|
29 |
import com.vaadin.ui.ListSelect; |
|
26 | 30 |
import com.vaadin.ui.Notification; |
31 |
import com.vaadin.ui.TextField; |
|
27 | 32 |
|
33 |
import eu.etaxonomy.cdm.api.service.pager.Pager; |
|
34 |
import eu.etaxonomy.cdm.model.name.RegistrationStatus; |
|
28 | 35 |
import eu.etaxonomy.cdm.vaadin.component.registration.RegistrationItem; |
36 |
import eu.etaxonomy.cdm.vaadin.event.UpdateResultsEvent; |
|
29 | 37 |
import eu.etaxonomy.cdm.vaadin.security.AccessRestrictedView; |
30 | 38 |
import eu.etaxonomy.cdm.vaadin.security.UserHelper; |
31 | 39 |
import eu.etaxonomy.cdm.vaadin.view.AbstractPageView; |
... | ... | |
38 | 46 |
@SpringView(name=ListViewBean.NAME) |
39 | 47 |
public class ListViewBean extends AbstractPageView<ListPresenter> implements ListView, View, AccessRestrictedView { |
40 | 48 |
|
49 |
|
|
41 | 50 |
private static final long serialVersionUID = 3543300933072824713L; |
42 | 51 |
|
43 | 52 |
public static final String NAME = "list"; |
44 | 53 |
|
45 |
public static final String OPTION_ALL = "all"; |
|
46 |
|
|
47 |
public static final String OPTION_IN_PROGRESS = "inprogress"; |
|
54 |
Mode viewMode = Mode.all; |
|
48 | 55 |
|
49 | 56 |
private CssLayout listContainer; |
50 | 57 |
|
51 |
private CssLayout toolBar; |
|
58 |
private HorizontalLayout toolBar; |
|
59 |
|
|
60 |
private Label filterInstructionLabel = new Label("Filter the registrations by"); |
|
61 |
|
|
62 |
private ListSelect statusFilter = null; |
|
63 |
|
|
64 |
private ListSelect submitterFilter = null; // must be null, the presenter relies on this |
|
65 |
|
|
66 |
private TextField identifierFilter = new TextField("Identifier"); |
|
67 |
|
|
68 |
private TextField taxonNameFilter = new TextField("Name"); |
|
69 |
|
|
70 |
private TextField referenceFilter = new TextField("Publication"); |
|
52 | 71 |
|
53 | 72 |
public ListViewBean() { |
54 | 73 |
super(); |
... | ... | |
56 | 75 |
|
57 | 76 |
@Override |
58 | 77 |
protected void initContent() { |
78 |
|
|
59 | 79 |
getLayout().setId(NAME); |
60 |
toolBar = new CssLayout(); |
|
61 |
toolBar.setWidth(100, Unit.PERCENTAGE); |
|
80 |
toolBar = new HorizontalLayout(); |
|
81 |
|
|
82 |
toolBar.addComponent(filterInstructionLabel); |
|
83 |
|
|
84 |
if(UserHelper.fromSession().userIsRegistrationCurator() || UserHelper.fromSession().userIsAdmin()){ |
|
85 |
|
|
86 |
submitterFilter = new ListSelect("Submitter"); |
|
87 |
submitterFilter.setRows(1); |
|
88 |
submitterFilter.addValueChangeListener(e -> updateResults()); |
|
89 |
toolBar.addComponent(submitterFilter); |
|
90 |
} |
|
91 |
|
|
92 |
if(viewMode.equals(Mode.all)){ |
|
93 |
statusFilter = new ListSelect("Status", Arrays.asList(RegistrationStatus.values())); |
|
94 |
statusFilter.setNullSelectionAllowed(true); |
|
95 |
statusFilter.setRows(1); |
|
96 |
statusFilter.addValueChangeListener(e -> updateResults()); |
|
97 |
toolBar.addComponent(statusFilter); |
|
98 |
} |
|
99 |
|
|
100 |
toolBar.addComponents(identifierFilter, taxonNameFilter); |
|
101 |
identifierFilter.addValueChangeListener(e -> updateResults()); |
|
102 |
taxonNameFilter.addValueChangeListener(e -> updateResults()); |
|
103 |
|
|
104 |
toolBar.setSpacing(true); |
|
62 | 105 |
addContentComponent(toolBar, null); |
63 | 106 |
|
64 | 107 |
listContainer = new CssLayout(); |
... | ... | |
68 | 111 |
|
69 | 112 |
} |
70 | 113 |
|
114 |
/** |
|
115 |
* @return |
|
116 |
*/ |
|
117 |
private void updateResults() { |
|
118 |
eventBus.publishEvent(new UpdateResultsEvent(this)); |
|
119 |
} |
|
120 |
|
|
71 | 121 |
@Override |
72 | 122 |
protected String getHeaderText() { |
73 | 123 |
return "Registrations"; |
... | ... | |
88 | 138 |
} |
89 | 139 |
|
90 | 140 |
@Override |
91 |
public void populate(Collection<RegistrationDTO> registrations) {
|
|
141 |
public void populate(Pager<RegistrationDTO> regDtoPager) {
|
|
92 | 142 |
|
93 |
registrations = new ArrayList<RegistrationDTO>(registrations);
|
|
143 |
ArrayList<RegistrationDTO> regDtos = new ArrayList<RegistrationDTO>(regDtoPager.getRecords());
|
|
94 | 144 |
|
95 |
populateList(registrations);
|
|
145 |
populateList(regDtos);
|
|
96 | 146 |
} |
97 | 147 |
|
98 | 148 |
public void populateList(Collection<RegistrationDTO> registrations) { |
99 | 149 |
|
150 |
listContainer.removeAllComponents(); |
|
100 | 151 |
boolean isCurator = UserHelper.fromSession().userIsRegistrationCurator() || UserHelper.fromSession().userIsAdmin(); |
101 | 152 |
for(RegistrationDTO regDto : registrations) { |
102 | 153 |
RegistrationItem item = new RegistrationItem(regDto, this); |
... | ... | |
156 | 207 |
return null; |
157 | 208 |
} |
158 | 209 |
|
210 |
/** |
|
211 |
* @return the identifierFilter |
|
212 |
*/ |
|
213 |
@Override |
|
214 |
public TextField getIdentifierFilter() { |
|
215 |
return identifierFilter; |
|
216 |
} |
|
217 |
|
|
218 |
/** |
|
219 |
* @return the taxonNameFilter |
|
220 |
*/ |
|
221 |
@Override |
|
222 |
public TextField getTaxonNameFilter() { |
|
223 |
return taxonNameFilter; |
|
224 |
} |
|
225 |
|
|
226 |
/** |
|
227 |
* @return the referenceFilter |
|
228 |
*/ |
|
229 |
@Override |
|
230 |
public TextField getReferenceFilter() { |
|
231 |
return referenceFilter; |
|
232 |
} |
|
233 |
|
|
234 |
/** |
|
235 |
* @return the statusFilter |
|
236 |
*/ |
|
237 |
@Override |
|
238 |
public ListSelect getStatusFilter() { |
|
239 |
return statusFilter; |
|
240 |
} |
|
241 |
|
|
242 |
/** |
|
243 |
* @return the submitterFilter |
|
244 |
*/ |
|
245 |
@Override |
|
246 |
public ListSelect getSubmitterFilter() { |
|
247 |
return submitterFilter; |
|
248 |
} |
|
249 |
|
|
250 |
/** |
|
251 |
* {@inheritDoc} |
|
252 |
*/ |
|
253 |
@Override |
|
254 |
public void setViewMode(Mode mode) { |
|
255 |
viewMode = mode; |
|
256 |
} |
|
257 |
|
|
258 |
|
|
259 |
@Override |
|
260 |
public Mode getViewMode() { |
|
261 |
return viewMode; |
|
262 |
} |
|
263 |
|
|
264 |
|
|
265 |
|
|
266 |
|
|
267 |
|
|
159 | 268 |
|
160 | 269 |
|
161 | 270 |
} |
Also available in: Unified diff
fix #7130 implementing registration list filters