annotate dwtx/jface/dialogs/MessageDialog.d @ 192:c3583c6ec027

Added missing default cases for switch statements
author Frank Benoit <benoit@tionex.de>
date Mon, 03 Nov 2008 22:52:26 +0100
parents ea8ff534f622
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
21
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1 /*******************************************************************************
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
2 * Copyright (c) 2000, 2007 IBM Corporation and others.
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
3 * All rights reserved. This program and the accompanying materials
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
4 * are made available under the terms of the Eclipse Public License v1.0
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
5 * which accompanies this distribution, and is available at
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
6 * http://www.eclipse.org/legal/epl-v10.html
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
7 *
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
8 * Contributors:
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
9 * IBM Corporation - initial API and implementation
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
10 * Port to the D programming language:
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
11 * Frank Benoit <benoit@tionex.de>
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
12 *******************************************************************************/
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
13 module dwtx.jface.dialogs.MessageDialog;
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
14
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
15 import dwtx.jface.dialogs.IconAndMessageDialog;
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
16 import dwtx.jface.dialogs.IDialogConstants;
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
17
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
18 import dwt.DWT;
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
19 import dwt.custom.CLabel;
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
20 import dwt.graphics.Image;
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
21 import dwt.layout.GridData;
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
22 import dwt.layout.GridLayout;
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
23 import dwt.widgets.Button;
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
24 import dwt.widgets.Composite;
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
25 import dwt.widgets.Control;
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
26 import dwt.widgets.Label;
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
27 import dwt.widgets.Shell;
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
28
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
29 import dwt.dwthelper.utils;
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
30
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
31 /**
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
32 * A dialog for showing messages to the user.
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
33 * <p>
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
34 * This concrete dialog class can be instantiated as is, or further subclassed
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
35 * as required.
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
36 * </p>
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
37 */
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
38 public class MessageDialog : IconAndMessageDialog {
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
39 /**
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
40 * Constant for a dialog with no image (value 0).
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
41 */
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
42 public const static int NONE = 0;
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
43
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
44 /**
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
45 * Constant for a dialog with an error image (value 1).
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
46 */
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
47 public const static int ERROR = 1;
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
48
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
49 /**
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
50 * Constant for a dialog with an info image (value 2).
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
51 */
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
52 public const static int INFORMATION = 2;
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
53
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
54 /**
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
55 * Constant for a dialog with a question image (value 3).
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
56 */
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
57 public const static int QUESTION = 3;
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
58
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
59 /**
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
60 * Constant for a dialog with a warning image (value 4).
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
61 */
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
62 public const static int WARNING = 4;
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
63
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
64 /**
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
65 * Labels for buttons in the button bar (localized strings).
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
66 */
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
67 private String[] buttonLabels;
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
68
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
69 /**
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
70 * The buttons. Parallels <code>buttonLabels</code>.
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
71 */
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
72 private Button[] buttons;
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
73
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
74 /**
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
75 * Index into <code>buttonLabels</code> of the default button.
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
76 */
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
77 private int defaultButtonIndex;
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
78
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
79 /**
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
80 * Dialog title (a localized string).
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
81 */
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
82 private String title;
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
83
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
84 /**
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
85 * Dialog title image.
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
86 */
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
87 private Image titleImage;
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
88
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
89 /**
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
90 * Image, or <code>null</code> if none.
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
91 */
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
92 private Image image = null;
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
93
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
94 /**
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
95 * The custom dialog area.
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
96 */
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
97 private Control customArea;
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
98
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
99 /**
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
100 * Create a message dialog. Note that the dialog will have no visual
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
101 * representation (no widgets) until it is told to open.
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
102 * <p>
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
103 * The labels of the buttons to appear in the button bar are supplied in
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
104 * this constructor as an array. The <code>open</code> method will return
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
105 * the index of the label in this array corresponding to the button that was
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
106 * pressed to close the dialog. If the dialog was dismissed without pressing
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
107 * a button (ESC, etc.) then -1 is returned. Note that the <code>open</code>
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
108 * method blocks.
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
109 * </p>
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
110 *
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
111 * @param parentShell
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
112 * the parent shell
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
113 * @param dialogTitle
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
114 * the dialog title, or <code>null</code> if none
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
115 * @param dialogTitleImage
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
116 * the dialog title image, or <code>null</code> if none
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
117 * @param dialogMessage
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
118 * the dialog message
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
119 * @param dialogImageType
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
120 * one of the following values:
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
121 * <ul>
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
122 * <li><code>MessageDialog.NONE</code> for a dialog with no
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
123 * image</li>
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
124 * <li><code>MessageDialog.ERROR</code> for a dialog with an
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
125 * error image</li>
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
126 * <li><code>MessageDialog.INFORMATION</code> for a dialog
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
127 * with an information image</li>
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
128 * <li><code>MessageDialog.QUESTION </code> for a dialog with a
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
129 * question image</li>
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
130 * <li><code>MessageDialog.WARNING</code> for a dialog with a
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
131 * warning image</li>
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
132 * </ul>
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
133 * @param dialogButtonLabels
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
134 * an array of labels for the buttons in the button bar
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
135 * @param defaultIndex
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
136 * the index in the button label array of the default button
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
137 */
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
138 public this(Shell parentShell, String dialogTitle,
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
139 Image dialogTitleImage, String dialogMessage, int dialogImageType,
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
140 String[] dialogButtonLabels, int defaultIndex) {
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
141 super(parentShell);
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
142 this.title = dialogTitle;
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
143 this.titleImage = dialogTitleImage;
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
144 this.message = dialogMessage;
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
145
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
146 switch (dialogImageType) {
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
147 case ERROR: {
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
148 this.image = getErrorImage();
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
149 break;
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
150 }
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
151 case INFORMATION: {
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
152 this.image = getInfoImage();
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
153 break;
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
154 }
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
155 case QUESTION: {
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
156 this.image = getQuestionImage();
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
157 break;
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
158 }
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
159 case WARNING: {
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
160 this.image = getWarningImage();
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
161 break;
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
162 }
192
c3583c6ec027 Added missing default cases for switch statements
Frank Benoit <benoit@tionex.de>
parents: 43
diff changeset
163 default:
21
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
164 }
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
165 this.buttonLabels = dialogButtonLabels;
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
166 this.defaultButtonIndex = defaultIndex;
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
167 }
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
168
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
169 /*
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
170 * (non-Javadoc)
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
171 * @see dwtx.jface.dialogs.Dialog#buttonPressed(int)
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
172 */
43
ea8ff534f622 Fix override and super aliases
Frank Benoit <benoit@tionex.de>
parents: 21
diff changeset
173 protected override void buttonPressed(int buttonId) {
21
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
174 setReturnCode(buttonId);
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
175 close();
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
176 }
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
177
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
178 /*
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
179 * (non-Javadoc)
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
180 * @see dwtx.jface.window.Window#configureShell(dwt.widgets.Shell)
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
181 */
43
ea8ff534f622 Fix override and super aliases
Frank Benoit <benoit@tionex.de>
parents: 21
diff changeset
182 protected override void configureShell(Shell shell) {
21
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
183 super.configureShell(shell);
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
184 if (title !is null) {
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
185 shell.setText(title);
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
186 }
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
187 if (titleImage !is null) {
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
188 shell.setImage(titleImage);
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
189 }
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
190 }
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
191
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
192 /*
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
193 * (non-Javadoc) Method declared on Dialog.
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
194 */
43
ea8ff534f622 Fix override and super aliases
Frank Benoit <benoit@tionex.de>
parents: 21
diff changeset
195 protected override void createButtonsForButtonBar(Composite parent) {
21
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
196 buttons = new Button[buttonLabels.length];
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
197 for (int i = 0; i < buttonLabels.length; i++) {
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
198 String label = buttonLabels[i];
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
199 Button button = createButton(parent, i, label,
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
200 defaultButtonIndex is i);
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
201 buttons[i] = button;
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
202 }
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
203 }
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
204
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
205 /**
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
206 * Creates and returns the contents of an area of the dialog which appears
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
207 * below the message and above the button bar.
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
208 * <p>
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
209 * The default implementation of this framework method returns
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
210 * <code>null</code>. Subclasses may override.
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
211 * </p>
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
212 *
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
213 * @param parent
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
214 * parent composite to contain the custom area
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
215 * @return the custom area control, or <code>null</code>
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
216 */
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
217 protected Control createCustomArea(Composite parent) {
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
218 return null;
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
219 }
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
220
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
221 /**
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
222 * This implementation of the <code>Dialog</code> framework method creates
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
223 * and lays out a composite and calls <code>createMessageArea</code> and
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
224 * <code>createCustomArea</code> to populate it. Subclasses should
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
225 * override <code>createCustomArea</code> to add contents below the
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
226 * message.
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
227 */
43
ea8ff534f622 Fix override and super aliases
Frank Benoit <benoit@tionex.de>
parents: 21
diff changeset
228 protected override Control createDialogArea(Composite parent) {
21
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
229 // create message area
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
230 createMessageArea(parent);
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
231 // create the top level composite for the dialog area
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
232 Composite composite = new Composite(parent, DWT.NONE);
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
233 GridLayout layout = new GridLayout();
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
234 layout.marginHeight = 0;
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
235 layout.marginWidth = 0;
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
236 composite.setLayout(layout);
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
237 GridData data = new GridData(GridData.FILL_BOTH);
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
238 data.horizontalSpan = 2;
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
239 composite.setLayoutData(data);
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
240 // allow subclasses to add custom controls
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
241 customArea = createCustomArea(composite);
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
242 //If it is null create a dummy label for spacing purposes
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
243 if (customArea is null) {
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
244 customArea = new Label(composite, DWT.NULL);
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
245 }
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
246 return composite;
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
247 }
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
248
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
249 /**
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
250 * Gets a button in this dialog's button bar.
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
251 *
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
252 * @param index
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
253 * the index of the button in the dialog's button bar
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
254 * @return a button in the dialog's button bar
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
255 */
43
ea8ff534f622 Fix override and super aliases
Frank Benoit <benoit@tionex.de>
parents: 21
diff changeset
256 protected override Button getButton(int index) {
21
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
257 return buttons[index];
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
258 }
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
259
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
260 /**
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
261 * Returns the minimum message area width in pixels This determines the
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
262 * minimum width of the dialog.
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
263 * <p>
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
264 * Subclasses may override.
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
265 * </p>
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
266 *
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
267 * @return the minimum message area width (in pixels)
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
268 */
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
269 protected int getMinimumMessageWidth() {
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
270 return convertHorizontalDLUsToPixels(IDialogConstants.MINIMUM_MESSAGE_AREA_WIDTH);
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
271 }
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
272
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
273 /**
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
274 * Handle the shell close. Set the return code to <code>DWT.DEFAULT</code>
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
275 * as there has been no explicit close by the user.
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
276 *
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
277 * @see dwtx.jface.window.Window#handleShellCloseEvent()
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
278 */
43
ea8ff534f622 Fix override and super aliases
Frank Benoit <benoit@tionex.de>
parents: 21
diff changeset
279 protected override void handleShellCloseEvent() {
21
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
280 //Sets a return code of DWT.DEFAULT since none of the dialog buttons
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
281 // were pressed to close the dialog.
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
282 super.handleShellCloseEvent();
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
283 setReturnCode(DWT.DEFAULT);
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
284 }
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
285
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
286 /**
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
287 * Convenience method to open a simple confirm (OK/Cancel) dialog.
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
288 *
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
289 * @param parent
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
290 * the parent shell of the dialog, or <code>null</code> if none
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
291 * @param title
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
292 * the dialog's title, or <code>null</code> if none
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
293 * @param message
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
294 * the message
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
295 * @return <code>true</code> if the user presses the OK button,
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
296 * <code>false</code> otherwise
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
297 */
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
298 public static bool openConfirm(Shell parent, String title, String message) {
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
299 MessageDialog dialog = new MessageDialog(parent, title, null, // accept
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
300 // the
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
301 // default
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
302 // window
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
303 // icon
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
304 message, QUESTION, [ IDialogConstants.OK_LABEL,
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
305 IDialogConstants.CANCEL_LABEL ], 0); // OK is the
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
306 // default
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
307 return dialog.open() is 0;
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
308 }
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
309
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
310 /**
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
311 * Convenience method to open a standard error dialog.
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
312 *
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
313 * @param parent
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
314 * the parent shell of the dialog, or <code>null</code> if none
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
315 * @param title
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
316 * the dialog's title, or <code>null</code> if none
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
317 * @param message
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
318 * the message
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
319 */
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
320 public static void openError(Shell parent, String title, String message) {
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
321 MessageDialog dialog = new MessageDialog(parent, title, null, // accept
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
322 // the
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
323 // default
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
324 // window
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
325 // icon
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
326 message, ERROR, [ IDialogConstants.OK_LABEL ], 0); // ok
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
327 // is
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
328 // the
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
329 // default
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
330 dialog.open();
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
331 return;
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
332 }
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
333
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
334 /**
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
335 * Convenience method to open a standard information dialog.
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
336 *
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
337 * @param parent
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
338 * the parent shell of the dialog, or <code>null</code> if none
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
339 * @param title
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
340 * the dialog's title, or <code>null</code> if none
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
341 * @param message
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
342 * the message
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
343 */
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
344 public static void openInformation(Shell parent, String title,
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
345 String message) {
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
346 MessageDialog dialog = new MessageDialog(parent, title, null, // accept
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
347 // the
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
348 // default
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
349 // window
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
350 // icon
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
351 message, INFORMATION,
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
352 [ IDialogConstants.OK_LABEL ], 0);
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
353 // ok is the default
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
354 dialog.open();
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
355 return;
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
356 }
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
357
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
358 /**
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
359 * Convenience method to open a simple Yes/No question dialog.
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
360 *
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
361 * @param parent
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
362 * the parent shell of the dialog, or <code>null</code> if none
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
363 * @param title
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
364 * the dialog's title, or <code>null</code> if none
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
365 * @param message
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
366 * the message
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
367 * @return <code>true</code> if the user presses the OK button,
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
368 * <code>false</code> otherwise
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
369 */
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
370 public static bool openQuestion(Shell parent, String title,
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
371 String message) {
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
372 MessageDialog dialog = new MessageDialog(parent, title, null, // accept
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
373 // the
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
374 // default
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
375 // window
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
376 // icon
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
377 message, QUESTION, [ IDialogConstants.YES_LABEL,
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
378 IDialogConstants.NO_LABEL ], 0); // yes is the default
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
379 return dialog.open() is 0;
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
380 }
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
381
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
382 /**
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
383 * Convenience method to open a standard warning dialog.
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
384 *
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
385 * @param parent
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
386 * the parent shell of the dialog, or <code>null</code> if none
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
387 * @param title
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
388 * the dialog's title, or <code>null</code> if none
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
389 * @param message
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
390 * the message
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
391 */
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
392 public static void openWarning(Shell parent, String title, String message) {
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
393 MessageDialog dialog = new MessageDialog(parent, title, null, // accept
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
394 // the
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
395 // default
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
396 // window
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
397 // icon
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
398 message, WARNING, [ IDialogConstants.OK_LABEL ], 0); // ok
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
399 // is
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
400 // the
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
401 // default
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
402 dialog.open();
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
403 return;
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
404 }
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
405
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
406 /*
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
407 * @see dwtx.jface.dialogs.Dialog#createButton(dwt.widgets.Composite,
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
408 * int, java.lang.String, bool)
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
409 */
43
ea8ff534f622 Fix override and super aliases
Frank Benoit <benoit@tionex.de>
parents: 21
diff changeset
410 protected override Button createButton(Composite parent, int id, String label,
21
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
411 bool defaultButton) {
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
412 Button button = super.createButton(parent, id, label, defaultButton);
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
413 //Be sure to set the focus if the custom area cannot so as not
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
414 //to lose the defaultButton.
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
415 if (defaultButton && !customShouldTakeFocus()) {
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
416 button.setFocus();
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
417 }
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
418 return button;
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
419 }
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
420
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
421 /**
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
422 * Return whether or not we should apply the workaround where we take focus
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
423 * for the default button or if that should be determined by the dialog. By
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
424 * default only return true if the custom area is a label or CLabel that
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
425 * cannot take focus.
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
426 *
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
427 * @return bool
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
428 */
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
429 protected bool customShouldTakeFocus() {
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
430 if (cast(Label) customArea ) {
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
431 return false;
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
432 }
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
433 if (cast(CLabel) customArea ) {
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
434 return (customArea.getStyle() & DWT.NO_FOCUS) > 0;
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
435 }
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
436 return true;
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
437 }
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
438
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
439 /*
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
440 * (non-Javadoc)
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
441 * @see dwtx.jface.dialogs.IconAndMessageDialog#getImage()
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
442 */
43
ea8ff534f622 Fix override and super aliases
Frank Benoit <benoit@tionex.de>
parents: 21
diff changeset
443 public override Image getImage() {
21
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
444 return image;
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
445 }
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
446
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
447 /**
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
448 * An accessor for the labels to use on the buttons.
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
449 *
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
450 * @return The button labels to used; never <code>null</code>.
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
451 */
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
452 protected String[] getButtonLabels() {
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
453 return buttonLabels;
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
454 }
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
455
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
456 /**
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
457 * An accessor for the index of the default button in the button array.
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
458 *
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
459 * @return The default button index.
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
460 */
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
461 protected int getDefaultButtonIndex() {
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
462 return defaultButtonIndex;
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
463 }
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
464
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
465 /**
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
466 * A mutator for the array of buttons in the button bar.
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
467 *
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
468 * @param buttons
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
469 * The buttons in the button bar; must not be <code>null</code>.
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
470 */
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
471 protected void setButtons(Button[] buttons) {
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
472 if (buttons is null) {
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
473 throw new NullPointerException(
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
474 "The array of buttons cannot be null.");} //$NON-NLS-1$
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
475 this.buttons = buttons;
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
476 }
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
477
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
478 /**
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
479 * A mutator for the button labels.
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
480 *
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
481 * @param buttonLabels
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
482 * The button labels to use; must not be <code>null</code>.
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
483 */
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
484 protected void setButtonLabels(String[] buttonLabels) {
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
485 if (buttonLabels is null) {
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
486 throw new NullPointerException(
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
487 "The array of button labels cannot be null.");} //$NON-NLS-1$
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
488 this.buttonLabels = buttonLabels;
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
489 }
cb935a3f6e90 MessageDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
490 }