Project

General

Profile

« Previous | Next » 

Revision 5e966d50

Added by Katja Luther about 5 years ago

ref #8197: fix delete of media in media view

View differences:

eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/media/handler/DeleteMediaHandler.java
4 4
package eu.etaxonomy.taxeditor.editor.view.media.handler;
5 5

  
6 6
import java.util.Iterator;
7
import java.util.Set;
7 8

  
8 9
import javax.inject.Named;
9 10

  
......
23 24

  
24 25
import eu.etaxonomy.cdm.api.service.config.MediaDeletionConfigurator;
25 26
import eu.etaxonomy.cdm.model.description.DescriptionBase;
27
import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
26 28
import eu.etaxonomy.cdm.model.description.SpecimenDescription;
27 29
import eu.etaxonomy.cdm.model.description.TaxonDescription;
28 30
import eu.etaxonomy.cdm.model.description.TaxonNameDescription;
29 31
import eu.etaxonomy.cdm.model.media.Media;
30 32
import eu.etaxonomy.taxeditor.editor.EditorUtil;
31 33
import eu.etaxonomy.taxeditor.editor.l10n.Messages;
34
import eu.etaxonomy.taxeditor.editor.name.e4.TaxonNameEditorE4;
32 35
import eu.etaxonomy.taxeditor.editor.view.descriptive.operation.DeleteSpecimenDescriptionOperation;
33 36
import eu.etaxonomy.taxeditor.editor.view.descriptive.operation.DeleteTaxonDescriptionOperation;
34 37
import eu.etaxonomy.taxeditor.editor.view.media.e4.MediaViewPartE4;
......
86 89
            }
87 90
            if(object instanceof Media){
88 91
                AbstractPostOperation<?> operation = new DeleteMediaOperation(menuItem.getLocalizedLabel(), EditorUtil.getUndoContext(), description, (Media) object, config, mediaView);
89
                AbstractUtility.executeOperation(operation, sync);
92
                if (mediaView.getSelectionProvidingPart().getObject() instanceof TaxonNameEditorE4){
93
                    if (!config.isOnlyRemoveFromGallery()){
94
                        ((TaxonNameEditorE4)mediaView.getSelectionProvidingPart().getObject()).getEditorInput().addOperation(operation);
95
                    }
96
                    Media media = (Media)object;
97
                    if (description.isImageGallery()){
98
                        Set<DescriptionElementBase> elements = description.getElements();
99
                        if (elements.size() == 1){
100
                              DescriptionElementBase element = elements.iterator().next();
101
                              element.removeMedia(media);
102
                              if (element.getMedia().isEmpty()){
103
                                  description.removeElement(element);
104
                              }
105
                        }
106
                    }
107

  
108
                  ((TaxonNameEditorE4)mediaView.getSelectionProvidingPart().getObject()).setDirty();
109
                  ((TaxonNameEditorE4)mediaView.getSelectionProvidingPart().getObject()).redraw();
110
                }else{
111
                    AbstractUtility.executeOperation(operation, sync);
112
                }
90 113
            }
91 114
            if(object instanceof DescriptionBase && ((DescriptionBase) object).isImageGallery()){
92 115
                if(object instanceof TaxonDescription){
93 116
                    DeleteTaxonDescriptionOperation deleteTaxonDescriptionOperation = new DeleteTaxonDescriptionOperation(menuItem.getLocalizedLabel(), EditorUtil.getUndoContext(), (TaxonDescription)object, mediaView, null);
94
                    AbstractUtility.executeOperation(deleteTaxonDescriptionOperation, sync);
117
                    if (mediaView.getSelectionProvidingPart().getObject() instanceof TaxonNameEditorE4){
118
                        ((TaxonNameEditorE4)mediaView.getSelectionProvidingPart().getObject()).getEditorInput().addOperation(deleteTaxonDescriptionOperation);
119
                        ((TaxonNameEditorE4)mediaView.getSelectionProvidingPart().getObject()).setDirty();
120
                        ((TaxonNameEditorE4)mediaView.getSelectionProvidingPart().getObject()).redraw();
121

  
122
                     }else{
123
                         AbstractUtility.executeOperation(deleteTaxonDescriptionOperation, sync);
124
                     }
95 125
                }
96 126
                else if(object instanceof SpecimenDescription){
97 127
                    DeleteSpecimenDescriptionOperation deleteTaxonDescriptionOperation = new DeleteSpecimenDescriptionOperation(menuItem.getLocalizedLabel(), EditorUtil.getUndoContext(), (SpecimenDescription)object, mediaView, null);
98
                    AbstractUtility.executeOperation(deleteTaxonDescriptionOperation, sync);
128
                    if (mediaView.getSelectionProvidingPart().getObject() instanceof TaxonNameEditorE4){
129
                        ((TaxonNameEditorE4)mediaView.getSelectionProvidingPart().getObject()).getEditorInput().addOperation(deleteTaxonDescriptionOperation);
130
                        ((TaxonNameEditorE4)mediaView.getSelectionProvidingPart().getObject()).setDirty();
131
                        ((TaxonNameEditorE4)mediaView.getSelectionProvidingPart().getObject()).redraw();
132
                     }else{
133
                         AbstractUtility.executeOperation(deleteTaxonDescriptionOperation, sync);
134
                     }
99 135
                }
100 136
            }
101 137
        }

Also available in: Unified diff