Project

General

Profile

« Previous | Next » 

Revision b13da0b9

Added by Cherian Mathew almost 9 years ago

#5007 : Add remoting handler / operations for the taxon navigator

View differences:

eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/EditorUtil.java
24 24
import org.eclipse.ui.IEditorInput;
25 25
import org.eclipse.ui.IEditorPart;
26 26
import org.eclipse.ui.IEditorReference;
27
import org.eclipse.ui.IWorkbenchPage;
27 28
import org.eclipse.ui.PartInitException;
28 29
import org.eclipse.ui.handlers.HandlerUtil;
29 30

  
30 31
import eu.etaxonomy.cdm.api.service.ITaxonService;
32
import eu.etaxonomy.cdm.model.common.ITreeNode;
31 33
import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
32 34
import eu.etaxonomy.cdm.model.occurrence.FieldUnit;
33 35
import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
34 36
import eu.etaxonomy.cdm.model.taxon.TaxonBase;
37
import eu.etaxonomy.cdm.model.taxon.TaxonNode;
35 38
import eu.etaxonomy.taxeditor.editor.group.authority.CdmAuthorityEditor;
36 39
import eu.etaxonomy.taxeditor.editor.group.authority.CdmAuthorityEditorInput;
37 40
import eu.etaxonomy.taxeditor.editor.internal.TaxeditorEditorPlugin;
......
453 456
            openTaxonBase(((TaxonBase<?>) object).getUuid());
454 457
        }
455 458
    }
459

  
460
    public static boolean closeObsoleteEditor(TaxonNode taxonNode, IWorkbenchPage activePage){
461
        boolean result = true;
462
        for (IEditorReference ref : activePage.getEditorReferences()) {
463
            try {
464
                String treeIndex = ((ITreeNode)taxonNode).treeIndex();
465

  
466

  
467
                IEditorInput input = ref.getEditorInput();
468
                if (input instanceof TaxonEditorInput) {
469
                    TaxonNode node = ((TaxonEditorInput) input).getTaxonNode();
470
                    //if node is a child of taxonNode then close the editor
471
                    if( ((ITreeNode) node).treeIndex().startsWith(treeIndex)){
472
                    //if (taxonNode.equals(node)) {
473
                        result &= activePage.closeEditor(ref.getEditor(false), true);
474

  
475
                    }
476
                }
477
            } catch (PartInitException e) {
478
                continue;
479
            }
480
        }
481
        return result;
482
    }
456 483
}

Also available in: Unified diff