package eu.etaxonomy.taxeditor.editor.view.media.operation;
+import java.util.ArrayList;
+import java.util.List;
+
import org.eclipse.core.commands.ExecutionException;
import org.eclipse.core.commands.operations.IUndoContext;
import org.eclipse.core.runtime.IAdaptable;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.IStatus;
+import eu.etaxonomy.cdm.api.service.DeleteResult;
import eu.etaxonomy.cdm.api.service.IMediaService;
import eu.etaxonomy.cdm.api.service.config.MediaDeletionConfigurator;
import eu.etaxonomy.cdm.api.utility.ImagesUtility;
import eu.etaxonomy.cdm.model.description.DescriptionBase;
import eu.etaxonomy.cdm.model.media.Media;
+import eu.etaxonomy.taxeditor.bulkeditor.internal.TaxeditorBulkeditorPlugin;
+import eu.etaxonomy.taxeditor.model.DeleteResultMessagingUtils;
+import eu.etaxonomy.taxeditor.model.MessagingUtils;
import eu.etaxonomy.taxeditor.operation.AbstractPostTaxonOperation;
import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
import eu.etaxonomy.taxeditor.store.CdmStore;
// ImagesUtility.removeMediaFromGallery(description, media);
monitor.worked(20);
- CdmStore.getService(IMediaService.class).delete(media.getUuid(), config);
+ DeleteResult result = CdmStore.getService(IMediaService.class).delete(media.getUuid(), config);
+ String errorMessage = "The media ";
+ if (result.isOk()){
+ ImagesUtility.removeMediaFromGallery(description, media);
+ } else{
+ List<String> messages = new ArrayList<String>();
+ int i = result.getExceptions().size();
+ for (Exception e:result.getExceptions()){
+ messages.add(e.getMessage());
+ }
+ errorMessage += "could not be deleted.";
+ //MessagingUtils.errorDialog("test", getClass(), "message", TaxeditorBulkeditorPlugin.PLUGIN_ID, result.getExceptions().iterator().next(),true);
+ DeleteResultMessagingUtils.messageDialogWithDetails(result,errorMessage, TaxeditorBulkeditorPlugin.PLUGIN_ID);
+ }
monitor.worked(40);
return postExecute(null);
DeleteConfiguration_media_removeFromGallery=Remove the media from the image gallery but leave it in database
DeleteConfiguration_media_deleteIfUsedInTaxonDescription=Delete also if media is used in taxon description
DeleteConfiguration_media_deleteIfUsedInSpecimenDescription=Delete also if media is used in specimen description
-DeleteConfiguration_media_delete=Delete the media completely
+DeleteConfiguration_media_delete=Delete the media completely, if possible
NewGrantedAuthority_AlreadyInDb=The granted authority already exists.
PresenceAbsenceTermDetailElement_COLOR_NOT_SET=Farbe konnte nicht gespeichert werden
PresenceAbsenceTermDetailElement_LABEL_COLOR=Farbe
-DeleteConfiguration_media_removeFromGallery=Entferne Medienobjekt aus der Gallerie, aber behalte es in der Datenbank
-DeleteConfiguration_media_deleteIfUsedInTaxonDescription=Lösche das Medienobjekt, auch wenn es Teil einer Taxonbeschreibung ist
-DeleteConfiguration_media_deleteIfUsedInSpecimenDescription=Lösche das Medienobjekt, auch wenn es Teil einer Specimenbeschreibung ist
-DeleteConfiguration_media_delete=Lösche das Medienobjekt
+DeleteConfiguration_media_removeFromGallery=Entferne Mediendaten aus der Gallerie, aber behalte es in der Datenbank
+DeleteConfiguration_media_deleteIfUsedInTaxonDescription=Lösche die Mediendaten, auch wenn es Teil einer Taxonbeschreibung ist
+DeleteConfiguration_media_deleteIfUsedInSpecimenDescription=Lösche die Mediendaten, auch wenn es Teil einer Specimenbeschreibung ist
+DeleteConfiguration_media_delete=Lösche die Mediendaten, wenn es nicht von anderen Daten referenziert wird.
NewGrantedAuthority_AlreadyInDb=Die GrantedAuthority ist bereits in der DB enthalten.