Improve dialogs.
[lgpl/argeo-commons.git] / org.argeo.eclipse.ui / src / org / argeo / eclipse / ui / dialogs / SingleValue.java
index b58f44694e18f084290c191b74fb34f777c0fd5d..8ce9b44fb5bade306d868ceff17634fc8cf74934 100644 (file)
@@ -1,23 +1,9 @@
-/*
- * Copyright (C) 2007-2012 Argeo GmbH
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *         http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
 package org.argeo.eclipse.ui.dialogs;
 
-import org.eclipse.jface.dialogs.Dialog;
+import org.argeo.eclipse.ui.EclipseUiUtils;
 import org.eclipse.jface.dialogs.IMessageProvider;
 import org.eclipse.jface.dialogs.TitleAreaDialog;
+import org.eclipse.jface.window.Window;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.graphics.Point;
 import org.eclipse.swt.layout.GridData;
@@ -29,7 +15,12 @@ import org.eclipse.swt.widgets.Label;
 import org.eclipse.swt.widgets.Shell;
 import org.eclipse.swt.widgets.Text;
 
-/** Dialog retrieve a single value. */
+/**
+ * Dialog to retrieve a single value.
+ * 
+ * @deprecated Use CMS dialogs instead.
+ */
+@Deprecated
 public class SingleValue extends TitleAreaDialog {
        private static final long serialVersionUID = 2843538207460082349L;
 
@@ -40,7 +31,7 @@ public class SingleValue extends TitleAreaDialog {
 
        public static String ask(String label, String message) {
                SingleValue svd = new SingleValue(label, message);
-               if (svd.open() == Dialog.OK)
+               if (svd.open() == Window.OK)
                        return svd.getString();
                else
                        return null;
@@ -48,7 +39,7 @@ public class SingleValue extends TitleAreaDialog {
 
        public static Long askLong(String label, String message) {
                SingleValue svd = new SingleValue(label, message);
-               if (svd.open() == Dialog.OK)
+               if (svd.open() == Window.OK)
                        return svd.getLong();
                else
                        return null;
@@ -56,19 +47,17 @@ public class SingleValue extends TitleAreaDialog {
 
        public static Double askDouble(String label, String message) {
                SingleValue svd = new SingleValue(label, message);
-               if (svd.open() == Dialog.OK)
+               if (svd.open() == Window.OK)
                        return svd.getDouble();
                else
                        return null;
        }
 
        public SingleValue(String label, String message) {
-               this(Display.getDefault().getActiveShell(), label, message, label,
-                               false);
+               this(Display.getDefault().getActiveShell(), label, message, label, false);
        }
 
-       public SingleValue(Shell parentShell, String title, String message,
-                       String label, Boolean multiline) {
+       public SingleValue(Shell parentShell, String title, String message, String label, Boolean multiline) {
                super(parentShell);
                this.title = title;
                this.message = message;
@@ -77,20 +66,28 @@ public class SingleValue extends TitleAreaDialog {
        }
 
        protected Point getInitialSize() {
-               return new Point(300, 250);
+               if (multiline)
+                       return new Point(450, 350);
+
+               else
+                       return new Point(400, 270);
        }
 
        protected Control createDialogArea(Composite parent) {
                Composite dialogarea = (Composite) super.createDialogArea(parent);
                dialogarea.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
                Composite composite = new Composite(dialogarea, SWT.NONE);
-               composite.setLayout(new GridLayout(2, false));
-               composite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false));
+               composite.setLayoutData(EclipseUiUtils.fillAll());
+               GridLayout layout = new GridLayout(2, false);
+               layout.marginWidth = layout.marginHeight = 20;
+               composite.setLayout(layout);
+
                valueT = createLT(composite, label);
 
                setMessage(message, IMessageProvider.NONE);
 
                parent.pack();
+               valueT.setFocus();
                return composite;
        }
 
@@ -103,9 +100,14 @@ public class SingleValue extends TitleAreaDialog {
        /** Creates label and text. */
        protected Text createLT(Composite parent, String label) {
                new Label(parent, SWT.NONE).setText(label);
-               Text text = new Text(parent, SWT.SINGLE | SWT.LEAD | SWT.BORDER
-                               | (multiline ? SWT.MULTI : SWT.NONE));
-               text.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
+               Text text;
+               if (multiline) {
+                       text = new Text(parent, SWT.LEAD | SWT.BORDER | SWT.MULTI);
+                       text.setLayoutData(EclipseUiUtils.fillAll());
+               } else {
+                       text = new Text(parent, SWT.LEAD | SWT.BORDER | SWT.SINGLE);
+                       text.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, true));
+               }
                return text;
        }