Revision 793a7b67
Added by Andreas Kohlbecker almost 7 years ago
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
ref #6169 ReferenceEditor: field visibility by ReferenceType & inReference field added