1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123
|
//------------------------------------------------------------------------------
// <copyright file="WizardPanel.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
// @owner [....]
// @backupOwner [....]
//------------------------------------------------------------------------------
using System;
using System.Collections;
using System.ComponentModel;
using System.ComponentModel.Design;
using System.Diagnostics;
using System.Drawing;
using System.Windows.Forms;
namespace System.Web.UI.Design.WebControls.Util
{
/// <devdoc>
/// Represents a single step in a wizard.
/// WizardPanels are contained within a single WizardForm.
/// </devdoc>
internal class WizardPanel : System.Windows.Forms.UserControl
{
private WizardForm _parentWizard;
private string _caption;
private WizardPanel _nextPanel;
private bool _needsToInvalidate;
/// <devdoc>
/// Creates a new WizardPanel.
/// </devdoc>
public WizardPanel()
{
}
/// <devdoc>
/// The caption to be shown on the WizardForm
/// </devdoc>
public string Caption
{
get
{
if (_caption == null)
{
return String.Empty;
}
return _caption;
}
set
{
_caption = value;
if (_parentWizard != null)
{
_parentWizard.Invalidate();
}
else
{
_needsToInvalidate = true;
}
}
}
/// <devdoc>
/// The panel to go to when the Next button is clicked. This can be set dynamically in
/// the OnNext() event to customize the order in which panels are used.
/// </devdoc>
public WizardPanel NextPanel
{
get
{
return _nextPanel;
}
set
{
_nextPanel = value;
Debug.Assert(_parentWizard != null);
if (_parentWizard != null)
{
_parentWizard.RegisterPanel(_nextPanel);
}
}
}
/// <devdoc>
/// This method is called when the wizard's Finish button is clicked.
/// It is called once for each wizard panel on the panel stack, in the order from the first panel to the last (current) panel.
/// </devdoc>
protected internal virtual void OnComplete()
{
}
/// <devdoc>
/// Runs when the next button is clicked while this panel is showing.
/// Returns true if the wizard should proceed to the next panel.
/// </devdoc>
public virtual bool OnNext()
{
return true;
}
/// <devdoc>
/// Runs when the previous button of the parent wizard form is clicked while this panel is active
/// </devdoc>
public virtual void OnPrevious()
{
}
/// <devdoc>
/// </devdoc>
internal void SetParentWizard(WizardForm parent)
{
_parentWizard = parent;
if ((_parentWizard != null) && _needsToInvalidate)
{
_parentWizard.Invalidate();
_needsToInvalidate = false;
}
}
}
}
|