Project

General

Profile

Download (4.49 KB) Statistics
| Branch: | Tag: | Revision:
1
/**
2
* Copyright (C) 2017 EDIT
3
* European Distributed Institute of Taxonomy
4
* http://www.e-taxonomy.eu
5
*
6
* The contents of this file are subject to the Mozilla Public License Version 1.1
7
* See LICENSE.TXT at the top of this package for the full license terms.
8
*/
9
package eu.etaxonomy.cdm.vaadin.view.registration;
10

    
11
import java.util.ArrayList;
12
import java.util.Collection;
13
import java.util.List;
14

    
15
import org.springframework.security.core.GrantedAuthority;
16

    
17
import com.vaadin.data.Item;
18
import com.vaadin.data.util.BeanContainer;
19
import com.vaadin.data.util.GeneratedPropertyContainer;
20
import com.vaadin.data.util.PropertyValueGenerator;
21
import com.vaadin.navigator.View;
22
import com.vaadin.navigator.ViewChangeListener.ViewChangeEvent;
23
import com.vaadin.server.Page;
24
import com.vaadin.spring.annotation.SpringView;
25
import com.vaadin.ui.CssLayout;
26
import com.vaadin.ui.Notification;
27

    
28
import eu.etaxonomy.cdm.vaadin.component.registration.RegistrationItem;
29
import eu.etaxonomy.cdm.vaadin.security.AccessRestrictedView;
30
import eu.etaxonomy.cdm.vaadin.security.UserHelper;
31
import eu.etaxonomy.cdm.vaadin.view.AbstractPageView;
32

    
33
/**
34
 * @author a.kohlbecker
35
 * @since Mar 2, 2017
36
 *
37
 */
38
@SpringView(name=ListViewBean.NAME)
39
public class ListViewBean extends AbstractPageView<ListPresenter> implements ListView, View, AccessRestrictedView {
40

    
41
    private static final long serialVersionUID = 3543300933072824713L;
42

    
43
    public static final String NAME = "list";
44

    
45
    public static final String OPTION_ALL = "all";
46

    
47
    public static final String OPTION_IN_PROGRESS = "inprogress";
48

    
49
    private CssLayout listContainer;
50

    
51
    private CssLayout toolBar;
52

    
53
    public ListViewBean() {
54
        super();
55
    }
56

    
57
    @Override
58
    protected void initContent() {
59
        getLayout().setId(NAME);
60
        toolBar = new CssLayout();
61
        toolBar.setWidth(100, Unit.PERCENTAGE);
62
        addContentComponent(toolBar, null);
63

    
64
        listContainer = new CssLayout();
65
        listContainer.setId("registration-list");
66
        listContainer.setWidth(100, Unit.PERCENTAGE);
67
        addContentComponent(listContainer, 1f);
68

    
69
    }
70

    
71
    @Override
72
    protected String getHeaderText() {
73
        return "Registrations";
74
    }
75

    
76
    @Override
77
    protected String getSubHeaderText() {
78
        return "This is the list of all your registrations in progress.";
79
    }
80

    
81

    
82
    /**
83
     * {@inheritDoc}
84
     */
85
    @Override
86
    public void enter(ViewChangeEvent event) {
87
        getPresenter().onViewEnter();
88
    }
89

    
90
    @Override
91
    public void populate(Collection<RegistrationDTO> registrations) {
92

    
93
        registrations = new ArrayList<RegistrationDTO>(registrations);
94

    
95
        populateList(registrations);
96
    }
97

    
98
    public void populateList(Collection<RegistrationDTO> registrations) {
99

    
100
        boolean isCurator = UserHelper.fromSession().userIsRegistrationCurator() || UserHelper.fromSession().userIsAdmin();
101
        for(RegistrationDTO regDto : registrations) {
102
            RegistrationItem item = new RegistrationItem(regDto, this);
103
            item.getSubmitterLabel().setVisible(isCurator);
104
            item.setWidth(100, Unit.PERCENTAGE);
105
            listContainer.addComponent(item);
106
        }
107
    }
108

    
109
    @Override
110
    public void openDetailsPopup(String caption, List<String> messages){
111
        StringBuffer sb = new StringBuffer();
112
        sb.append("<div class=\"details-popup-content\">");
113
        messages.forEach(s -> sb.append(s).append("</br>"));
114
        sb.append("</div>");
115
        new Notification(caption, sb.toString(), Notification.Type.HUMANIZED_MESSAGE, true).show(Page.getCurrent());
116
    }
117

    
118
    /**
119
     * @param registrationItems
120
     * @return
121
     */
122
    @Deprecated
123
    private GeneratedPropertyContainer buildGeneratedProperties(
124
            BeanContainer<String, RegistrationDTO> registrationItems) {
125
        GeneratedPropertyContainer gpContainer = new GeneratedPropertyContainer(registrationItems);
126

    
127
        gpContainer.addGeneratedProperty("operation", new PropertyValueGenerator<String>() {
128

    
129
            @Override
130
            public String getValue(Item item, Object itemId, Object propertyId) {
131
                return "Open";
132
            }
133

    
134
            @Override
135
            public Class<String> getType() {
136
                return String.class;
137
            }
138
          });
139

    
140
        return gpContainer;
141
    }
142

    
143
    /**
144
     * {@inheritDoc}
145
     */
146
    @Override
147
    public boolean allowAnonymousAccess() {
148
        return false;
149
    }
150

    
151
    /**
152
     * {@inheritDoc}
153
     */
154
    @Override
155
    public Collection<Collection<GrantedAuthority>> allowedGrantedAuthorities() {
156
        return null;
157
    }
158

    
159

    
160

    
161
}
(4-4/19)