X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=org.argeo.cms.ui%2Fsrc%2Forg%2Fargeo%2Fcms%2Fui%2Fdialogs%2FCmsMessageDialog.java;h=eb881c6bd03cf60fb7e9b7181465f57055b24228;hb=94ec9b5a0282c8119ee9831688124bc96f3a62b8;hp=ba04b645baa4113a6e335e32a71e5809e06568f0;hpb=1e077d22f485d504491e65579258925b53bf1a3c;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.cms.ui/src/org/argeo/cms/ui/dialogs/CmsMessageDialog.java b/org.argeo.cms.ui/src/org/argeo/cms/ui/dialogs/CmsMessageDialog.java index ba04b645b..eb881c6bd 100644 --- a/org.argeo.cms.ui/src/org/argeo/cms/ui/dialogs/CmsMessageDialog.java +++ b/org.argeo.cms.ui/src/org/argeo/cms/ui/dialogs/CmsMessageDialog.java @@ -4,7 +4,6 @@ import org.argeo.cms.CmsMsg; import org.argeo.cms.ui.util.CmsUiUtils; import org.argeo.eclipse.ui.EclipseUiUtils; import org.argeo.eclipse.ui.Selected; -import org.argeo.eclipse.ui.dialogs.LightweightDialog; import org.eclipse.swt.SWT; import org.eclipse.swt.events.TraverseEvent; import org.eclipse.swt.events.TraverseListener; @@ -20,10 +19,13 @@ import org.eclipse.swt.widgets.Shell; /** Base class for dialogs displaying messages or small forms. */ public class CmsMessageDialog extends LightweightDialog { + public final static int NONE = 0; + public final static int ERROR = 1; public final static int INFORMATION = 2; public final static int QUESTION = 3; public final static int WARNING = 4; public final static int CONFIRM = 5; + public final static int QUESTION_WITH_CANCEL = 6; private int kind; private String message; @@ -57,18 +59,19 @@ public class CmsMessageDialog extends LightweightDialog { body.setLayout(bodyGridLayout); body.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); - Label messageLbl = new Label(body, SWT.WRAP); - CmsUiUtils.markup(messageLbl); - messageLbl.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false)); - messageLbl.setFont(EclipseUiUtils.getBoldFont(parent)); - if (message != null) + if (message != null) { + Label messageLbl = new Label(body, SWT.WRAP); + CmsUiUtils.markup(messageLbl); + messageLbl.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false)); + messageLbl.setFont(EclipseUiUtils.getBoldFont(parent)); messageLbl.setText(message); + } // buttons Composite buttons = new Composite(parent, SWT.NONE); buttons.addTraverseListener(traverseListener); buttons.setLayoutData(new GridData(SWT.END, SWT.FILL, true, false)); - if (kind == INFORMATION || kind == WARNING) { + if (kind == INFORMATION || kind == WARNING || kind == ERROR || kind == ERROR) { GridLayout layout = new GridLayout(1, true); layout.marginWidth = 0; layout.marginHeight = 0; @@ -82,7 +85,7 @@ public class CmsMessageDialog extends LightweightDialog { close.addTraverseListener(traverseListener); buttons.setTabList(new Control[] { close }); - } else if (kind == CONFIRM || kind == QUESTION) { + } else if (kind == CONFIRM || kind == QUESTION || kind == QUESTION_WITH_CANCEL) { Control input = createInputArea(body); if (input != null) { input.addTraverseListener(traverseListener); @@ -128,6 +131,10 @@ public class CmsMessageDialog extends LightweightDialog { closeShell(CANCEL); } + protected void cancel() { + closeShell(CANCEL); + } + protected Point getInitialSize() { return new Point(400, 200); } @@ -153,4 +160,8 @@ public class CmsMessageDialog extends LightweightDialog { open(WARNING, Display.getCurrent().getActiveShell(), message); } + public static void openError(String message) { + open(ERROR, Display.getCurrent().getActiveShell(), message); + } + }