Merge branch 'develop' into taxonDescription
[taxeditor.git] / eu.etaxonomy.taxeditor.store / src / main / java / eu / etaxonomy / taxeditor / model / DeleteResultMessagingUtils.java
index 8e46d480601319bcaf27e881dd2c62dcd9a25e33..5f9319f6dfebfa46a8fc9963f468e8471a87ef25 100644 (file)
@@ -1,4 +1,3 @@
-// $Id$
 /**
 * Copyright (C) 2015 EDIT
 * European Distributed Institute of Taxonomy
@@ -19,6 +18,7 @@ import org.eclipse.core.runtime.Status;
 import eu.etaxonomy.cdm.api.service.DeleteResult;
 import eu.etaxonomy.cdm.model.common.CdmBase;
 import eu.etaxonomy.cdm.model.common.IdentifiableEntity;
+import eu.etaxonomy.taxeditor.l10n.Messages;
 
 /**
  * @author k.luther
@@ -26,6 +26,10 @@ import eu.etaxonomy.cdm.model.common.IdentifiableEntity;
  *
  */
 public class DeleteResultMessagingUtils extends MessagingUtils {
+
+    private static final String DELETE_WAS_ABORTED = Messages.DeleteResultMessagingUtils_ABORT;
+    private static final String DELETE_WAS_SUCCESSFULL = Messages.DeleteResultMessagingUtils_SUCCES;
+
     /**
      * Displays a message {@link org.eclipse.jface.dialogs.MessageDialog}.
      *
@@ -38,16 +42,16 @@ public class DeleteResultMessagingUtils extends MessagingUtils {
             return;
         }
         List<String> details = new ArrayList<String>();
-        String title= "";
+        String title= ""; //$NON-NLS-1$
 
         if (result.getExceptions().size() > 0){
             for (Exception e:result.getExceptions()){
                 details.add(e.getMessage());
             }
             if (result.isOk()){
-                title = "Delete was successfull.";
+                title = DELETE_WAS_SUCCESSFULL;
             } else {
-                title = "Delete was aborted.";
+                title = DELETE_WAS_ABORTED;
             }
         }
         StringBuffer relatedObjectsString = new StringBuffer();
@@ -57,26 +61,48 @@ public class DeleteResultMessagingUtils extends MessagingUtils {
             while (objects.hasNext()){
                 CdmBase object = objects.next();
                 if (object instanceof IdentifiableEntity){
-                    relatedObjects.add("[" + object.getClass().getSimpleName() + "] " +((IdentifiableEntity)object).getTitleCache() );
+
+                    relatedObjects.add(((IdentifiableEntity)object).getTitleCache() );
                 } else{
                     relatedObjects.add(object.getUserFriendlyTypeName());
                 }
-
             }
 
             for (String relatedObject: relatedObjects){
 
                 relatedObjectsString.append(relatedObject);
-                relatedObjectsString.append("\n");
+                relatedObjectsString.append(System.lineSeparator());
             }
         }
-        message = message + "\n" ;
+        message = message + "\n" ; //$NON-NLS-1$
         String stackTraceWithContext = getContextInfo(details);
         CdmDeleteErrorDialog ced = new CdmDeleteErrorDialog(AbstractUtility.getShell(), title, message,new Status(IStatus.INFO, pluginId, relatedObjectsString.toString(), result.getExceptions().iterator().next()), stackTraceWithContext, result.getUpdatedObjects().toArray());
 
         ced.open();
+    }
+
+    public static void messageDialogWithDetails(IStatus result, String message, String pluginId) {
 
+        List<String> details = new ArrayList<String>();
+        String title= ""; //$NON-NLS-1$
+        Throwable e = null;
+        if (result.isMultiStatus()){
+            for (IStatus childStatus:result.getChildren()){
+                details.add(childStatus.getMessage());
+            }
+            e = result.getChildren()[0].getException();
+            if (result.equals(Status.OK_STATUS)|| result.equals(IStatus.WARNING)){
+                title = DELETE_WAS_SUCCESSFULL;
+            } else {
+                title = DELETE_WAS_ABORTED;
+            }
+        }
+        Object[] relatedObjects = new ArrayList<Object>().toArray();
 
+        String stackTraceWithContext = getContextInfo(details);
+        CdmDeleteErrorDialog ced = new CdmDeleteErrorDialog(AbstractUtility.getShell(), title, message,new Status(IStatus.INFO, pluginId, null, e), stackTraceWithContext, relatedObjects);
 
+        ced.open();
     }
+
 }