//=======================================================================================
//
// This source code is only intended as a supplement to existing Microsoft documentation.
//
// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY
// KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
// IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR
// PURPOSE.
//
// Copyright (C) Microsoft Corporation. All Rights Reserved.
//
//=======================================================================================
using System;
using Microsoft.ManagementConsole;
namespace Microsoft.ManagementConsole.Samples
{
///
/// User property page.
///
public class ScopePropertyPage : PropertyPage
{
private ScopePropertiesControl scopePropertiesControl = null;
private SampleScopeNode scopeNode = null;
///
/// Constructor for the page.
///
public ScopePropertyPage(SampleScopeNode parentScopeNode)
{
// save scope node parent
scopeNode = parentScopeNode;
// setup property page container stuff
this.Title = "Scope Node Property Page";
// setup contained control and hand it a reference to its parent (This propertypage)
scopePropertiesControl = new ScopePropertiesControl(this);
this.Control = scopePropertiesControl;
}
///
/// Initialize notification for the page. Default implementation is empty.
///
protected override void OnInitialize()
{
base.OnInitialize();
// populate the contained control
scopePropertiesControl.RefreshData(scopeNode);
}
///
/// Sent to every page in the property sheet to indicate that the user has clicked
/// the Apply button and wants all changes to take effect.
///
protected override bool OnApply()
{
// does the control say the values are valid?
if (this.Dirty)
{
if (scopePropertiesControl.CanApplyChanges())
{
// save changes
scopePropertiesControl.UpdateData(scopeNode);
}
else
{
// something invalid was entered
return false;
}
}
return true;
}
///
/// Sent to every page in the property sheet to indicate that the user has clicked the OK
/// or Close button and wants all changes to take effect.
///
protected override bool OnOK()
{
return this.OnApply();
}
///
/// Indicates that the user wants to cancel the property sheet.
/// Default implementation allows cancel operation.
///
protected override bool QueryCancel()
{
return true;
}
///
/// Indicates that the user has canceled and the property sheet is about to be destroyed.
/// All changes made since the last PSN_APPLY notification are canceled
///
protected override void OnCancel()
{
scopePropertiesControl.RefreshData(scopeNode);
}
///
/// Notifies a page that the property sheet is getting destoyed.
/// Use this notification message as an opportunity to perform cleanup operations.
///
protected override void OnDestroy()
{
}
} // class
} // namespace