Project

General

Profile

« Previous | Next » 

Revision 7349cf26

Added by Andreas Kohlbecker almost 7 years ago

ref #6169 InReference and Microreference Fields for the TaxonName Editor

View differences:

src/main/java/eu/etaxonomy/cdm/vaadin/view/taxon/TaxonNameEditorPresenter.java
8 8
*/
9 9
package eu.etaxonomy.cdm.vaadin.view.taxon;
10 10

  
11
import java.util.Arrays;
12
import java.util.List;
13

  
14
import org.vaadin.viritin.fields.CaptionGenerator;
15
import org.vaadin.viritin.fields.LazyComboBox.FilterableCountProvider;
16
import org.vaadin.viritin.fields.LazyComboBox.FilterablePagingProvider;
17

  
11 18
import eu.etaxonomy.cdm.api.service.DeleteResult;
12 19
import eu.etaxonomy.cdm.api.service.config.NameDeletionConfigurator;
20
import eu.etaxonomy.cdm.api.service.pager.Pager;
13 21
import eu.etaxonomy.cdm.model.name.TaxonNameBase;
22
import eu.etaxonomy.cdm.model.reference.Reference;
23
import eu.etaxonomy.cdm.persistence.query.MatchMode;
24
import eu.etaxonomy.cdm.persistence.query.OrderHint;
14 25
import eu.etaxonomy.vaadin.mvp.AbstractCdmEditorPresenter;
15 26

  
16 27
/**
......
22 33

  
23 34
    private static final long serialVersionUID = -3538980627079389221L;
24 35

  
36
    /**
37
     * {@inheritDoc}
38
     */
39
    @Override
40
    public void handleViewEntered() {
41
        super.handleViewEntered();
42

  
43
        getView().getNomReferenceCombobox().getSelect().setCaptionGenerator(new CaptionGenerator<Reference>(){
44

  
45
            @Override
46
            public String getCaption(Reference option) {
47
                return option.getTitleCache();
48
            }
49

  
50
        });
51
        getView().getNomReferenceCombobox().loadFrom(new FilterablePagingProvider<Reference>(){
52

  
53
            @Override
54
            public List<Reference> findEntities(int firstRow, String filter) {
55
                Pager<Reference> page = getRepo().getReferenceService().findByTitle(
56
                        null,
57
                        filter,
58
                        MatchMode.ANYWHERE,
59
                        null,
60
                        20,
61
                        firstRow,
62
                        OrderHint.ORDER_BY_TITLE_CACHE.asList(),
63
                        Arrays.asList("$")
64
                      );
65
                return page.getRecords();
66
            }},
67
            new FilterableCountProvider(){
68
                @Override
69
                public int size(String filter) {
70
                    Pager<Reference> page = getRepo().getReferenceService().findByTitle(
71
                            null,
72
                            filter,
73
                            MatchMode.ANYWHERE,
74
                            null,
75
                            1,
76
                            0,
77
                            null,
78
                            null
79
                          );
80
                    return page.getCount().intValue();
81
                }}
82
            , 20);
83
    }
84

  
85

  
25 86
    /**
26 87
     * {@inheritDoc}
27 88
     */
src/main/java/eu/etaxonomy/cdm/vaadin/view/taxon/TaxonNamePopupEditor.java
19 19

  
20 20
import eu.etaxonomy.cdm.model.name.Rank;
21 21
import eu.etaxonomy.cdm.model.name.TaxonNameBase;
22
import eu.etaxonomy.cdm.model.reference.Reference;
22 23
import eu.etaxonomy.cdm.persistence.query.OrderHint;
23 24
import eu.etaxonomy.cdm.vaadin.component.common.TeamOrPersonField;
25
import eu.etaxonomy.cdm.vaadin.event.AbstractEditorAction;
26
import eu.etaxonomy.cdm.vaadin.event.ReferenceEditorAction;
24 27
import eu.etaxonomy.cdm.vaadin.security.AccessRestrictedView;
25 28
import eu.etaxonomy.vaadin.component.SwitchableTextField;
29
import eu.etaxonomy.vaadin.component.ToOneRelatedEntityCombobox;
26 30
import eu.etaxonomy.vaadin.mvp.AbstractCdmPopupEditor;
27 31

  
28 32
/**
......
36 40

  
37 41
    private final static int GRID_COLS = 4;
38 42

  
39
    private final static int GRID_ROWS = 7;
43
    private final static int GRID_ROWS = 9;
40 44

  
41 45
    private TextField genusOrUninomialField;
42 46

  
......
50 54

  
51 55
    private SwitchableTextField protectedNameCacheField;
52 56

  
57
    private ToOneRelatedEntityCombobox<Reference> nomReferenceCombobox;
58

  
59
    private TextField nomenclaturalReferenceDetail;
60

  
53 61

  
54 62
    /**
55 63
     * @param layout
......
178 186
        addField(exBasionymAuthorshipField, "exBasionymAuthorship", 0, row, GRID_COLS-1, row);
179 187
        row++;
180 188

  
189
        // nomenclaturalReference
190
        nomReferenceCombobox = new ToOneRelatedEntityCombobox<Reference>("Nomenclatural reference", Reference.class);
191
        nomReferenceCombobox.setWidth(100, Unit.PERCENTAGE);
192
        nomReferenceCombobox.addClickListenerAddEntity(e -> getEventBus().publishEvent(
193
                new ReferenceEditorAction(AbstractEditorAction.Action.ADD, null, nomReferenceCombobox, this)
194
                ));
195
        nomReferenceCombobox.addClickListenerEditEntity(e -> {
196
            if(nomReferenceCombobox.getValue() != null){
197
                getEventBus().publishEvent(
198
                    new ReferenceEditorAction(
199
                            AbstractEditorAction.Action.EDIT,
200
                            nomReferenceCombobox.getValue().getId(),
201
                            nomReferenceCombobox,
202
                            this)
203
                );
204
            }
205
            });
206
        addField(nomReferenceCombobox, "nomenclaturalReference", 0, row, 3, row);
207
        row++;
208
        nomenclaturalReferenceDetail = addTextField("Reference detail", "nomenclaturalMicroReference", 0, row, 1, row);
209

  
181 210
        setAdvancedModeEnabled(true);
182 211
        registerAdvancedModeComponents(fullTitleCacheFiled, protectedNameCacheField);
183 212
        setAdvancedMode(false);
......
213 242
        return null;
214 243
    }
215 244

  
245
    /**
246
     * {@inheritDoc}
247
     */
248
    @Override
249
    public ToOneRelatedEntityCombobox<Reference> getNomReferenceCombobox() {
250
        return nomReferenceCombobox;
251
    }
252

  
216 253
}
src/main/java/eu/etaxonomy/cdm/vaadin/view/taxon/TaxonNamePopupEditorView.java
8 8
*/
9 9
package eu.etaxonomy.cdm.vaadin.view.taxon;
10 10

  
11
import eu.etaxonomy.cdm.model.reference.Reference;
12
import eu.etaxonomy.vaadin.component.ToOneRelatedEntityCombobox;
11 13
import eu.etaxonomy.vaadin.mvp.ApplicationView;
12 14

  
13 15
/**
......
17 19
 */
18 20
public interface TaxonNamePopupEditorView extends ApplicationView<TaxonNameEditorPresenter> {
19 21

  
22
    /**
23
     * @return
24
     */
25
    public ToOneRelatedEntityCombobox<Reference> getNomReferenceCombobox();
26

  
20 27
}

Also available in: Unified diff