/// <summary>
/// Update view button to reflect new button enabled setting.
/// </summary>
/// <returns>True is a change in state has occured.</returns>
public bool UpdateEnabled()
{
bool changed = false;
// Remember the initial state
ViewBase newDependant;
bool newEnabled;
switch (_buttonSpec.GetEnabled(_redirector))
{
case ButtonEnabled.True:
newDependant = null;
newEnabled = true;
break;
case ButtonEnabled.False:
newDependant = null;
newEnabled = false;
break;
case ButtonEnabled.Container:
newDependant = _viewCenter.Parent;
newEnabled = true;
break;
default:
// Should never happen!
Debug.Assert(false);
newDependant = null;
newEnabled = false;
break;
}
// Only make change if the values have changed
if (newEnabled != _viewButton.Enabled)
{
_viewButton.Enabled = newEnabled;
changed = true;
}
if (newDependant != _viewButton.DependantEnabledState)
{
_viewButton.DependantEnabledState = newDependant;
changed = true;
}
return(changed);
}