annotate dwtx/jface/dialogs/IconAndMessageDialog.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 46a6e0e6ccd4
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
13
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1 /*******************************************************************************
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
2 * Copyright (c) 2000, 2007 IBM Corporation and others.
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
3 * All rights reserved. This program and the accompanying materials
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
4 * are made available under the terms of the Eclipse Public License v1.0
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
5 * which accompanies this distribution, and is available at
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
6 * http://www.eclipse.org/legal/epl-v10.html
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
7 *
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
8 * Contributors:
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
9 * IBM Corporation - initial API and implementation
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
10 * Stefan Xenos, IBM - bug 156790: Adopt GridLayoutFactory within JFace
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
11 * Port to the D programming language:
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
12 * Frank Benoit <benoit@tionex.de>
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
13 *******************************************************************************/
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
14 module dwtx.jface.dialogs.IconAndMessageDialog;
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
15
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
16 import dwtx.jface.dialogs.Dialog;
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
17 import dwtx.jface.dialogs.IDialogConstants;
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
18
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
19 import dwt.DWT;
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
20 import dwt.accessibility.AccessibleAdapter;
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
21 import dwt.accessibility.AccessibleEvent;
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
22 import dwt.graphics.Image;
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
23 import dwt.graphics.Point;
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
24 import dwt.widgets.Composite;
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
25 import dwt.widgets.Control;
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
26 import dwt.widgets.Display;
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
27 import dwt.widgets.Label;
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
28 import dwt.widgets.Shell;
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
29 import dwtx.jface.layout.GridDataFactory;
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
30 import dwtx.jface.layout.GridLayoutFactory;
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
31 import dwtx.jface.layout.LayoutConstants;
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
32 import dwtx.jface.resource.JFaceResources;
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
33
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
34 import dwt.dwthelper.utils;
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
35 import dwt.dwthelper.Runnable;
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
36
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
37 /**
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
38 * The IconAndMessageDialog is the abstract superclass of dialogs that have an
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
39 * icon and a message as the first two widgets. In this dialog the icon and
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
40 * message are direct children of the shell in order that they can be read by
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
41 * accessibility tools more easily.
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
42 */
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
43 public abstract class IconAndMessageDialog : Dialog {
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
44 /**
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
45 * Message (a localized string).
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
46 */
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
47 protected String message;
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
48
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
49 /**
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
50 * Message label is the label the message is shown on.
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
51 */
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
52 protected Label messageLabel;
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
53
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
54 /**
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
55 * Return the label for the image.
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
56 */
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
57 protected Label imageLabel;
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
58
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
59 /**
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
60 * Constructor for IconAndMessageDialog.
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
61 *
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
62 * @param parentShell
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
63 * the parent shell, or <code>null</code> to create a top-level
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
64 * shell
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
65 */
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
66 public this(Shell parentShell) {
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
67 super(parentShell);
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
68 }
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
69
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
70 /**
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
71 * Create the area the message will be shown in.
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
72 * <p>
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
73 * The parent composite is assumed to use GridLayout as its layout manager,
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
74 * since the parent is typically the composite created in
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
75 * {@link Dialog#createDialogArea}.
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
76 * </p>
70
46a6e0e6ccd4 Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents: 43
diff changeset
77 *
13
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
78 * @param composite
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
79 * The composite to parent from.
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
80 * @return Control
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
81 */
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
82 protected Control createMessageArea(Composite composite) {
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
83 // create composite
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
84 // create image
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
85 Image image = getImage();
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
86 if (image !is null) {
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
87 imageLabel = new Label(composite, DWT.NULL);
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
88 image.setBackground(imageLabel.getBackground());
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
89 imageLabel.setImage(image);
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
90 addAccessibleListeners(imageLabel, image);
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
91 GridDataFactory.fillDefaults().align_(DWT.CENTER, DWT.BEGINNING)
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
92 .applyTo(imageLabel);
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
93 }
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
94 // create message
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
95 if (message !is null) {
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
96 messageLabel = new Label(composite, getMessageLabelStyle());
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
97 messageLabel.setText(message);
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
98 GridDataFactory
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
99 .fillDefaults()
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
100 .align_(DWT.FILL, DWT.BEGINNING)
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
101 .grab(true, false)
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
102 .hint(
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
103 convertHorizontalDLUsToPixels(IDialogConstants.MINIMUM_MESSAGE_AREA_WIDTH),
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
104 DWT.DEFAULT).applyTo(messageLabel);
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
105 }
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
106 return composite;
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
107 }
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
108
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
109 private String getAccessibleMessageFor(Image image) {
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
110 if (image.opEquals(getErrorImage())) {
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
111 return JFaceResources.getString("error");//$NON-NLS-1$
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
112 }
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
113
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
114 if (image.opEquals(getWarningImage())) {
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
115 return JFaceResources.getString("warning");//$NON-NLS-1$
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
116 }
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
117
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
118 if (image.opEquals(getInfoImage())) {
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
119 return JFaceResources.getString("info");//$NON-NLS-1$
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
120 }
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
121
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
122 if (image.opEquals(getQuestionImage())) {
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
123 return JFaceResources.getString("question"); //$NON-NLS-1$
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
124 }
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
125
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
126 return null;
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
127 }
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
128
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
129 /**
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
130 * Add an accessible listener to the label if it can be inferred from the
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
131 * image.
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
132 *
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
133 * @param label
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
134 * @param image
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
135 */
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
136 private void addAccessibleListeners(Label label, Image image) {
39
644f1334b451 fix anon classes
Frank Benoit <benoit@tionex.de>
parents: 13
diff changeset
137 label.getAccessible().addAccessibleListener(new class(image) AccessibleAdapter {
13
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
138 Image image_;
39
644f1334b451 fix anon classes
Frank Benoit <benoit@tionex.de>
parents: 13
diff changeset
139 this(Image i){
644f1334b451 fix anon classes
Frank Benoit <benoit@tionex.de>
parents: 13
diff changeset
140 image_ = i;
13
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
141 }
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
142 public void getName(AccessibleEvent event) {
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
143 String accessibleMessage = getAccessibleMessageFor(image_);
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
144 if (accessibleMessage is null) {
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
145 return;
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
146 }
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
147 event.result = accessibleMessage;
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
148 }
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
149 });
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
150 }
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
151
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
152 /**
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
153 * Returns the style for the message label.
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
154 *
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
155 * @return the style for the message label
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
156 *
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
157 * @since 3.0
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
158 */
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
159 protected int getMessageLabelStyle() {
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
160 return DWT.WRAP;
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
161 }
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
162
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
163 /*
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
164 * @see Dialog.createButtonBar()
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
165 */
43
ea8ff534f622 Fix override and super aliases
Frank Benoit <benoit@tionex.de>
parents: 39
diff changeset
166 protected override Control createButtonBar(Composite parent) {
13
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
167 Composite composite = new Composite(parent, DWT.NONE);
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
168 GridLayoutFactory.fillDefaults().numColumns(0) // this is incremented
70
46a6e0e6ccd4 Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents: 43
diff changeset
169 // by createButton
13
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
170 .equalWidth(true).applyTo(composite);
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
171
70
46a6e0e6ccd4 Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents: 43
diff changeset
172 GridDataFactory.fillDefaults().align_(DWT.END, DWT.CENTER).span(2, 1)
46a6e0e6ccd4 Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents: 43
diff changeset
173 .applyTo(composite);
13
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
174 composite.setFont(parent.getFont());
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
175 // Add the buttons to the button bar.
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
176 createButtonsForButtonBar(composite);
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
177 return composite;
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
178 }
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
179
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
180 /**
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
181 * Returns the image to display beside the message in this dialog.
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
182 * <p>
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
183 * Subclasses may override.
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
184 * </p>
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
185 *
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
186 * @return the image to display beside the message
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
187 * @since 2.0
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
188 */
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
189 protected abstract Image getImage();
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
190
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
191 /*
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
192 * @see Dialog.createContents(Composite)
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
193 */
43
ea8ff534f622 Fix override and super aliases
Frank Benoit <benoit@tionex.de>
parents: 39
diff changeset
194 protected override Control createContents(Composite parent) {
13
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
195 // initialize the dialog units
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
196 initializeDialogUnits(parent);
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
197 Point defaultSpacing = LayoutConstants.getSpacing();
70
46a6e0e6ccd4 Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents: 43
diff changeset
198 GridLayoutFactory.fillDefaults().margins(LayoutConstants.getMargins())
46a6e0e6ccd4 Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents: 43
diff changeset
199 .spacing(defaultSpacing.x * 2,
46a6e0e6ccd4 Merge with d-fied sources of 3.4M7
Frank Benoit <benoit@tionex.de>
parents: 43
diff changeset
200 defaultSpacing.y).numColumns(getColumnCount()).applyTo(parent);
13
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
201
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
202 GridDataFactory.fillDefaults().grab(true, true).applyTo(parent);
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
203 createDialogAndButtonArea(parent);
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
204 return parent;
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
205 }
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
206
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
207 /**
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
208 * Get the number of columns in the layout of the Shell of the dialog.
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
209 *
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
210 * @return int
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
211 * @since 3.3
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
212 */
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
213 int getColumnCount() {
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
214 return 2;
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
215 }
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
216
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
217 /**
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
218 * Create the dialog area and the button bar for the receiver.
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
219 *
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
220 * @param parent
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
221 */
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
222 protected void createDialogAndButtonArea(Composite parent) {
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
223 // create the dialog area and button bar
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
224 dialogArea = createDialogArea(parent);
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
225 buttonBar = createButtonBar(parent);
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
226 // Apply to the parent so that the message gets it too.
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
227 applyDialogFont(parent);
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
228 }
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
229
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
230 /**
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
231 * Return the <code>Image</code> to be used when displaying an error.
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
232 *
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
233 * @return image the error image
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
234 */
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
235 public Image getErrorImage() {
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
236 return getSWTImage(DWT.ICON_ERROR);
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
237 }
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
238
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
239 /**
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
240 * Return the <code>Image</code> to be used when displaying a warning.
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
241 *
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
242 * @return image the warning image
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
243 */
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
244 public Image getWarningImage() {
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
245 return getSWTImage(DWT.ICON_WARNING);
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
246 }
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
247
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
248 /**
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
249 * Return the <code>Image</code> to be used when displaying information.
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
250 *
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
251 * @return image the information image
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
252 */
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
253 public Image getInfoImage() {
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
254 return getSWTImage(DWT.ICON_INFORMATION);
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
255 }
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
256
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
257 /**
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
258 * Return the <code>Image</code> to be used when displaying a question.
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
259 *
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
260 * @return image the question image
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
261 */
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
262 public Image getQuestionImage() {
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
263 return getSWTImage(DWT.ICON_QUESTION);
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
264 }
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
265
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
266 /**
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
267 * Get an <code>Image</code> from the provide DWT image constant.
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
268 *
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
269 * @param imageID
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
270 * the DWT image constant
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
271 * @return image the image
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
272 */
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
273 private Image getSWTImage(int imageID) {
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
274 Shell shell = getShell();
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
275 Display display;
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
276 if (shell is null) {
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
277 shell = getParentShell();
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
278 }
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
279 if (shell is null) {
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
280 display = Display.getCurrent();
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
281 } else {
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
282 display = shell.getDisplay();
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
283 }
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
284
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
285 Image[1] image;
39
644f1334b451 fix anon classes
Frank Benoit <benoit@tionex.de>
parents: 13
diff changeset
286 display.syncExec(new class(display,imageID) Runnable {
13
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
287 int imageID_;
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
288 Display display_;
39
644f1334b451 fix anon classes
Frank Benoit <benoit@tionex.de>
parents: 13
diff changeset
289 this(Display a,int b){
644f1334b451 fix anon classes
Frank Benoit <benoit@tionex.de>
parents: 13
diff changeset
290 display_=a;
644f1334b451 fix anon classes
Frank Benoit <benoit@tionex.de>
parents: 13
diff changeset
291 imageID_=b;
13
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
292 }
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
293 public void run() {
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
294 image[0] = display_.getSystemImage(imageID_);
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
295 }
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
296 });
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
297
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
298 return image[0];
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
299
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
300 }
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
301
6886832e1ed8 ErrorDialog
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
302 }