Improve CMS UI framework.
[lgpl/argeo-commons.git] / org.argeo.cms.ui / src / org / argeo / cms / ui / dialogs / CmsFeedback.java
index 3ee083394aa7f85c10d6c57e38c7a2288f737bdd..91dc7fb768ac62373814c50a66aa2136ddf6564d 100644 (file)
@@ -18,6 +18,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 +32,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 +42,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 */