+ public static void closeObsoleteEditorWithChildren(TaxonNodeDto taxonNode, EPartService partService){
+ String treeIndex = taxonNode.getTreeIndex();
+ Collection<MPart> parts = partService.getParts();
+ for (MPart part : parts) {
+ Object object = part.getObject();
+ if(object instanceof TaxonNameEditorE4){
+ TaxonNameEditorE4 taxonEditor = (TaxonNameEditorE4)object;
+ TaxonNode node = taxonEditor.getEditorInput().getTaxonNode();
+ if (node.treeIndex()!= null){
+ if(node.treeIndex().startsWith(treeIndex)){
+ if (part.isDirty()){
+ forceUserSaveE4Editor(taxonEditor, getShell());
+ }
+ partService.hidePart(part);
+ }
+ }else{
+ logger.debug("The taxonnode of taxon " + node.getTaxon().getTitleCache() + " uuid: " + node.getUuid() + " has no treeindex");;
+ }
+ }
+ }
+ }
+
+ public static void closeObsoleteDescriptiveDatasetEditor(UUID datasetUuid, EPartService partService){
+
+ Collection<MPart> parts = partService.getParts();
+ for (MPart part : parts) {
+ Object object = part.getObject();
+ if(object instanceof DescriptiveDataSetEditor){
+ DescriptiveDataSetEditor editor = (DescriptiveDataSetEditor)object;
+ DescriptiveDataSet descDataSet = editor.getDescriptiveDataSet();
+ if(descDataSet.getUuid().equals(datasetUuid)){
+ if (part.isDirty()){
+ forceUserSaveE4Editor(editor, getShell());
+ }
+ partService.hidePart(part);
+ }
+
+ }
+ }
+ }
+
+ public static void closePart(String partID, EPartService partService){
+
+ Collection<MPart> parts = partService.getParts();
+ for (MPart part : parts) {
+ String elementId = part.getElementId();
+ if (elementId.equals(partID)){
+ partService.hidePart(part);
+ }
+ }
+ }
+