import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
import eu.etaxonomy.taxeditor.editor.EditorUtil;
import eu.etaxonomy.taxeditor.editor.Messages;
+import eu.etaxonomy.taxeditor.editor.MultiPageTaxonEditor;
import eu.etaxonomy.taxeditor.editor.view.derivate.searchFilter.DerivateSearchCompositeController;
import eu.etaxonomy.taxeditor.model.IContextListener;
import eu.etaxonomy.taxeditor.model.IDirtyMarkable;
if(viewer.getTree().isDisposed()){
return;
}
- if(listenToSelectionChange && selection instanceof IStructuredSelection){
- Object selectedElement = ((IStructuredSelection) selection).getFirstElement();
- if(selectedElement instanceof CdmBase){
- if(((CdmBase) selectedElement).isInstanceOf(TaxonNode.class)){
- selectedTaxon = HibernateProxyHelper.deproxy(selectedElement, TaxonNode.class).getTaxon();
- }
- else if(((CdmBase) selectedElement).isInstanceOf(Taxon.class)){
- selectedTaxon = HibernateProxyHelper.deproxy(selectedElement, Taxon.class);
- }
- Collection<SpecimenOrObservationBase> fieldUnits = CdmStore.getService(IOccurrenceService.class).listFieldUnitsByAssociatedTaxon(selectedTaxon, null, null);
- Collection<UUID> uuids = new HashSet<UUID>();
- for (SpecimenOrObservationBase specimenOrObservationBase : fieldUnits) {
- uuids.add(specimenOrObservationBase.getUuid());
+ if(listenToSelectionChange){
+ if(part instanceof MultiPageTaxonEditor){
+ selectedTaxon = ((MultiPageTaxonEditor) part).getTaxon();
+ }
+ else if(selection instanceof IStructuredSelection){
+ Object selectedElement = ((IStructuredSelection) selection).getFirstElement();
+ if(selectedElement instanceof CdmBase){
+ if(((CdmBase) selectedElement).isInstanceOf(TaxonNode.class)){
+ selectedTaxon = HibernateProxyHelper.deproxy(selectedElement, TaxonNode.class).getTaxon();
+ }
+ else if(((CdmBase) selectedElement).isInstanceOf(Taxon.class)){
+ selectedTaxon = HibernateProxyHelper.deproxy(selectedElement, Taxon.class);
+ }
}
- updateRootEntities(uuids);
- setPartName("Derivative Editor: " + selectedTaxon.getName());
}
+ Collection<SpecimenOrObservationBase> fieldUnits = CdmStore.getService(IOccurrenceService.class).listFieldUnitsByAssociatedTaxon(selectedTaxon, null, null);
+ Collection<UUID> uuids = new HashSet<UUID>();
+ for (SpecimenOrObservationBase specimenOrObservationBase : fieldUnits) {
+ uuids.add(specimenOrObservationBase.getUuid());
+ }
+ updateRootEntities(uuids);
+ setPartName("Derivative Editor: " + selectedTaxon.getName());
}
}