Project

General

Profile

« Previous | Next » 

Revision 60fa760b

Added by Katja Luther almost 3 years ago

ref #9587: adapt editor handling for shared taxa

View differences:

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