Project

General

Profile

Download (5.51 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.reference;
10

    
11
import java.util.Arrays;
12
import java.util.Collection;
13

    
14
import org.springframework.context.annotation.Scope;
15
import org.springframework.security.core.GrantedAuthority;
16

    
17
import com.vaadin.spring.annotation.SpringComponent;
18
import com.vaadin.ui.Alignment;
19
import com.vaadin.ui.GridLayout;
20
import com.vaadin.ui.ListSelect;
21
import com.vaadin.ui.TextField;
22

    
23
import eu.etaxonomy.cdm.model.reference.Reference;
24
import eu.etaxonomy.cdm.model.reference.ReferenceType;
25
import eu.etaxonomy.cdm.vaadin.component.common.TeamOrPersonField;
26
import eu.etaxonomy.cdm.vaadin.component.common.TimePeriodField;
27
import eu.etaxonomy.cdm.vaadin.security.AccessRestrictedView;
28
import eu.etaxonomy.vaadin.component.SwitchableTextField;
29
import eu.etaxonomy.vaadin.mvp.AbstractCdmPopupEditor;
30

    
31
/**
32
 * @author a.kohlbecker
33
 * @since Apr 4, 2017
34
 *
35
 */
36

    
37
@SpringComponent
38
@Scope("prototype")
39
public class ReferencePopupEditor extends AbstractCdmPopupEditor<Reference, ReferenceEditorPresenter> implements ReferencePopupEditorView, AccessRestrictedView {
40

    
41
    private static final long serialVersionUID = -4347633563800758815L;
42

    
43
    private TextField titleField;
44

    
45
    private final static int GRID_COLS = 4;
46

    
47
    private final static int GRID_ROWS = 10;
48

    
49
    /**
50
     * @param layout
51
     * @param dtoType
52
     */
53
    public ReferencePopupEditor() {
54
        super(new GridLayout(GRID_COLS, GRID_ROWS), Reference.class);
55
    }
56

    
57
    @Override
58
    protected void initContent() {
59
        GridLayout grid = (GridLayout)getFieldLayout();
60
        grid.setSpacing(true);
61
        grid.setMargin(true);
62

    
63
        /*
64
        "type",
65
        "uri",
66
        "abbrevTitleCache",
67
        "protectedAbbrevTitleCache",
68
        "nomenclaturallyRelevant",
69
        "authorship",
70
        "referenceAbstract",
71
        "title",
72
        "abbrevTitle",
73
        "editor",
74
        "volume",
75
        "pages",
76
        "edition",
77
        "isbn",
78
        "issn",
79
        "doi",
80
        "seriesPart",
81
        "datePublished",
82
        "publisher",
83
        "placePublished",
84
        "institution",
85
        "school",
86
        "organization",
87
        "inReference"
88
         */
89
        int row = 0;
90
        ListSelect typeSelect = new ListSelect("Reference type", Arrays.asList(ReferenceType.values()));
91
        typeSelect.setNullSelectionAllowed(false);
92
        typeSelect.setRows(1);
93
        addField(typeSelect, "type", 3, row);
94
        grid.setComponentAlignment(typeSelect, Alignment.TOP_RIGHT);
95
        row++;
96
        SwitchableTextField titleCacheField = addSwitchableTextField("Reference cache", "titleCache", "protectedTitleCache", 0, row, GRID_COLS-1, row);
97
        titleCacheField.setWidth(100, Unit.PERCENTAGE);
98
        row++;
99
        SwitchableTextField abbrevTitleCacheField = addSwitchableTextField("Abbrev. cache", "abbrevTitleCache", "protectedAbbrevTitleCache", 0, row, GRID_COLS-1, row);
100
        abbrevTitleCacheField.setWidth(100, Unit.PERCENTAGE);
101
        row++;
102
        titleField = addTextField("Title", "title", 0, row, GRID_COLS-1, row);
103
        titleField.setWidth(100, Unit.PERCENTAGE);
104
        row++;
105
        addTextField("NomenclaturalTitle", "abbrevTitle", 0, row, GRID_COLS-1, row).setWidth(100, Unit.PERCENTAGE);
106
        row++;
107
        TeamOrPersonField authorshipField = new TeamOrPersonField("Author(s)");
108
        authorshipField.setWidth(100,  Unit.PERCENTAGE);
109
        addField(authorshipField, "authorship", 0, row, 3, row);
110
        row++;
111
        addTextField("Series", "seriesPart", 0, row);
112
        addTextField("Volume", "volume", 1, row);
113
        addTextField("Pages", "pages", 2, row);
114
        addTextField("Editor", "editor", 3, row).setWidth(100, Unit.PERCENTAGE);
115
        row++;
116
        addTextField("Place published", "placePublished", 0, row, 1, row).setWidth(100, Unit.PERCENTAGE);
117
        TextField publisherField = addTextField("Publisher", "publisher", 2, row, 3, row);
118
        publisherField.setWidth(100, Unit.PERCENTAGE);
119
        TimePeriodField timePeriodField = new TimePeriodField("Date published");
120
        addField(timePeriodField, "datePublished");
121
        row++;
122
        addTextField("ISSN", "issn", 0, row);
123
        addTextField("ISBN", "isbn", 1, row);
124
        addTextField("DOI", "doi", 2, row);
125
        addTextField("Uri", "uri", 3, row);
126

    
127
//        titleField.setRequired(true);
128
//        publisherField.setRequired(true);
129

    
130
        setAdvancedModeEnabled(true);
131
        registerAdvancedModeComponents(titleCacheField, abbrevTitleCacheField);
132
        registerAdvancedModeComponents(authorshipField.getCachFields());
133
        setAdvancedMode(false);
134

    
135
    }
136

    
137
    /**
138
     * {@inheritDoc}
139
     */
140
    @Override
141
    public String getWindowCaption() {
142
        return "Reference editor";
143
    }
144

    
145
    /**
146
     * {@inheritDoc}
147
     */
148
    @Override
149
    protected String getDefaultComponentStyles() {
150
        return "tiny";
151
    }
152

    
153
    /**
154
     * {@inheritDoc}
155
     */
156
    @Override
157
    public void focusFirst() {
158
        titleField.focus();
159
    }
160

    
161
    /**
162
     * {@inheritDoc}
163
     */
164
    @Override
165
    public boolean isResizable() {
166
        return false;
167
    }
168

    
169
    /**
170
     * {@inheritDoc}
171
     */
172
    @Override
173
    public boolean allowAnonymousAccess() {
174
        return false;
175
    }
176

    
177
    /**
178
     * {@inheritDoc}
179
     */
180
    @Override
181
    public Collection<Collection<GrantedAuthority>> allowedGrantedAuthorities() {
182
        return null;
183
    }
184

    
185

    
186

    
187
}
(2-2/3)