Improve CMS dialogs and localisation.
[lgpl/argeo-commons.git] / org.argeo.cms.ui / src / org / argeo / cms / ui / dialogs / CmsFeedback.java
index 3ee083394aa7f85c10d6c57e38c7a2288f737bdd..30e2ad34ff4e3d90edf653ffd4d7ec779e21de11 100644 (file)
@@ -7,7 +7,6 @@ import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.argeo.cms.CmsMsg;
 import org.argeo.eclipse.ui.Selected;
-import org.argeo.eclipse.ui.dialogs.LightweightDialog;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.layout.GridData;
 import org.eclipse.swt.layout.GridLayout;
@@ -18,6 +17,7 @@ import org.eclipse.swt.widgets.Label;
 import org.eclipse.swt.widgets.Shell;
 import org.eclipse.swt.widgets.Text;
 
+/** A dialog feedback based on a {@link LightweightDialog}. */
 public class CmsFeedback extends LightweightDialog {
        private final static Log log = LogFactory.getLog(CmsFeedback.class);
 
@@ -31,7 +31,7 @@ public class CmsFeedback extends LightweightDialog {
                log.error(message, e);
        }
 
-       public static void show(String message, Throwable e) {
+       public static CmsFeedback show(String message, Throwable e) {
                // rethrow ThreaDeath in order to make sure that RAP will properly clean
                // up the UI thread
                if (e instanceof ThreadDeath)
@@ -41,13 +41,17 @@ public class CmsFeedback extends LightweightDialog {
                        CmsFeedback cmsFeedback = new CmsFeedback(null, message, e);
                        cmsFeedback.setBlockOnOpen(false);
                        cmsFeedback.open();
+                       return cmsFeedback;
                } catch (Throwable e1) {
                        log.error("Cannot open error feedback (" + e.getMessage() + "), original error below", e);
+                       return null;
                }
        }
 
-       public static void show(String message) {
-               new CmsFeedback(null, message, null).open();
+       public static CmsFeedback show(String message) {
+               CmsFeedback cmsFeedback = new CmsFeedback(null, message, null);
+               cmsFeedback.open();
+               return cmsFeedback;
        }
 
        /** Tries to find a display */