annotate dwtx/jface/wizard/WizardPage.d @ 35:ef4534de0cf9

remaining files
author Frank Benoit <benoit@tionex.de>
date Sat, 05 Apr 2008 04:49:22 +0200
parents
children ea8ff534f622
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 {
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
65
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
66 /**
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
67 * This page's name.
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
68 */
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
69 private String name;
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
70
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
71 /**
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
72 * The wizard to which this page belongs; <code>null</code>
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
73 * if this page has yet to be added to a wizard.
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
74 */
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
75 private IWizard wizard = null;
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
76
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
77 /**
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
78 * Indicates whether this page is complete.
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
79 */
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
80 private bool isPageComplete_ = true;
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
81
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
82 /**
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
83 * The page that was shown right before this page became visible;
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
84 * <code>null</code> if none.
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
85 */
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
86 private IWizardPage previousPage = null;
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
87
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
88 /**
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
89 * Creates a new wizard page with the given name, and
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
90 * with no title or image.
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
91 *
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
92 * @param pageName the name of the page
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
93 */
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
94 protected this(String pageName) {
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
95 this(pageName, null, cast(ImageDescriptor) null);
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
96 }
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 * Creates a new wizard page with the given name, title, and image.
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
100 *
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
101 * @param pageName the name of the page
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
102 * @param title the title for this wizard page,
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
103 * or <code>null</code> if none
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
104 * @param titleImage the image descriptor for the title of this wizard page,
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
105 * or <code>null</code> if none
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
106 */
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
107 protected this(String pageName, String title,
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
108 ImageDescriptor titleImage) {
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
109 super(title, titleImage);
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
110 Assert.isNotNull(pageName); // page name must not be null
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
111 name = pageName;
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
112 }
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 * The <code>WizardPage</code> implementation of this <code>IWizardPage</code>
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
116 * method returns <code>true</code> if this page is complete (<code>isPageComplete</code>)
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
117 * 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
118 *
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
119 * @see #getNextPage
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
120 * @see #isPageComplete()
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
121 */
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
122 public bool canFlipToNextPage() {
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
123 return isPageComplete() && getNextPage() !is null;
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
124 }
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 * Returns the wizard container for this wizard page.
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
128 *
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
129 * @return the wizard container, or <code>null</code> if this
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
130 * wizard page has yet to be added to a wizard, or the
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
131 * wizard has yet to be added to a container
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
132 */
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
133 protected IWizardContainer getContainer() {
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
134 if (wizard is null) {
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
135 return null;
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
136 }
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
137 return wizard.getContainer();
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
138 }
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 * Returns the dialog settings for this wizard page.
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
142 *
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
143 * @return the dialog settings, or <code>null</code> if none
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
144 */
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
145 protected IDialogSettings getDialogSettings() {
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
146 if (wizard is null) {
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
147 return null;
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
148 }
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
149 return wizard.getDialogSettings();
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
150 }
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
151
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
152 /* (non-Javadoc)
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
153 * Method declared on IDialogPage.
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
154 */
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
155 public Image getImage() {
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
156 Image result = super.getImage();
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
157
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
158 if (result is null && wizard !is null) {
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
159 return wizard.getDefaultPageImage();
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
160 }
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
161
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
162 return result;
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
163 }
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
164
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
165 /* (non-Javadoc)
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
166 * Method declared on IWizardPage.
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
167 */
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
168 public String getName() {
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
169 return name;
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
170 }
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
171
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
172 /* (non-Javadoc)
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
173 * Method declared on IWizardPage.
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
174 * The default behavior is to ask the wizard for the next page.
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
175 */
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
176 public IWizardPage getNextPage() {
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
177 if (wizard is null) {
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
178 return null;
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
179 }
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
180 return wizard.getNextPage(this);
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
181 }
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
182
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
183 /* (non-Javadoc)
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
184 * Method declared on IWizardPage.
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
185 * The default behavior is return the cached previous back or,
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
186 * lacking that, to ask the wizard for the previous page.
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
187 */
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
188 public IWizardPage getPreviousPage() {
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
189 if (previousPage !is null) {
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
190 return previousPage;
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
191 }
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
192
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
193 if (wizard is null) {
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
194 return null;
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
195 }
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
196
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
197 return wizard.getPreviousPage(this);
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
198 }
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 * The <code>WizardPage</code> implementation of this method declared on
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
202 * <code>DialogPage</code> returns the shell of the container.
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
203 * The advantage of this implementation is that the shell is accessable
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
204 * once the container is created even though this page's control may not
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
205 * yet be created.
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
206 */
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
207 public Shell getShell() {
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
208
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
209 IWizardContainer container = getContainer();
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
210 if (container is null) {
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
211 return null;
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
212 }
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
213
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
214 // Ask the wizard since our contents may not have been created.
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
215 return container.getShell();
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
216 }
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
217
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
218 /* (non-Javadoc)
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
219 * Method declared on IWizardPage.
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
220 */
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
221 public IWizard getWizard() {
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
222 return wizard;
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
223 }
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 * Returns whether this page is the current one in the wizard's container.
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
227 *
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
228 * @return <code>true</code> if the page is active,
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
229 * and <code>false</code> otherwise
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
230 */
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
231 protected bool isCurrentPage() {
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
232 return (getContainer() !is null && this is getContainer()
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
233 .getCurrentPage());
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
234 }
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 * The <code>WizardPage</code> implementation of this <code>IWizard</code> method
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
238 * returns the value of an internal state variable set by
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
239 * <code>setPageComplete</code>. Subclasses may extend.
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
240 */
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
241 public bool isPageComplete() {
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
242 return isPageComplete_;
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
243 }
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 * The <code>WizardPage</code> implementation of this <code>IDialogPage</code>
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
247 * method extends the <code>DialogPage</code> implementation to update
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
248 * the wizard container title bar. Subclasses may extend.
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
249 */
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
250 public void setDescription(String description) {
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
251 super.setDescription(description);
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
252 if (isCurrentPage()) {
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
253 getContainer().updateTitleBar();
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
254 }
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 * The <code>WizardPage</code> implementation of this method
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
259 * declared on <code>DialogPage</code> updates the container
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
260 * if this is the current page.
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
261 */
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
262 public void setErrorMessage(String newMessage) {
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
263 super.setErrorMessage(newMessage);
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
264 if (isCurrentPage()) {
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
265 getContainer().updateMessage();
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
266 }
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 * The <code>WizardPage</code> implementation of this method
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
271 * declared on <code>DialogPage</code> updates the container
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
272 * if this page is the current page.
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
273 */
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
274 public void setImageDescriptor(ImageDescriptor image) {
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
275 super.setImageDescriptor(image);
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
276 if (isCurrentPage()) {
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
277 getContainer().updateTitleBar();
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
278 }
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 * The <code>WizardPage</code> implementation of this method
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
283 * declared on <code>DialogPage</code> updates the container
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
284 * if this is the current page.
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
285 */
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
286 public void setMessage(String newMessage, int newType) {
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
287 super.setMessage(newMessage, newType);
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
288 if (isCurrentPage()) {
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
289 getContainer().updateMessage();
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
290 }
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 * Sets whether this page is complete.
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
295 * <p>
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
296 * This information is typically used by the wizard to decide
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
297 * 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
298 * </p>
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
299 *
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
300 * @param complete <code>true</code> if this page is complete, and
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
301 * and <code>false</code> otherwise
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
302 * @see #isPageComplete()
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
303 */
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
304 public void setPageComplete(bool complete) {
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
305 isPageComplete_ = complete;
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
306 if (isCurrentPage()) {
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
307 getContainer().updateButtons();
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
308 }
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 /* (non-Javadoc)
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
312 * Method declared on IWizardPage.
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
313 */
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
314 public void setPreviousPage(IWizardPage page) {
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
315 previousPage = page;
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
316 }
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 * The <code>WizardPage</code> implementation of this <code>IDialogPage</code>
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
320 * method extends the <code>DialogPage</code> implementation to update
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
321 * the wizard container title bar. Subclasses may extend.
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
322 */
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
323 public void setTitle(String title) {
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
324 super.setTitle(title);
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
325 if (isCurrentPage()) {
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
326 getContainer().updateTitleBar();
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
327 }
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 /* (non-Javadoc)
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
331 * Method declared on IWizardPage.
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
332 */
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
333 public void setWizard(IWizard newWizard) {
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
334 wizard = newWizard;
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
335 }
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 * Returns a printable representation of this wizard page suitable
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
339 * only for debug purposes.
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
340 */
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
341 public String toString() {
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
342 return name;
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
343 }
ef4534de0cf9 remaining files
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
344 }