Revision 60fa760b
Added by Katja Luther over 2 years ago
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/EditorUtil.java | ||
---|---|---|
227 | 227 |
|
228 | 228 |
Collection<MPart> parts = partService.getParts(); |
229 | 229 |
//check if part is already opened |
230 |
MPart alreadyOpenInOtherClassification = null; |
|
230 | 231 |
for (MPart part : parts) { |
231 | 232 |
if(part.getObject() instanceof TaxonNameEditorE4 |
232 | 233 |
&& ((TaxonNameEditorE4) part.getObject()).getTaxon()!=null |
233 | 234 |
&& ((TaxonNameEditorE4) part.getObject()).getTaxon().getUuid().equals(input.getTaxon().getUuid())){ |
234 |
if (input.getTaxon().getTaxonNodes().size() > 1){ |
|
235 |
boolean doSave = forceUserSaveE4Editor(((TaxonNameEditorE4) part.getObject()), getShell()); |
|
236 |
if (doSave){ |
|
237 |
input = TaxonEditorInputE4.NewInstance(input.getTaxonNode().getUuid()); |
|
238 |
break; |
|
239 |
}else { |
|
240 |
return; |
|
241 |
} |
|
242 |
} |
|
243 | 235 |
|
244 |
partService.activate(part, true); |
|
245 |
return; |
|
236 |
UUID inputNode = input.getTaxonNode().getUuid(); |
|
237 |
UUID editorNode = ((TaxonNameEditorE4) part.getObject()).getTaxonNode().getUuid(); |
|
238 |
if (!inputNode.equals(editorNode)){ |
|
239 |
alreadyOpenInOtherClassification = part; |
|
240 |
}else{ |
|
241 |
partService.activate(part, true); |
|
242 |
return; |
|
243 |
} |
|
246 | 244 |
|
247 | 245 |
} |
248 | 246 |
} |
247 |
if (alreadyOpenInOtherClassification != null){ |
|
248 |
boolean doSave = forceUserSaveE4Editor(((TaxonNameEditorE4) alreadyOpenInOtherClassification.getObject()), getShell()); |
|
249 |
if (doSave){ |
|
250 |
input = TaxonEditorInputE4.NewInstance(input.getTaxonNode().getUuid()); |
|
251 |
partService.hidePart(alreadyOpenInOtherClassification); |
|
252 |
}else { |
|
253 |
return; |
|
254 |
} |
|
255 |
} |
|
256 |
|
|
249 | 257 |
MPart part = showPart(NAME_EDITOR_ID, modelService, partService, application); |
250 | 258 |
|
251 | 259 |
TaxonNameEditorE4 editor = (TaxonNameEditorE4) part.getObject(); |
Also available in: Unified diff
ref #9587: adapt editor handling for shared taxa