X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=org.argeo.cms.ui%2Fsrc%2Forg%2Fargeo%2Fcms%2Fui%2Fdialogs%2FCmsFeedback.java;h=de91bc45cb625b0d909cd4c1a04651d110d62b86;hb=ebdd232d5f7d14000c423caede5cf2b0248b234a;hp=61cce4ed3349f693fefd7715c7346d53ec49ba88;hpb=7fa402d36e0e194424589f4d7efeae5610d2c6eb;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.cms.ui/src/org/argeo/cms/ui/dialogs/CmsFeedback.java b/org.argeo.cms.ui/src/org/argeo/cms/ui/dialogs/CmsFeedback.java index 61cce4ed3..de91bc45c 100644 --- a/org.argeo.cms.ui/src/org/argeo/cms/ui/dialogs/CmsFeedback.java +++ b/org.argeo.cms.ui/src/org/argeo/cms/ui/dialogs/CmsFeedback.java @@ -5,6 +5,7 @@ import java.io.StringWriter; 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; @@ -13,11 +14,11 @@ import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Button; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Control; -import org.eclipse.swt.widgets.Display; 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); @@ -37,25 +38,31 @@ public class CmsFeedback extends LightweightDialog { if (e instanceof ThreadDeath) throw (ThreadDeath) e; - new CmsFeedback(getDisplay().getActiveShell(), message, e).open(); + try { + CmsFeedback cmsFeedback = new CmsFeedback(null, message, e); + cmsFeedback.setBlockOnOpen(false); + cmsFeedback.open(); + } catch (Throwable e1) { + log.error("Cannot open error feedback (" + e.getMessage() + "), original error below", e); + } } public static void show(String message) { - new CmsFeedback(getDisplay().getActiveShell(), message, null).open(); + new CmsFeedback(null, message, null).open(); } /** Tries to find a display */ - private static Display getDisplay() { - try { - Display display = Display.getCurrent(); - if (display != null) - return display; - else - return Display.getDefault(); - } catch (Exception e) { - return Display.getCurrent(); - } - } + // private static Display getDisplay() { + // try { + // Display display = Display.getCurrent(); + // if (display != null) + // return display; + // else + // return Display.getDefault(); + // } catch (Exception e) { + // return Display.getCurrent(); + // } + // } protected Control createDialogArea(Composite parent) { parent.setLayout(new GridLayout(2, false)); @@ -67,7 +74,7 @@ public class CmsFeedback extends LightweightDialog { messageLbl.setText(exception.getLocalizedMessage()); Button close = new Button(parent, SWT.FLAT); - close.setText("Close"); + close.setText(CmsMsg.close.lead()); close.setLayoutData(new GridData(SWT.END, SWT.TOP, false, false)); close.addSelectionListener((Selected) (e) -> closeShell(OK));