annotate dwtx/jface/wizard/WizardPage.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
35
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1 /*******************************************************************************
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
2 * Copyright (c) 2000, 2006 IBM Corporation and others.
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
3 * All rights reserved. This program and the accompanying materials
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
4 * are made available under the terms of the Eclipse Public License v1.0
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
5 * which accompanies this distribution, and is available at
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
6 * http://www.eclipse.org/legal/epl-v10.html
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
7 *
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
8 * Contributors:
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
9 * IBM Corporation - initial API and implementation
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
10 * Port to the D programming language:
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
11 * Frank Benoit <benoit@tionex.de>
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
12 *******************************************************************************/
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
13 module dwtx.jface.wizard.WizardPage;
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
14
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
15 import dwtx.jface.wizard.IWizardPage;
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
16 import dwtx.jface.wizard.IWizard;
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
17 import dwtx.jface.wizard.IWizardContainer;
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
18
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
19 import dwt.graphics.Image;
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
20 import dwt.widgets.Shell;
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
21 import dwtx.core.runtime.Assert;
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
22 import dwtx.jface.dialogs.DialogPage;
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
23 import dwtx.jface.dialogs.IDialogSettings;
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
24 import dwtx.jface.resource.ImageDescriptor;
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
25
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
26 import dwt.dwthelper.utils;
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
27
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
28 /**
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
29 * An abstract base implementation of a wizard page.
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
30 * <p>
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
31 * Subclasses must implement the <code>createControl</code> method
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
32 * to create the specific controls for the wizard page.
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
33 * </p>
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
34 * <p>
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
35 * Subclasses may call the following methods to configure the wizard page:
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
36 * <ul>
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
37 * <li><code>setDescription</code></li>
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
38 * <li><code>setErrorMessage</code></li>
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
39 * <li><code>setImageDescriptor</code></li>
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
40 * <li><code>setMessage</code></li>
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
41 * <li><code>setPageComplete</code></li>
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
42 * <li><code>setPreviousPage</code></li>
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
43 * <li><code>setTitle</code></li>
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
44 * </ul>
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
45 * </p>
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
46 * <p>
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
47 * Subclasses may override these methods if required:
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
48 * <ul>
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
49 * <li><code>performHelp</code> - may be reimplemented to display help for the page</li>
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
50 * <li><code>canFlipToNextPage</code> - may be extended or reimplemented</li>
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
51 * <li><code>isPageComplete</code> - may be extended </li>
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
52 * <li><code>setDescription</code> - may be extended </li>
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
53 * <li><code>setTitle</code> - may be extended </li>
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
54 * <li><code>dispose</code> - may be extended to dispose additional allocated DWT resources</li>
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
55 * </ul>
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
56 * </p>
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
57 * <p>
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
58 * Note that clients are free to implement <code>IWizardPage</code> from scratch
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
59 * instead of subclassing <code>WizardPage</code>. Correct implementations of
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
60 * <code>IWizardPage</code> will work with any correct implementation of
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
61 * <code>IWizard</code>.
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
62 * </p>
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
63 */
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
64 public abstract class WizardPage : DialogPage, IWizardPage {
43
ea8ff534f622 Fix override and super aliases
Frank Benoit <benoit@tionex.de>
parents: 35
diff changeset
65 alias DialogPage.setMessage setMessage;
35
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
66
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
67 /**
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
68 * This page's name.
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
69 */
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
70 private String name;
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
71
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
72 /**
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
73 * The wizard to which this page belongs; <code>null</code>
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
74 * if this page has yet to be added to a wizard.
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
75 */
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
76 private IWizard wizard = null;
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
77
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
78 /**
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
79 * Indicates whether this page is complete.
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
80 */
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
81 private bool isPageComplete_ = true;
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
82
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
83 /**
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
84 * The page that was shown right before this page became visible;
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
85 * <code>null</code> if none.
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
86 */
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
87 private IWizardPage previousPage = null;
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
88
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
89 /**
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
90 * Creates a new wizard page with the given name, and
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
91 * with no title or image.
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
92 *
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
93 * @param pageName the name of the page
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
94 */
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
95 protected this(String pageName) {
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
96 this(pageName, null, cast(ImageDescriptor) null);
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
97 }
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
98
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
99 /**
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
100 * Creates a new wizard page with the given name, title, and image.
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
101 *
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
102 * @param pageName the name of the page
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
103 * @param title the title for this wizard page,
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
104 * or <code>null</code> if none
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
105 * @param titleImage the image descriptor for the title of this wizard page,
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
106 * or <code>null</code> if none
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
107 */
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
108 protected this(String pageName, String title,
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
109 ImageDescriptor titleImage) {
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
110 super(title, titleImage);
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
111 Assert.isNotNull(pageName); // page name must not be null
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
112 name = pageName;
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
113 }
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
114
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
115 /**
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
116 * The <code>WizardPage</code> implementation of this <code>IWizardPage</code>
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
117 * method returns <code>true</code> if this page is complete (<code>isPageComplete</code>)
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
118 * and there is a next page to flip to. Subclasses may override (extend or reimplement).
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
119 *
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
120 * @see #getNextPage
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
121 * @see #isPageComplete()
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
122 */
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
123 public bool canFlipToNextPage() {
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
124 return isPageComplete() && getNextPage() !is null;
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
125 }
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
126
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
127 /**
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
128 * Returns the wizard container for this wizard page.
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
129 *
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
130 * @return the wizard container, or <code>null</code> if this
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
131 * wizard page has yet to be added to a wizard, or the
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
132 * wizard has yet to be added to a container
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
133 */
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
134 protected IWizardContainer getContainer() {
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
135 if (wizard is null) {
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
136 return null;
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
137 }
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
138 return wizard.getContainer();
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
139 }
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
140
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
141 /**
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
142 * Returns the dialog settings for this wizard page.
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
143 *
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
144 * @return the dialog settings, or <code>null</code> if none
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
145 */
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
146 protected IDialogSettings getDialogSettings() {
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
147 if (wizard is null) {
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
148 return null;
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
149 }
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
150 return wizard.getDialogSettings();
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
151 }
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
152
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
153 /* (non-Javadoc)
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
154 * Method declared on IDialogPage.
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
155 */
43
ea8ff534f622 Fix override and super aliases
Frank Benoit <benoit@tionex.de>
parents: 35
diff changeset
156 public override Image getImage() {
35
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
157 Image result = super.getImage();
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
158
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
159 if (result is null && wizard !is null) {
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
160 return wizard.getDefaultPageImage();
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
161 }
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
162
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
163 return result;
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
164 }
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
165
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
166 /* (non-Javadoc)
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
167 * Method declared on IWizardPage.
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
168 */
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
169 public String getName() {
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
170 return name;
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
171 }
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
172
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
173 /* (non-Javadoc)
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
174 * Method declared on IWizardPage.
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
175 * The default behavior is to ask the wizard for the next page.
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
176 */
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
177 public IWizardPage getNextPage() {
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
178 if (wizard is null) {
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
179 return null;
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
180 }
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
181 return wizard.getNextPage(this);
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
182 }
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
183
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
184 /* (non-Javadoc)
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
185 * Method declared on IWizardPage.
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
186 * The default behavior is return the cached previous back or,
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
187 * lacking that, to ask the wizard for the previous page.
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
188 */
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
189 public IWizardPage getPreviousPage() {
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
190 if (previousPage !is null) {
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
191 return previousPage;
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
192 }
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
193
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
194 if (wizard is null) {
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
195 return null;
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
196 }
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
197
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
198 return wizard.getPreviousPage(this);
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
199 }
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
200
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
201 /**
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
202 * The <code>WizardPage</code> implementation of this method declared on
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
203 * <code>DialogPage</code> returns the shell of the container.
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
204 * The advantage of this implementation is that the shell is accessable
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
205 * once the container is created even though this page's control may not
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
206 * yet be created.
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
207 */
43
ea8ff534f622 Fix override and super aliases
Frank Benoit <benoit@tionex.de>
parents: 35
diff changeset
208 public override Shell getShell() {
35
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
209
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
210 IWizardContainer container = getContainer();
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
211 if (container is null) {
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
212 return null;
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
213 }
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
214
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
215 // Ask the wizard since our contents may not have been created.
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
216 return container.getShell();
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
217 }
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
218
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
219 /* (non-Javadoc)
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
220 * Method declared on IWizardPage.
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
221 */
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
222 public IWizard getWizard() {
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
223 return wizard;
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
224 }
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
225
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
226 /**
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
227 * Returns whether this page is the current one in the wizard's container.
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
228 *
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
229 * @return <code>true</code> if the page is active,
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
230 * and <code>false</code> otherwise
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
231 */
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
232 protected bool isCurrentPage() {
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
233 return (getContainer() !is null && this is getContainer()
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
234 .getCurrentPage());
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
235 }
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
236
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
237 /**
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
238 * The <code>WizardPage</code> implementation of this <code>IWizard</code> method
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
239 * returns the value of an internal state variable set by
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
240 * <code>setPageComplete</code>. Subclasses may extend.
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
241 */
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
242 public bool isPageComplete() {
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
243 return isPageComplete_;
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
244 }
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
245
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
246 /**
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
247 * The <code>WizardPage</code> implementation of this <code>IDialogPage</code>
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
248 * method extends the <code>DialogPage</code> implementation to update
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
249 * the wizard container title bar. Subclasses may extend.
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
250 */
43
ea8ff534f622 Fix override and super aliases
Frank Benoit <benoit@tionex.de>
parents: 35
diff changeset
251 public override void setDescription(String description) {
35
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
252 super.setDescription(description);
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
253 if (isCurrentPage()) {
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
254 getContainer().updateTitleBar();
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
255 }
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
256 }
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
257
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
258 /**
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
259 * The <code>WizardPage</code> implementation of this method
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
260 * declared on <code>DialogPage</code> updates the container
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
261 * if this is the current page.
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
262 */
43
ea8ff534f622 Fix override and super aliases
Frank Benoit <benoit@tionex.de>
parents: 35
diff changeset
263 public override void setErrorMessage(String newMessage) {
35
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
264 super.setErrorMessage(newMessage);
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
265 if (isCurrentPage()) {
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
266 getContainer().updateMessage();
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
267 }
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
268 }
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
269
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
270 /**
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
271 * The <code>WizardPage</code> implementation of this method
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
272 * declared on <code>DialogPage</code> updates the container
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
273 * if this page is the current page.
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
274 */
43
ea8ff534f622 Fix override and super aliases
Frank Benoit <benoit@tionex.de>
parents: 35
diff changeset
275 public override void setImageDescriptor(ImageDescriptor image) {
35
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
276 super.setImageDescriptor(image);
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
277 if (isCurrentPage()) {
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
278 getContainer().updateTitleBar();
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
279 }
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
280 }
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
281
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
282 /**
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
283 * The <code>WizardPage</code> implementation of this method
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
284 * declared on <code>DialogPage</code> updates the container
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
285 * if this is the current page.
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
286 */
43
ea8ff534f622 Fix override and super aliases
Frank Benoit <benoit@tionex.de>
parents: 35
diff changeset
287 public override void setMessage(String newMessage, int newType) {
35
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
288 super.setMessage(newMessage, newType);
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
289 if (isCurrentPage()) {
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
290 getContainer().updateMessage();
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
291 }
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
292 }
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
293
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
294 /**
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
295 * Sets whether this page is complete.
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
296 * <p>
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
297 * This information is typically used by the wizard to decide
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
298 * when it is okay to move on to the next page or finish up.
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
299 * </p>
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
300 *
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
301 * @param complete <code>true</code> if this page is complete, and
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
302 * and <code>false</code> otherwise
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
303 * @see #isPageComplete()
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
304 */
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
305 public void setPageComplete(bool complete) {
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
306 isPageComplete_ = complete;
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
307 if (isCurrentPage()) {
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
308 getContainer().updateButtons();
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
309 }
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
310 }
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
311
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
312 /* (non-Javadoc)
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
313 * Method declared on IWizardPage.
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
314 */
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
315 public void setPreviousPage(IWizardPage page) {
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
316 previousPage = page;
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
317 }
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
318
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
319 /**
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
320 * The <code>WizardPage</code> implementation of this <code>IDialogPage</code>
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
321 * method extends the <code>DialogPage</code> implementation to update
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
322 * the wizard container title bar. Subclasses may extend.
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
323 */
43
ea8ff534f622 Fix override and super aliases
Frank Benoit <benoit@tionex.de>
parents: 35
diff changeset
324 public override void setTitle(String title) {
35
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
325 super.setTitle(title);
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
326 if (isCurrentPage()) {
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
327 getContainer().updateTitleBar();
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
328 }
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
329 }
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
330
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
331 /* (non-Javadoc)
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
332 * Method declared on IWizardPage.
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
333 */
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
334 public void setWizard(IWizard newWizard) {
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
335 wizard = newWizard;
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
336 }
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
337
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
338 /**
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
339 * Returns a printable representation of this wizard page suitable
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
340 * only for debug purposes.
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
341 */
43
ea8ff534f622 Fix override and super aliases
Frank Benoit <benoit@tionex.de>
parents: 35
diff changeset
342 public override String toString() {
35
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
343 return name;
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
344 }
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
345 }