Project

General

Profile

Revision 333b3e62

ID333b3e6296bc2a04b663a3d9ce803cd0562253b6
Parent 1b02a92b
Child f0644f26

Added by Andreas Kohlbecker almost 3 years ago

fix #7205 using ToManyRelatedEntitiesListSelect create edit button in TaxonNamePopupEditor
- includes commit relared to ref #7204

View differences:

src/main/java/eu/etaxonomy/cdm/vaadin/view/name/CachingPresenter.java
19 19

  
20 20
    public EntityCache getCache();
21 21

  
22
    public boolean isCacheInitialized();
23

  
22 24
}
src/main/java/eu/etaxonomy/cdm/vaadin/view/name/SpecimenTypeDesignationWorkingsetEditorPresenter.java
288 288
     */
289 289
    @Override
290 290
    public EntityCache getCache() {
291
        if(((AbstractPopupEditor)getView()).isBeanLoaded()){
292
            return cache;
293
        } else {
294
            return null;
295
        }
291
        return cache;
292
//        if(((AbstractPopupEditor)getView()).isBeanLoaded()){
293
//        } else {
294
//            return null;
295
//        }
296 296
    }
297 297

  
298
    /**
299
     * Returns true only after the view method {@link AbstractPopupEditor#loadInEditor()}
300
     * has completed.
301
     *
302
     */
303
    @Override
304
    public boolean isCacheInitialized() {
305
        return ((AbstractPopupEditor)getView()).isBeanLoaded();
306
    }
