Project

General

Profile

« Previous | Next » 

Revision 1c17a795

Added by Andreas Kohlbecker almost 7 years ago

ref #6169 RelatedEntityListSelect field with add and edit button

View differences:

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