cleanup
[taxeditor.git] / eu.etaxonomy.taxeditor.store / src / main / java / eu / etaxonomy / taxeditor / model / MessagingUtils.java
index 81278277d0b2f33e10506ee533143393bf6c8485..9a2eba5faf64206e615be269f73881e0b9308f75 100644 (file)
@@ -14,7 +14,10 @@ import org.eclipse.core.runtime.Status;
 import org.eclipse.jface.dialogs.MessageDialog;
 import org.eclipse.swt.widgets.Display;
 
+import eu.etaxonomy.cdm.common.CdmUtils;
+import eu.etaxonomy.cdm.config.ICdmSource;
 import eu.etaxonomy.cdm.test.integration.SecurityExceptionUtils;
+import eu.etaxonomy.taxeditor.remoting.source.CdmRemoteSource;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 import eu.etaxonomy.taxeditor.store.internal.TaxeditorStorePlugin;
 
@@ -32,7 +35,8 @@ public class MessagingUtils {
     public final static String CONTACT_MESSAGE = System.getProperty("line.separator") +  "Please contact EDIT Support (EditSupport@bgbm.org) with the error trace below (click on the 'Details' button).";
     public final static String DEFAULT_MESSAGE = "Error thrown but no associated message";
     public final static String CONNECTION_FAILURE_MESSAGE = "The connection to the remote server has been broken";
-    public final static String REMOTE_ACCESS_FAILURE_MESSAGE = "Problem accessing remote server";
+    public final static String REMOTE_ACCESS_FAILURE_MESSAGE = "Maybe the server is currently not available. If the problem persists please contact the server admin with the error trace below.";
+    public static final String WIDGET_IS_DISPOSED_MESSAGE = "A widget was called, which was already disposed";
 
     /**
      * Gets the Log4J logger for a given class
@@ -174,6 +178,7 @@ public class MessagingUtils {
     public static List<String> getContextInfo() {
         List<String> contextInfo = new ArrayList<String>();
         String name = "";
+        String contextPath = "";
         String schemaVersion = "";
         String server = "";
         String version = "";
@@ -181,11 +186,18 @@ public class MessagingUtils {
         try {
             version = Platform.getBundle("eu.etaxonomy.taxeditor.application").getHeaders().get(org.osgi.framework.Constants.BUNDLE_VERSION);
 
-            if(CdmStore.getActiveCdmSource() != null ) {
+            ICdmSource activeCdmSource = CdmStore.getActiveCdmSource();
+            if(activeCdmSource != null ) {
                 login = CdmStore.getLoginManager().getAuthenticatedUser().getUsername();
-                name = CdmStore.getActiveCdmSource().getName();
-                schemaVersion = CdmStore.getActiveCdmSource().getDbSchemaVersion();
-                server = CdmStore.getActiveCdmSource().getServer();
+                name = activeCdmSource.getName();
+                schemaVersion = activeCdmSource.getDbSchemaVersion();
+                server = activeCdmSource.getServer();
+                if(activeCdmSource instanceof CdmRemoteSource){
+                    contextPath = ((CdmRemoteSource) activeCdmSource).getContextPath();
+                    if (contextPath != null && contextPath.startsWith("cdmserver/")){
+                       contextPath = contextPath.substring("cdmserver/".length());
+                    }
+                }
             }
 
         } catch (Exception e) {
@@ -193,7 +205,7 @@ public class MessagingUtils {
         }
         contextInfo.add("login : " + login);
         contextInfo.add("editor version : " + version);
-        contextInfo.add("server : " + server + " / " + name);
+        contextInfo.add("server : " + server + " (" + name + ")" + (CdmUtils.isNotBlank(contextPath)?" / "+contextPath:""));
         contextInfo.add("schema version : " + schemaVersion);
         contextInfo.add("os : " + System.getProperty("os.name")+" "+System.getProperty("os.version")+" "+System.getProperty("os.arch"));
         contextInfo.add("java : "+System.getProperty("java.version"));
@@ -412,7 +424,7 @@ public class MessagingUtils {
                     warningDialog(title, source, String.format("You are missing sufficient permissions for the operation \"%s\". %s", operationlabel, hint));
                 } else {
                     title = "Error executing operation";
-                    errorDialog(title, source, String.format("An error occured while executing %s. %s", operationlabel, hint), pluginId, ex, true);
+                    errorDialog(title, source, String.format("An error occurred while executing %s. %s", operationlabel, hint), pluginId, ex, true);
 
                 }
 
@@ -548,6 +560,20 @@ public class MessagingUtils {
                 + "connected to a datasource. You may choose a datasource to connect to or create a new one in the datasource view.");
     }
 
+    /**
+     * Standard warning dialog for the case when the datasource is not available
+     *
+     * @param source
+     */
+    public static void dataSourceNotAvailableWarningDialog(Object source) {
+        MessagingUtils
+        .warningDialog(
+                "The datasource is not available",
+                source,
+                "The editor is not connected to a datasource. Maybe the datasource is not available.");
+    }
+
+
     /**
      * Displays a warning {@link org.eclipse.jface.dialogs.MessageDialog}.
      *