1 |
eed59bfd
|
Patrick Plitzner
|
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 |
c050c60b
|
Patrick Plitzner
|
import org.eclipse.e4.ui.workbench.modeling.EPartService;
|
9 |
0db2412a
|
Patrick Plitzner
|
import org.eclipse.swt.widgets.Shell;
|
10 |
c050c60b
|
Patrick Plitzner
|
|
11 |
eed59bfd
|
Patrick Plitzner
|
import eu.etaxonomy.cdm.api.service.IOccurrenceService;
|
12 |
|
|
import eu.etaxonomy.cdm.api.service.ITaxonNodeService;
|
13 |
fe0647c6
|
Patrick Plitzner
|
import eu.etaxonomy.cdm.api.service.config.FindOccurrencesConfigurator;
|
14 |
d8ff3161
|
Patrick Plitzner
|
import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
|
15 |
eed59bfd
|
Patrick Plitzner
|
import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
|
16 |
|
|
import eu.etaxonomy.cdm.model.taxon.TaxonNode;
|
17 |
313b340d
|
Patrick Plitzner
|
import eu.etaxonomy.taxeditor.editor.AppModelId;
|
18 |
aa29d392
|
Patrick Plitzner
|
import eu.etaxonomy.taxeditor.editor.EditorUtil;
|
19 |
150b624d
|
Patrick Plitzner
|
import eu.etaxonomy.taxeditor.editor.l10n.Messages;
|
20 |
eed59bfd
|
Patrick Plitzner
|
import eu.etaxonomy.taxeditor.editor.view.derivate.DerivateViewEditorInput;
|
21 |
0db2412a
|
Patrick Plitzner
|
import eu.etaxonomy.taxeditor.handler.defaultHandler.e4.DefaultOpenHandlerBaseE4;
|
22 |
69be3e73
|
Katja Luther
|
import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
|
23 |
eed59bfd
|
Patrick Plitzner
|
import eu.etaxonomy.taxeditor.store.CdmStore;
|
24 |
|
|
|
25 |
0db2412a
|
Patrick Plitzner
|
public class OpenDerivativeEditorForTaxonNode extends DefaultOpenHandlerBaseE4<TaxonNode> {
|
26 |
eed59bfd
|
Patrick Plitzner
|
|
27 |
61c51c84
|
Patrick Plitzner
|
protected static final String OPEN_DERIVATIVE_EDITOR_FOR_TAXON_NODE_COULD_NOT_OPEN = Messages.OpenDerivativeEditorForTaxonNode_COULD_NOT_OPEN;
|
28 |
|
|
|
29 |
eed59bfd
|
Patrick Plitzner
|
@Override
|
30 |
|
|
protected TaxonNode getEntity(UUID uuid) {
|
31 |
|
|
return CdmStore.getService(ITaxonNodeService.class).load(uuid);
|
32 |
|
|
}
|
33 |
|
|
|
34 |
|
|
@Override
|
35 |
37bbbd30
|
Patrick Plitzner
|
protected void open(TaxonNode entity, Shell shell, EPartService partService) {
|
36 |
fe0647c6
|
Patrick Plitzner
|
FindOccurrencesConfigurator config = new FindOccurrencesConfigurator();
|
37 |
|
|
UUID taxonUuid = entity.getTaxon().getUuid();
|
38 |
|
|
config.setAssociatedTaxonUuid(taxonUuid);
|
39 |
|
|
List<SpecimenOrObservationBase> specimens = CdmStore.getService(IOccurrenceService.class).findByTitle(config).getRecords();
|
40 |
eed59bfd
|
Patrick Plitzner
|
Collection<UUID> specimenUuids = new ArrayList<UUID>();
|
41 |
|
|
for (SpecimenOrObservationBase specimenOrObservationBase : specimens) {
|
42 |
|
|
specimenUuids.add(specimenOrObservationBase.getUuid());
|
43 |
|
|
}
|
44 |
c050c60b
|
Patrick Plitzner
|
DerivateViewEditorInput input = new DerivateViewEditorInput(specimenUuids, taxonUuid);
|
45 |
aa29d392
|
Patrick Plitzner
|
EditorUtil.openSpecimenEditor(input, modelService, partService, application);
|
46 |
eed59bfd
|
Patrick Plitzner
|
}
|
47 |
|
|
|
48 |
0db2412a
|
Patrick Plitzner
|
/**
|
49 |
|
|
* {@inheritDoc}
|
50 |
|
|
*/
|
51 |
|
|
@Override
|
52 |
|
|
protected boolean canExecute(TaxonNode entity) {
|
53 |
d8ff3161
|
Patrick Plitzner
|
return (entity.getTaxon()!=null && PreferencesUtil.getBooleanValue(PreferencePredicate.ShowSpecimen.getKey()));
|
54 |
0db2412a
|
Patrick Plitzner
|
}
|
55 |
|
|
|
56 |
313b340d
|
Patrick Plitzner
|
@Override
|
57 |
|
|
protected String getPartId() {
|
58 |
|
|
return AppModelId.PARTDESCRIPTOR_EU_ETAXONOMY_TAXEDITOR_EDITOR_VIEW_DERIVATE_DERIVATEVIEW;
|
59 |
|
|
}
|
60 |
|
|
|
61 |
eed59bfd
|
Patrick Plitzner
|
}
|