Project

General

Profile

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

    
3
import java.util.Collections;
4
import java.util.UUID;
5

    
6
import org.eclipse.e4.ui.workbench.modeling.EPartService;
7
import org.eclipse.swt.widgets.Shell;
8

    
9
import eu.etaxonomy.cdm.api.service.IDescriptionService;
10
import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
11
import eu.etaxonomy.cdm.model.description.IndividualsAssociation;
12
import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
13
import eu.etaxonomy.taxeditor.editor.AppModelId;
14
import eu.etaxonomy.taxeditor.editor.EditorUtil;
15
import eu.etaxonomy.taxeditor.editor.l10n.Messages;
16
import eu.etaxonomy.taxeditor.editor.view.derivate.DerivateViewEditorInput;
17
import eu.etaxonomy.taxeditor.handler.defaultHandler.e4.DefaultOpenHandlerBaseE4;
18
import eu.etaxonomy.taxeditor.model.MessagingUtils;
19
import eu.etaxonomy.taxeditor.store.CdmStore;
20

    
21
public class OpenDerivativeEditorForDescriptionElement extends DefaultOpenHandlerBaseE4<IndividualsAssociation> {
22

    
23
    @Override
24
    protected IndividualsAssociation getEntity(UUID uuid) {
25
        DescriptionElementBase descriptionElement = CdmStore.getService(IDescriptionService.class).loadDescriptionElement(uuid, null);
26
        if(descriptionElement!=null && descriptionElement.isInstanceOf(IndividualsAssociation.class)){
27
            return (IndividualsAssociation) descriptionElement;
28
        }
29
        return null;
30
    }
31

    
32
    @Override
33
    protected void open(IndividualsAssociation entity, Shell shell, EPartService partService) {
34
    	if(entity==null || entity.getAssociatedSpecimenOrObservation()==null){
35
    		MessagingUtils.messageDialog(Messages.OpenDerivativeEditorForDescriptionElement_NO_SPECIMENS, this, Messages.OpenDerivativeEditorForDescriptionElement_NO_SPECIMENS_MESSAGE);
36
    		return;
37
    	}
38
        SpecimenOrObservationBase associatedSpecimenOrObservation = entity.getAssociatedSpecimenOrObservation();
39
        if(associatedSpecimenOrObservation!=null){
40
            UUID specimenUuid = associatedSpecimenOrObservation.getUuid();
41
            EditorUtil.openSpecimenEditor(new DerivateViewEditorInput(Collections.singletonList(specimenUuid)), modelService, partService, application);
42
        }
43
    }
44

    
45
    /**
46
     * {@inheritDoc}
47
     */
48
    @Override
49
    protected boolean canExecute(IndividualsAssociation entity) {
50
        return true;
51
    }
52

    
53
    @Override
54
    protected String getPartId() {
55
        return AppModelId.PARTDESCRIPTOR_EU_ETAXONOMY_TAXEDITOR_EDITOR_VIEW_DERIVATE_DERIVATEVIEW;
56
    }
57
}
(11-11/19)