Revision 95ccdfd3
Added by Patrick Plitzner over 6 years ago
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/EditorUtil.java | ||
---|---|---|
9 | 9 |
|
10 | 10 |
package eu.etaxonomy.taxeditor.editor; |
11 | 11 |
|
12 |
import java.util.Collection; |
|
12 | 13 |
import java.util.UUID; |
13 | 14 |
|
14 | 15 |
import org.eclipse.core.commands.ExecutionEvent; |
... | ... | |
24 | 25 |
import org.eclipse.swt.widgets.Shell; |
25 | 26 |
import org.eclipse.ui.IEditorInput; |
26 | 27 |
import org.eclipse.ui.IEditorPart; |
27 |
import org.eclipse.ui.IEditorReference; |
|
28 |
import org.eclipse.ui.IWorkbenchPage; |
|
29 | 28 |
import org.eclipse.ui.PartInitException; |
30 | 29 |
import org.eclipse.ui.handlers.HandlerUtil; |
31 | 30 |
|
32 | 31 |
import eu.etaxonomy.cdm.api.service.ITaxonService; |
33 |
import eu.etaxonomy.cdm.model.common.ITreeNode; |
|
34 | 32 |
import eu.etaxonomy.cdm.model.occurrence.DerivedUnit; |
35 | 33 |
import eu.etaxonomy.cdm.model.occurrence.FieldUnit; |
36 | 34 |
import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase; |
... | ... | |
360 | 358 |
return null; |
361 | 359 |
} |
362 | 360 |
|
363 |
public static boolean closeObsoleteEditor(TaxonNode taxonNode, IWorkbenchPage activePage){ |
|
364 |
boolean result = true; |
|
365 |
for (IEditorReference ref : activePage.getEditorReferences()) { |
|
366 |
try { |
|
367 |
String treeIndex = ((ITreeNode)taxonNode).treeIndex(); |
|
368 |
|
|
369 |
|
|
370 |
IEditorInput input = ref.getEditorInput(); |
|
371 |
if (input instanceof TaxonEditorInput) { |
|
372 |
TaxonNode node = ((TaxonEditorInput) input).getTaxonNode(); |
|
373 |
//if node is a child of taxonNode then close the editor |
|
374 |
if( ((ITreeNode) node).treeIndex().startsWith(treeIndex)){ |
|
375 |
//if (taxonNode.equals(node)) { |
|
376 |
result &= activePage.closeEditor(ref.getEditor(false), true); |
|
377 |
|
|
378 |
} |
|
361 |
public static void closeObsoleteEditor(TaxonNode taxonNode, EPartService partService){ |
|
362 |
String treeIndex = taxonNode.treeIndex(); |
|
363 |
Collection<MPart> parts = partService.getParts(); |
|
364 |
for (MPart part : parts) { |
|
365 |
Object object = part.getObject(); |
|
366 |
if(object instanceof TaxonNameEditorE4){ |
|
367 |
TaxonNameEditorE4 taxonEditor = (TaxonNameEditorE4)object; |
|
368 |
TaxonNode node = taxonEditor.getEditorInput().getTaxonNode(); |
|
369 |
if(node.treeIndex().startsWith(treeIndex)){ |
|
370 |
partService.hidePart(part, true); |
|
379 | 371 |
} |
380 |
} catch (PartInitException e) { |
|
381 |
continue; |
|
382 | 372 |
} |
383 | 373 |
} |
384 |
return result; |
|
385 | 374 |
} |
386 | 375 |
} |
Also available in: Unified diff
ref #6909 Migrate remote handler