Revision 1c17a795
Added by Andreas Kohlbecker almost 7 years ago
src/main/java/eu/etaxonomy/cdm/vaadin/component/SelectFieldFactory.java | ||
---|---|---|
24 | 24 |
import eu.etaxonomy.cdm.model.common.DefinedTermBase; |
25 | 25 |
import eu.etaxonomy.cdm.model.common.TermType; |
26 | 26 |
import eu.etaxonomy.cdm.persistence.query.OrderHint; |
27 |
import eu.etaxonomy.vaadin.component.RelatedEntityListSelect; |
|
27 | 28 |
|
28 | 29 |
/** |
29 | 30 |
* @author a.kohlbecker |
... | ... | |
52 | 53 |
return select; |
53 | 54 |
} |
54 | 55 |
|
55 |
/** |
|
56 |
* @param termType |
|
57 |
*/ |
|
58 |
private BeanItemContainer<DefinedTermBase> buildBeanItemContainer(TermType termType) { |
|
59 |
// TODO use TermCacher? |
|
60 |
List<DefinedTermBase> terms = repo.getTermService().listByTermType(termType, null, null, orderHints, INIT_STRATEGY); |
|
61 |
BeanItemContainer<DefinedTermBase> termItemContainer = new BeanItemContainer<>(DefinedTermBase.class); |
|
62 |
termItemContainer.addAll(terms); |
|
63 |
return termItemContainer; |
|
64 |
} |
|
65 |
|
|
66 | 56 |
/** |
67 | 57 |
* |
68 | 58 |
* @param caption |
... | ... | |
106 | 96 |
return select; |
107 | 97 |
} |
108 | 98 |
|
99 |
/** |
|
100 |
* |
|
101 |
* @param caption |
|
102 |
* @param type |
|
103 |
* @param orderHints |
|
104 |
* @param propertyId the property id from which to read the label |
|
105 |
* @return |
|
106 |
*/ |
|
107 |
public <T extends CdmBase> RelatedEntityListSelect<T> createListSelectEditor(String caption, Class<T> type, List<OrderHint> orderHints, String propertyId){ |
|
108 |
|
|
109 |
if(orderHints == null){ |
|
110 |
orderHints = OrderHint.defaultOrderHintsFor(type); |
|
111 |
} |
|
112 |
|
|
113 |
BeanItemContainer<T> termItemContainer = buildBeanItemContainer(type, orderHints); |
|
114 |
RelatedEntityListSelect<T> selectEditor = new RelatedEntityListSelect<T>(caption, type, termItemContainer); |
|
115 |
|
|
116 |
// guess property id to use for display |
|
117 |
if(propertyId == null) { |
|
118 |
if(orderHints != null && !orderHints.isEmpty()){ |
|
119 |
propertyId = orderHints.get(0).getPropertyName(); |
|
120 |
} |
|
121 |
} |
|
122 |
if(propertyId != null){ |
|
123 |
selectEditor.getSelect().setItemCaptionPropertyId(propertyId); |
|
124 |
} |
|
125 |
return selectEditor; |
|
126 |
} |
|
127 |
|
|
128 |
/** |
|
129 |
* @param termType |
|
130 |
*/ |
|
131 |
private BeanItemContainer<DefinedTermBase> buildBeanItemContainer(TermType termType) { |
|
132 |
// TODO use TermCacher? |
|
133 |
List<DefinedTermBase> terms = repo.getTermService().listByTermType(termType, null, null, orderHints, INIT_STRATEGY); |
|
134 |
BeanItemContainer<DefinedTermBase> termItemContainer = new BeanItemContainer<>(DefinedTermBase.class); |
|
135 |
termItemContainer.addAll(terms); |
|
136 |
return termItemContainer; |
|
137 |
} |
|
138 |
|
|
109 | 139 |
/** |
110 | 140 |
* @param termType |
111 | 141 |
*/ |
Also available in: Unified diff
ref #6169 RelatedEntityListSelect field with add and edit button