2 * Copyright (C) 2018 EDIT
3 * European Distributed Institute of Taxonomy
4 * http://www.e-taxonomy.eu
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.
9 package eu
.etaxonomy
.vaadin
.component
;
11 import org
.vaadin
.viritin
.fields
.CaptionGenerator
;
12 import org
.vaadin
.viritin
.fields
.LazyComboBox
.FilterableCountProvider
;
13 import org
.vaadin
.viritin
.fields
.LazyComboBox
.FilterablePagingProvider
;
15 import eu
.etaxonomy
.cdm
.model
.name
.TaxonName
;
16 import eu
.etaxonomy
.cdm
.model
.reference
.Reference
;
17 import eu
.etaxonomy
.cdm
.vaadin
.model
.name
.NameRelationshipDTO
;
18 import eu
.etaxonomy
.cdm
.vaadin
.view
.name
.CachingPresenter
;
21 * @author a.kohlbecker
25 public class NameRelationsListEditor
extends ToManyRelatedEntitiesListSelect
<NameRelationshipDTO
, NameRelationField
> {
27 private static final long serialVersionUID
= 6295557881702890211L;
29 private ReloadableLazyComboBoxInstantiator
<TaxonName
> nameSelectInstantiator
;
31 private ReloadableLazyComboBoxInstantiator
<Reference
> referenceSelectInstantiator
;
37 public NameRelationsListEditor(String caption
) {
38 super(NameRelationshipDTO
.class, null, caption
);
39 this.fieldType
= NameRelationField
.class;
40 // addEmptyRowOnInitContent is false in this class since adding row is only possible after setting the PagingProviders
41 addEmptyRowOnInitContent
= false;
42 nameSelectInstantiator
= new ReloadableLazyComboBoxInstantiator
<TaxonName
>(TaxonName
.class);
43 referenceSelectInstantiator
= new ReloadableLazyComboBoxInstantiator
<Reference
>(Reference
.class);
50 // protected NameRelationField newFieldInstance(NameRelationshipDTO val) throws InstantiationException, IllegalAccessException {
52 // NameRelationField field = new NameRelationField(nameSelectInstantiator, referenceSelectInstantiator, val);
53 // field.setWidth(100, Unit.PERCENTAGE);
57 public void setTaxonNamePagingProviders(FilterablePagingProvider
<TaxonName
> filterablePagingProvider
, FilterableCountProvider filterableCountProvider
, int pageLength
,
58 CachingPresenter cachingPresenter
){
59 nameSelectInstantiator
.setPagingProviders(filterablePagingProvider
, filterableCountProvider
, pageLength
, cachingPresenter
);
60 setInternalValue(null);
64 * @param cdmTitleCacheCaptionGenerator
66 public void setTaxonNameCaptionGenerator(CaptionGenerator
<TaxonName
> captionGenerator
) {
67 nameSelectInstantiator
.setCaptionGenerator(captionGenerator
);
70 public void setReferencePagingProviders(FilterablePagingProvider
<Reference
> filterablePagingProvider
, FilterableCountProvider filterableCountProvider
, int pageLength
,
71 CachingPresenter cachingPresenter
){
72 referenceSelectInstantiator
.setPagingProviders(filterablePagingProvider
, filterableCountProvider
, pageLength
, cachingPresenter
);
73 setInternalValue(null);
77 * @param cdmTitleCacheCaptionGenerator
79 public void setReferenceCaptionGenerator(CaptionGenerator
<Reference
> captionGenerator
) {
80 referenceSelectInstantiator
.setCaptionGenerator(captionGenerator
);