Project

General

Profile

« Previous | Next » 

Revision 793a7b67

Added by Andreas Kohlbecker almost 7 years ago

ref #6169 ReferenceEditor: field visibility by ReferenceType & inReference field added

View differences:

src/main/java/eu/etaxonomy/cdm/vaadin/view/reference/ReferencePopupEditor.java
11 11
import java.util.Arrays;
12 12
import java.util.Collection;
13 13

  
14
import org.springframework.beans.factory.annotation.Autowired;
14 15
import org.springframework.context.annotation.Scope;
15 16
import org.springframework.security.core.GrantedAuthority;
16 17

  
......
22 23

  
23 24
import eu.etaxonomy.cdm.model.reference.Reference;
24 25
import eu.etaxonomy.cdm.model.reference.ReferenceType;
26
import eu.etaxonomy.cdm.persistence.query.OrderHint;
27
import eu.etaxonomy.cdm.vaadin.component.SelectFieldFactory;
25 28
import eu.etaxonomy.cdm.vaadin.component.common.TeamOrPersonField;
26 29
import eu.etaxonomy.cdm.vaadin.component.common.TimePeriodField;
27 30
import eu.etaxonomy.cdm.vaadin.security.AccessRestrictedView;
......
40 43

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

  
46
    @Autowired
47
    private SelectFieldFactory selectFieldFactory;
48

  
43 49
    private TextField titleField;
44 50

  
45 51
    private final static int GRID_COLS = 4;
......
90 96
        ListSelect typeSelect = new ListSelect("Reference type", Arrays.asList(ReferenceType.values()));
91 97
        typeSelect.setNullSelectionAllowed(false);
92 98
        typeSelect.setRows(1);
99
        typeSelect.addValueChangeListener(e -> updateFieldVisibility((ReferenceType)e.getProperty().getValue()));
93 100
        addField(typeSelect, "type", 3, row);
94 101
        grid.setComponentAlignment(typeSelect, Alignment.TOP_RIGHT);
95 102
        row++;
......
113 120
        addTextField("Pages", "pages", 2, row);
114 121
        addTextField("Editor", "editor", 3, row).setWidth(100, Unit.PERCENTAGE);
115 122
        row++;
123
        ListSelect inReferenceSelect = selectFieldFactory.createListSelect("In-reference", Reference.class, OrderHint.ORDER_BY_TITLE_CACHE.asList(), "titleCache");
124
        inReferenceSelect.setWidth(100, Unit.PERCENTAGE);
125
        inReferenceSelect.setRows(1);
126
        addField(inReferenceSelect, "inReference", 0, row, 3, row);
127
        row++;
116 128
        addTextField("Place published", "placePublished", 0, row, 1, row).setWidth(100, Unit.PERCENTAGE);
117 129
        TextField publisherField = addTextField("Publisher", "publisher", 2, row, 3, row);
118 130
        publisherField.setWidth(100, Unit.PERCENTAGE);
......
134 146

  
135 147
    }
136 148

  
149
    /**
150
     * @param value
151
     * @return
152
     */
153
    private Object updateFieldVisibility(ReferenceType value) {
154
        getField("volume").setVisible(value.isVolumeReference());
155

  
156
        getField("placePublished").setVisible(value.isPublication());
157
        getField("publisher").setVisible(value.isPublication());
158

  
159
        getField("editor").setVisible(value.isPrintedUnit());
160
        getField("seriesPart").setVisible(value.isPrintedUnit());
161

  
162
        getField("inReference").setVisible(value.isPrintedUnit() || value.isSection());
163
        getField("pages").setVisible(value.isSection());
164

  
165
        return null;
166
    }
167

  
137 168
    /**
138 169
     * {@inheritDoc}
139 170
     */

Also available in: Unified diff