X-Git-Url: https://dev.e-taxonomy.eu/gitweb/taxeditor.git/blobdiff_plain/47794ee9e5b1db905693e1c5cda86ac93e956ead..4ac90d615da900439ee877996d1c7528215211ba:/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/EditorUtil.java diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/EditorUtil.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/EditorUtil.java index d923dd9b8..d373467b3 100644 --- a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/EditorUtil.java +++ b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/EditorUtil.java @@ -24,21 +24,22 @@ import org.eclipse.swt.widgets.Shell; import org.eclipse.ui.IEditorInput; import org.eclipse.ui.IEditorPart; import org.eclipse.ui.IEditorReference; +import org.eclipse.ui.IWorkbenchPage; import org.eclipse.ui.PartInitException; import org.eclipse.ui.handlers.HandlerUtil; import eu.etaxonomy.cdm.api.service.ITaxonService; +import eu.etaxonomy.cdm.model.common.ITreeNode; import eu.etaxonomy.cdm.model.occurrence.DerivedUnit; import eu.etaxonomy.cdm.model.occurrence.FieldUnit; import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase; import eu.etaxonomy.cdm.model.taxon.TaxonBase; +import eu.etaxonomy.cdm.model.taxon.TaxonNode; import eu.etaxonomy.taxeditor.editor.group.authority.CdmAuthorityEditor; import eu.etaxonomy.taxeditor.editor.group.authority.CdmAuthorityEditorInput; import eu.etaxonomy.taxeditor.editor.internal.TaxeditorEditorPlugin; import eu.etaxonomy.taxeditor.editor.key.KeyEditor; import eu.etaxonomy.taxeditor.editor.key.polytomous.PolytomousKeyEditorInput; -import eu.etaxonomy.taxeditor.editor.molecular.AlignmentEditor; -import eu.etaxonomy.taxeditor.editor.molecular.AlignmentEditorInput; import eu.etaxonomy.taxeditor.editor.view.checklist.ChecklistEditor; import eu.etaxonomy.taxeditor.editor.view.checklist.ChecklistEditorInput; import eu.etaxonomy.taxeditor.editor.view.dataimport.BioCaseEditorInput; @@ -122,16 +123,6 @@ public class EditorUtil extends AbstractUtility { open(input, ChecklistEditor.ID); } - /** - * Opens a new AlignmentEditor for the given input - * @param input - * @throws PartInitException - */ - public static void open(AlignmentEditorInput input) - throws PartInitException { - open(input, AlignmentEditor.ID); - } - /** * Opens a new {@link DataImportEditor} for the given input * @param input a {@link DataImportEditorInput} @@ -180,7 +171,9 @@ public class EditorUtil extends AbstractUtility { } TaxonEditorInput input = TaxonEditorInput .NewInstanceFromTaxonBase(taxonBaseUuid); - open(input); + if(input!=null){ + open(input); + } } /** @@ -396,6 +389,12 @@ public class EditorUtil extends AbstractUtility { open(input); } +// public static void openPolytomousKeyEditor(UUID polytomousKeyUuid, String name) +// throws Exception { +// PolytomousKeyEditorInput input = new PolytomousKeyEditorInput(polytomousKeyUuid, name); +// open(input); +// } + public static void openCdmAuthorities(UUID groupUuid) throws Exception { CdmAuthorityEditorInput input = CdmAuthorityEditorInput.NewInstance(groupUuid); @@ -465,4 +464,28 @@ public class EditorUtil extends AbstractUtility { openTaxonBase(((TaxonBase) object).getUuid()); } } + + public static boolean closeObsoleteEditor(TaxonNode taxonNode, IWorkbenchPage activePage){ + boolean result = true; + for (IEditorReference ref : activePage.getEditorReferences()) { + try { + String treeIndex = ((ITreeNode)taxonNode).treeIndex(); + + + IEditorInput input = ref.getEditorInput(); + if (input instanceof TaxonEditorInput) { + TaxonNode node = ((TaxonEditorInput) input).getTaxonNode(); + //if node is a child of taxonNode then close the editor + if( ((ITreeNode) node).treeIndex().startsWith(treeIndex)){ + //if (taxonNode.equals(node)) { + result &= activePage.closeEditor(ref.getEditor(false), true); + + } + } + } catch (PartInitException e) { + continue; + } + } + return result; + } }