Project

General

Profile

Download (1.81 KB) Statistics
| Branch: | Tag: | Revision:
1
package eu.etaxonomy.taxeditor.editor.view.derivate.handler;
2

    
3
import java.util.ArrayList;
4
import java.util.Collection;
5
import java.util.List;
6
import java.util.UUID;
7

    
8
import org.eclipse.core.commands.ExecutionEvent;
9
import org.eclipse.ui.PartInitException;
10

    
11
import eu.etaxonomy.cdm.api.service.IOccurrenceService;
12
import eu.etaxonomy.cdm.api.service.ITaxonNodeService;
13
import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
14
import eu.etaxonomy.cdm.model.taxon.TaxonNode;
15
import eu.etaxonomy.taxeditor.editor.EditorUtil;
16
import eu.etaxonomy.taxeditor.editor.handler.OpenDerivateViewHandler;
17
import eu.etaxonomy.taxeditor.editor.view.derivate.DerivateViewEditorInput;
18
import eu.etaxonomy.taxeditor.handler.defaultHandler.DefaultOpenHandlerBase;
19
import eu.etaxonomy.taxeditor.model.MessagingUtils;
20
import eu.etaxonomy.taxeditor.store.CdmStore;
21

    
22
public class OpenDerivativeEditorForTaxonNode extends DefaultOpenHandlerBase<TaxonNode> {
23

    
24
    @Override
25
    protected TaxonNode getEntity(UUID uuid) {
26
        return CdmStore.getService(ITaxonNodeService.class).load(uuid);
27
    }
28

    
29
    @Override
30
    protected void open(ExecutionEvent event, TaxonNode entity) {
31
        List<SpecimenOrObservationBase> specimens = CdmStore.getService(IOccurrenceService.class).listByAssociatedTaxon(SpecimenOrObservationBase.class, null, entity.getTaxon(), null, null, null, null, null);
32
        Collection<UUID> specimenUuids = new ArrayList<UUID>();
33
        for (SpecimenOrObservationBase specimenOrObservationBase : specimens) {
34
            specimenUuids.add(specimenOrObservationBase.getUuid());
35
        }
36
        try {
37
            EditorUtil.open(new DerivateViewEditorInput(specimenUuids));
38
        } catch (PartInitException e) {
39
            MessagingUtils.error(OpenDerivateViewHandler.class, "Derivative Editor could not be opened", e);
40
        }
41

    
42
    }
43

    
44
}
(4-4/6)