Project

General

Profile

« Previous | Next » 

Revision 65c80174

Added by Andreas Kohlbecker over 6 years ago

fix #7130 implementing registration list filters

View differences:

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