307

  
308

  
298 309
    public void doCollectionEditorAdd() {
299 310

  
300 311
        collectionPopupEditor = getNavigationManager().showInPopup(CollectionPopupEditor.class);
src/main/java/eu/etaxonomy/cdm/vaadin/view/name/TaxonNameEditorPresenter.java
10 10

  
11 11
import java.util.Arrays;
12 12
import java.util.EnumSet;
13
import java.util.HashSet;
13 14
import java.util.List;
14 15
import java.util.Set;
15 16

  
......
17 18
import org.hibernate.criterion.Restrictions;
18 19
import org.springframework.context.event.EventListener;
19 20

  
21
import com.vaadin.ui.AbstractField;
22

  
20 23
import eu.etaxonomy.cdm.api.service.INameService;
24
import eu.etaxonomy.cdm.cache.CdmEntityCache;
25
import eu.etaxonomy.cdm.debug.PersistentContextAnalyzer;
21 26
import eu.etaxonomy.cdm.model.agent.AgentBase;
22 27
import eu.etaxonomy.cdm.model.agent.Person;
23 28
import eu.etaxonomy.cdm.model.agent.TeamOrPersonBase;
24 29
import eu.etaxonomy.cdm.model.common.TermType;
30
import eu.etaxonomy.cdm.model.name.NameRelationship;
25 31
import eu.etaxonomy.cdm.model.name.Rank;
26 32
import eu.etaxonomy.cdm.model.name.TaxonName;
27 33
import eu.etaxonomy.cdm.model.name.TaxonNameFactory;
......
32 38
import eu.etaxonomy.cdm.service.CdmFilterablePagingProvider;
33 39
import eu.etaxonomy.cdm.vaadin.component.CdmBeanItemContainerFactory;
34 40
import eu.etaxonomy.cdm.vaadin.event.ReferenceEditorAction;
41
import eu.etaxonomy.cdm.vaadin.event.TaxonNameEditorAction;
35 42
import eu.etaxonomy.cdm.vaadin.event.ToOneRelatedEntityButtonUpdater;
36 43
import eu.etaxonomy.cdm.vaadin.security.UserHelper;
37 44
import eu.etaxonomy.cdm.vaadin.util.CdmTitleCacheCaptionGenerator;
......
48 55
 */
49 56
public class TaxonNameEditorPresenter extends AbstractCdmEditorPresenter<TaxonName, TaxonNamePopupEditorView> {
50 57

  
58
    /**
59
     *
60
     */
61
    private static final List<String> BASIONYM_INIT_STRATEGY = Arrays.asList("$", "relationsFromThisName", "homotypicalGroup.typifiedNames");
62

  
51 63
    private static final long serialVersionUID = -3538980627079389221L;
52 64

  
53 65
    private static final Logger logger = Logger.getLogger(TaxonNameEditorPresenter.class);
54 66

  
55
    ReferencePopupEditor newReferencePopup = null;
67
    private ReferencePopupEditor referenceEditorPopup = null;
68

  
69
    private TaxonNamePopupEditor basionymNamePopup = null;
56 70

  
57 71
    private CdmFilterablePagingProvider<Reference, Reference> referencePagingProvider;
58 72

  
......
60 74

  
61 75
    private BeanInstantiator<Reference> newReferenceInstantiator;
62 76

  
77
    private BeanInstantiator<TaxonName> newBasionymNameInstantiator;
78

  
79
    private AbstractField<TaxonName> basionymSourceField;
80

  
63 81
    /**
64 82
     * {@inheritDoc}
65 83
     */
......
92 110
        getView().getNomReferenceCombobox().loadFrom(referencePagingProvider, referencePagingProvider, referencePagingProvider.getPageSize());
93 111
        getView().getNomReferenceCombobox().getSelect().addValueChangeListener(new ToOneRelatedEntityButtonUpdater<Reference>(getView().getNomReferenceCombobox()));
94 112

  
95
        getView().getBasionymCombobox().setCaptionGenerator(new CdmTitleCacheCaptionGenerator<TaxonName>());
96
        CdmFilterablePagingProvider<TaxonName, TaxonName> namePagingProvider = new CdmFilterablePagingProvider<TaxonName, TaxonName>(getRepo().getNameService());
113
        getView().getBasionymComboboxSelect().setCaptionGenerator(new CdmTitleCacheCaptionGenerator<TaxonName>());
97 114

  
98
        getView().getBasionymCombobox().setPagingProviders(namePagingProvider, namePagingProvider, namePagingProvider.getPageSize());
115
        CdmFilterablePagingProvider<TaxonName, TaxonName> basionymPagingProvider = new CdmFilterablePagingProvider<TaxonName, TaxonName>(getRepo().getNameService());
116
        basionymPagingProvider.setInitStrategy(BASIONYM_INIT_STRATEGY);
117
        getView().getBasionymComboboxSelect().setPagingProviders(basionymPagingProvider, basionymPagingProvider, basionymPagingProvider.getPageSize(), this);
99 118
    }
100 119

  
101 120
    /**
......
200 219
    protected TaxonName handleTransientProperties(TaxonName bean) {
201 220

  
202 221
        logger.trace(this._toString() + ".onEditorSaveEvent - handling transient properties");
203
        List<TaxonName> newBasionymNames = getView().getBasionymCombobox().getValueFromNestedFields();
222

  
223

  
224
        List<TaxonName> newBasionymNames = getView().getBasionymComboboxSelect().getValueFromNestedFields();
204 225
        Set<TaxonName> oldBasionyms = bean.getBasionyms();
205
        boolean updateBasionyms = false;
226
        Set<TaxonName> updateBasionyms = new HashSet<>();
227
        Set<TaxonName> removeBasionyms = new HashSet<>();
206 228

  
207 229
        for(TaxonName newB : newBasionymNames){
208
            updateBasionyms = updateBasionyms || !oldBasionyms.contains(newB);
230
            if(!oldBasionyms.contains(newB)){
231
                updateBasionyms.add(newB);
232
            }
209 233
        }
210 234

  
211 235
        for(TaxonName oldB : oldBasionyms){
212
            updateBasionyms = updateBasionyms || !newBasionymNames.contains(oldB);
236
            if(!newBasionymNames.contains(oldB)){
237
                removeBasionyms.add(oldB);
238
            }
213 239
        }
214

  
215
        if(updateBasionyms){
216
            bean.removeBasionyms();
217
            for(TaxonName basionymName :newBasionymNames){
218
                if(basionymName != null){
219
                    if(basionymName .getUuid() != null){
220
                        // reload
221
                        basionymName = getRepo().getNameService().load(basionymName.getUuid(), Arrays.asList("$", "relationsFromThisName", "homotypicalGroup.typifiedNames"));
222
                    }
223
                    bean.addBasionym(basionymName);
240
        for(TaxonName removeBasionym :removeBasionyms){
241
            Set<NameRelationship> removeRelations = new HashSet<NameRelationship>();
242
            for (NameRelationship nameRelation : bean.getRelationsToThisName()){
243
                if (nameRelation.getType().isBasionymRelation() && nameRelation.getFromName().equals(removeBasionym)){
244
                    removeRelations.add(nameRelation);
224 245
                }
225 246
            }
247
            for (NameRelationship relation : removeRelations){
248
                bean.removeNameRelationship(relation);
249
            }
250
        }
251
        // updateBasionyms.clear(); // DEBUGGING #########################
252
        getRepo().getSession().clear();
253
        for(TaxonName addBasionymName :updateBasionyms){
254
            // if(addBasionymName != null){
255
                // if(addBasionymName.getUuid() != null){
256
                    // reload
257

  
258
                    System.err.println("====== Cache ======");
259
                    addBasionymName = getRepo().getNameService().load(addBasionymName.getUuid(), BASIONYM_INIT_STRATEGY);
260
                    PersistentContextAnalyzer pca = new PersistentContextAnalyzer((CdmEntityCache)getCache(), getRepo().getSession());
261
                    pca.setShowHashCodes(true);
262
                    pca.printEntityGraph(System.err);
263
                    pca.printCopyEntities(System.err);
264

  
265
                    System.err.println("====== Basionym ======");
266
                    PersistentContextAnalyzer basiopca = new PersistentContextAnalyzer(addBasionymName, getRepo().getSession());
267
                    basiopca.setShowHashCodes(true);
268
                    basiopca.printEntityGraph(System.err);
269

  
270
                    TaxonName cachedName = getCache().find(addBasionymName);
271
                    if(cachedName != null){
272
                        System.err.println("====== Cached Basionym ======");
273
                        PersistentContextAnalyzer cahedbasiopca = new PersistentContextAnalyzer(addBasionymName, getRepo().getSession());
274
                        cahedbasiopca.setShowHashCodes(true);
275
                        cahedbasiopca.printEntityGraph(System.err);
276
                        addBasionymName = cachedName;
277
                    }
278
                // }
279
                bean.addBasionym(addBasionymName);
280
            //}
226 281
        }
227 282
        return bean;
228 283
    }
......
235 290
        return getRepo().getNameService();
236 291
    }
237 292

  
238
    @EventListener(condition = "#event.type == T(eu.etaxonomy.cdm.vaadin.event.AbstractEditorAction.Action).ADD")
293
    @EventListener(condition = "#event.type == T(eu.etaxonomy.vaadin.event.EditorActionType).ADD")
239 294
    public void onReferenceEditorActionAdd(ReferenceEditorAction event) {
240 295

  
241 296
        if(getView() == null || event.getSourceView() != getView() ){
242 297
            return;
243 298
        }
244
        newReferencePopup = getNavigationManager().showInPopup(ReferencePopupEditor.class);
299
        referenceEditorPopup = getNavigationManager().showInPopup(ReferencePopupEditor.class);
245 300

  
246
        newReferencePopup.grantToCurrentUser(EnumSet.of(CRUD.UPDATE, CRUD.DELETE));
247
        newReferencePopup.withDeleteButton(true);
248
        newReferencePopup.setBeanInstantiator(newReferenceInstantiator);
249
        newReferencePopup.loadInEditor(null);
301
        referenceEditorPopup.grantToCurrentUser(EnumSet.of(CRUD.UPDATE, CRUD.DELETE));
302
        referenceEditorPopup.withDeleteButton(true);
303
        referenceEditorPopup.setBeanInstantiator(newReferenceInstantiator);
304
        referenceEditorPopup.loadInEditor(null);
250 305
        if(newReferenceInstantiator != null){
251 306
            // this is a bit clumsy, we actually need to inject something like a view configurer
252 307
            // which can enable, disable fields
253
            newReferencePopup.getInReferenceCombobox().setEnabled(false);
254
            newReferencePopup.getTypeSelect().setEnabled(false);
308
            referenceEditorPopup.getInReferenceCombobox().setEnabled(false);
309
            referenceEditorPopup.getTypeSelect().setEnabled(false);
255 310
        }
256 311
    }
257 312

  
258
    @EventListener(condition = "#event.type == T(eu.etaxonomy.cdm.vaadin.event.AbstractEditorAction.Action).EDIT")
313
    @EventListener(condition = "#event.type == T(eu.etaxonomy.vaadin.event.EditorActionType).EDIT")
259 314
    public void onReferenceEditorActionEdit(ReferenceEditorAction event) {
260 315

  
261 316
        if(getView() == null || event.getSourceView() != getView() ){
262 317
            return;
263 318
        }
264
        newReferencePopup = getNavigationManager().showInPopup(ReferencePopupEditor.class);
319
        referenceEditorPopup = getNavigationManager().showInPopup(ReferencePopupEditor.class);
265 320

  
266
        newReferencePopup.grantToCurrentUser(EnumSet.of(CRUD.UPDATE, CRUD.DELETE));
267
        newReferencePopup.withDeleteButton(true);
268
        newReferencePopup.setBeanInstantiator(newReferenceInstantiator);
269
        newReferencePopup.loadInEditor(event.getEntityId());
321
        referenceEditorPopup.grantToCurrentUser(EnumSet.of(CRUD.UPDATE, CRUD.DELETE));
322
        referenceEditorPopup.withDeleteButton(true);
323
        referenceEditorPopup.setBeanInstantiator(newReferenceInstantiator);
324
        referenceEditorPopup.loadInEditor(event.getEntityId());
270 325
        if(newReferenceInstantiator != null){
271 326
            // this is a bit clumsy, we actually need to inject something like a view configurer
272 327
            // which can enable, disable fields
273
            newReferencePopup.getInReferenceCombobox().setEnabled(false);
274
            newReferencePopup.getTypeSelect().setEnabled(false);
328
            referenceEditorPopup.getInReferenceCombobox().setEnabled(false);
329
            referenceEditorPopup.getTypeSelect().setEnabled(false);
275 330
        }
276 331
    }
277 332

  
278 333
    @EventListener
279 334
    public void onDoneWithPopupEvent(DoneWithPopupEvent event){
280
        if(event.getPopup() == newReferencePopup){
335

  
336
        if(event.getPopup() == referenceEditorPopup){
281 337
            if(event.getReason() == Reason.SAVE){
282 338

  
283
                Reference newReference = newReferencePopup.getBean();
339
                Reference modifiedReference = referenceEditorPopup.getBean();
340

  
341
                // TODO the bean contained in the popup editor is not yet updated at this point.
342
                //      so re reload it using the uuid since new beans will not have an Id at this point.
343
                modifiedReference = getRepo().getReferenceService().load(modifiedReference.getUuid(), Arrays.asList("inReference"));
344
                getView().getNomReferenceCombobox().setValue(modifiedReference);
345
            }
346

  
347
            referenceEditorPopup = null;
348
        }
349
        if(event.getPopup() == basionymNamePopup){
350
            if(event.getReason() == Reason.SAVE){
351
                TaxonName modifiedTaxonName = basionymNamePopup.getBean();
284 352

  
285 353
                // TODO the bean contained in the popup editor is not yet updated at this point.
286 354
                //      so re reload it using the uuid since new beans will not have an Id at this point.
287
                newReference = getRepo().getReferenceService().load(newReference.getUuid(), Arrays.asList("inReference"));
288
                getView().getNomReferenceCombobox().setValue(newReference);
355
                modifiedTaxonName = getRepo().getNameService().load(modifiedTaxonName.getUuid()); //, BASIONYM_INIT_STRATEGY);
356
                basionymSourceField.setValue(modifiedTaxonName);
357

  
358
                // TODO create blocking registration
289 359
            }
360
            if(event.getReason() == Reason.DELETE){
361
                basionymSourceField.setValue(null);
362
            }
363

  
364
            basionymNamePopup = null;
365
            basionymSourceField = null;
366
        }
367
    }
368

  
369
    @EventListener(condition = "#event.type == T(eu.etaxonomy.vaadin.event.EditorActionType).EDIT")
370
    public void onTaxonNameEditorActionEdit(TaxonNameEditorAction event) {
290 371

  
291
            newReferencePopup = null;
372
        if(getView() == null || event.getSourceView() != getView() ){
373
            return;
292 374
        }
375
        basionymSourceField = (AbstractField<TaxonName>)event.getSourceComponent();
376

  
377
        basionymNamePopup = getNavigationManager().showInPopup(TaxonNamePopupEditor.class);
378
        basionymNamePopup.grantToCurrentUser(EnumSet.of(CRUD.UPDATE, CRUD.DELETE));
379
        basionymNamePopup.withDeleteButton(true);
380
        basionymNamePopup.loadInEditor(event.getEntityId());
381
        basionymNamePopup.getBasionymToggle().setVisible(false);
382

  
293 383
    }
294 384

  
385
    @EventListener(condition = "#event.type == T(eu.etaxonomy.vaadin.event.EditorActionType).ADD")
386
    public void onReferenceEditorActionAdd(TaxonNameEditorAction event) {
387

  
388
        if(getView() == null || event.getSourceView() != getView() ){
389
            return;
390
        }
391
        basionymSourceField = (AbstractField<TaxonName>)event.getSourceComponent();
392

  
393
        basionymNamePopup = getNavigationManager().showInPopup(TaxonNamePopupEditor.class);
394
        basionymNamePopup.grantToCurrentUser(EnumSet.of(CRUD.UPDATE, CRUD.DELETE));
395
        basionymNamePopup.withDeleteButton(true);
396
        basionymNamePopup.loadInEditor(null);
397
        basionymNamePopup.getBasionymToggle().setVisible(false);
398
    }
295 399

  
296 400

  
297 401
}
src/main/java/eu/etaxonomy/cdm/vaadin/view/name/TaxonNamePopupEditor.java
25 25
import eu.etaxonomy.cdm.model.reference.Reference;
26 26
import eu.etaxonomy.cdm.persistence.hibernate.permission.CRUD;
27 27
import eu.etaxonomy.cdm.vaadin.component.common.TeamOrPersonField;
28
import eu.etaxonomy.cdm.vaadin.event.AbstractEditorAction;
29 28
import eu.etaxonomy.cdm.vaadin.event.ReferenceEditorAction;
29
import eu.etaxonomy.cdm.vaadin.event.TaxonNameEditorAction;
30 30
import eu.etaxonomy.cdm.vaadin.security.AccessRestrictedView;
31 31
import eu.etaxonomy.cdm.vaadin.security.UserHelper;
32 32
import eu.etaxonomy.cdm.vaadin.util.converter.SetToListConverter;
33 33
import eu.etaxonomy.vaadin.component.SwitchableTextField;
34 34
import eu.etaxonomy.vaadin.component.ToManyRelatedEntitiesComboboxSelect;
35 35
import eu.etaxonomy.vaadin.component.ToOneRelatedEntityCombobox;
36
import eu.etaxonomy.vaadin.event.EditorActionType;
36 37
import eu.etaxonomy.vaadin.mvp.AbstractCdmPopupEditor;
37 38
import eu.etaxonomy.vaadin.permission.EditPermissionTester;
38 39

  
......
71 72

  
72 73
    private TeamOrPersonField basionymAuthorshipField;
73 74

  
74
    private ToManyRelatedEntitiesComboboxSelect<TaxonName> basionymCombobox;
75
    private ToManyRelatedEntitiesComboboxSelect<TaxonName> basionymsComboboxSelect;
75 76

  
76 77
    private CheckBox basionymToggle;
77 78

  
......
240 241
        row++;
241 242
        nomReferenceCombobox = new ToOneRelatedEntityCombobox<Reference>("Nomenclatural reference", Reference.class);
242 243
        nomReferenceCombobox.addClickListenerAddEntity(e -> getEventBus().publishEvent(
243
                new ReferenceEditorAction(AbstractEditorAction.Action.ADD, null, nomReferenceCombobox, this)
244
                new ReferenceEditorAction(EditorActionType.ADD, null, nomReferenceCombobox, this)
244 245
                ));
245 246
        nomReferenceCombobox.addClickListenerEditEntity(e -> {
246 247
            if(nomReferenceCombobox.getValue() != null){
247 248
                getEventBus().publishEvent(
248 249
                    new ReferenceEditorAction(
249
                            AbstractEditorAction.Action.EDIT,
250
                            EditorActionType.EDIT,
250 251
                            nomReferenceCombobox.getValue().getId(),
251 252
                            nomReferenceCombobox,
252 253
                            this)
......
261 262

  
262 263
        // Basionym
263 264
        row++;
264
        basionymCombobox = new ToManyRelatedEntitiesComboboxSelect<TaxonName>(TaxonName.class, "Basionym");
265
        /**
266
        basionymCombobox.newAdd(e -> getEventBus().publishEvent(
267
                new TaxonNameEditorAction(AbstractEditorAction.Action.ADD, null, basionymCombobox, this)
268
                ));
269
        basionymCombobox.addClickListenerEditEntity(e -> {
270
            if(basionymCombobox.getValue() != null){
271
                getEventBus().publishEvent(
272
                    new TaxonNameEditorAction(
273
                            AbstractEditorAction.Action.EDIT,
274
                            basionymCombobox.getValue().getId(),
275
                            basionymCombobox,
276
                            this)
277
                );
278
            }
279
            });
280
         **/
281
        basionymCombobox.setConverter(new SetToListConverter<TaxonName>());
282
        addField(basionymCombobox, "basionyms", 0, row, 3, row);
283
        basionymCombobox.setWidth(100, Unit.PERCENTAGE);
284
        basionymCombobox.withEditButton(true);
285
        basionymCombobox.setEditPermissionTester(new EditPermissionTester() {
265
        basionymsComboboxSelect = new ToManyRelatedEntitiesComboboxSelect<TaxonName>(TaxonName.class, "Basionym");
266
        basionymsComboboxSelect.setConverter(new SetToListConverter<TaxonName>());
267
        addField(basionymsComboboxSelect, "basionyms", 0, row, 3, row);
268
        basionymsComboboxSelect.setWidth(100, Unit.PERCENTAGE);
269
        basionymsComboboxSelect.withEditButton(true);
270
        basionymsComboboxSelect.setEditPermissionTester(new EditPermissionTester() {
286 271

  
287 272
            @Override
288 273
            public boolean userHasEditPermission(Object bean) {
289 274
                return  UserHelper.fromSession().userHasPermission((CdmBase)bean, CRUD.UPDATE, CRUD.DELETE);
290 275
            }
291 276
        });
292
        grid.setComponentAlignment(basionymCombobox, Alignment.TOP_RIGHT);
277
        basionymsComboboxSelect.setEditActionListener(e -> {
278

  
279
            Object fieldValue = e.getSource().getValue();
280
            Integer beanId = null;
281
            if(fieldValue != null){
282
                beanId = ((CdmBase)fieldValue).getId();
283

  
284
            }
285
            eventBus.publishEvent(new TaxonNameEditorAction(e.getAction(), beanId, e.getSource(), this));
286
        });
287
        grid.setComponentAlignment(basionymsComboboxSelect, Alignment.TOP_RIGHT);
293 288
        row++;
294 289
        basionymAuthorshipField = new TeamOrPersonField("Basionym author(s)");
295 290
        basionymAuthorshipField.setWidth(100,  Unit.PERCENTAGE);
......
319 314
    private void enableBasionymFields(boolean enable) {
320 315
        basionymAuthorshipField.setVisible(enable);
321 316
        exBasionymAuthorshipField.setVisible(enable);
322
        basionymCombobox.setVisible(enable);
317
        basionymsComboboxSelect.setVisible(enable);
323 318
        if(modesActive.contains(TaxonNamePopupEditorMode.suppressReplacementAuthorshipData)){
324 319
            TaxonName taxonName = getBean();
325 320
            basionymAuthorshipField.setVisible(taxonName.getBasionymAuthorship() != null);
......
381 376
     * {@inheritDoc}
382 377
     */
383 378
    @Override
384
    public ToManyRelatedEntitiesComboboxSelect<TaxonName> getBasionymCombobox() {
385
        return basionymCombobox;
379
    public ToManyRelatedEntitiesComboboxSelect<TaxonName> getBasionymComboboxSelect() {
380
        return basionymsComboboxSelect;
386 381
    }
387 382

  
388 383
    /**
......
440 435
        modesActive.remove(mode);
441 436
    }
442 437

  
438
    @Override
439
    public CheckBox getBasionymToggle() {
440
        return basionymToggle;
441
    }
442

  
443 443

  
444 444
}
src/main/java/eu/etaxonomy/cdm/vaadin/view/name/TaxonNamePopupEditorView.java
8 8
*/
9 9
package eu.etaxonomy.cdm.vaadin.view.name;
10 10

  
11
import com.vaadin.ui.CheckBox;
11 12
import com.vaadin.ui.ListSelect;
12 13

  
13 14
import eu.etaxonomy.cdm.model.name.TaxonName;
......
32 33
    /**
33 34
     * @return
34 35
     */
35
    public ToManyRelatedEntitiesComboboxSelect<TaxonName> getBasionymCombobox();
36
    public ToManyRelatedEntitiesComboboxSelect<TaxonName> getBasionymComboboxSelect();
36 37

  
37 38
    public ListSelect getRankSelect();
38 39

  
......
71 72
     */
72 73
    boolean isModeEnabled(TaxonNamePopupEditorMode mode);
73 74

  
75
    /**
76
     * @return
77
     */
78
    CheckBox getBasionymToggle();
79

  
74 80
}
src/main/java/eu/etaxonomy/vaadin/mvp/AbstractPopupEditor.java
542 542
        isBeanLoaded = true;
543 543
    }
544 544

  
545
    /**
546
     * Passes the beanInstantiator to the presenter method {@link AbstractEditorPresenter#setBeanInstantiator(BeanInstantiator)}
547
     *
548
     * @param beanInstantiator
549
     */
545 550
    public final void setBeanInstantiator(BeanInstantiator<DTO> beanInstantiator) {
546 551
        getPresenter().setBeanInstantiator(beanInstantiator);
547 552
    }

Also available in: Unified diff

Add picture from clipboard (Maximum size: 40 MB)