protected override bool CanChangeSet(UserResourceSetInfo setInfo)
 {
     // Show validation messagebox.
     return MessageBox.Show(NavigationActor.Instance.ActiveWindow,
         string.Format("Please be aware that modifying the SRS level set may block "
         + "some existing SRS items in the case where the new level set has less "
         + "levels than the previous one.{0}Also, please note that the current "
         + "scheduled review dates will not be affected.", Environment.NewLine),
         "SRS level set change warning",
         MessageBoxButton.OKCancel,
         MessageBoxImage.Warning,
         MessageBoxResult.Cancel) == MessageBoxResult.OK;
 }
 /// <summary>
 /// In a subclass, determines if switching to the given set is possible.
 /// </summary>
 /// <param name="setInfo">Target set.</param>
 /// <returns>True if the change is confirmed. False otherwise.</returns>
 protected abstract bool CanChangeSet(UserResourceSetInfo setInfo);
 /// <summary>
 /// Command callback.
 /// Called to browse a given set.
 /// </summary>
 /// <param name="setInfo">Set to browse.</param>
 private void OnBrowseSet(UserResourceSetInfo setInfo)
 {
     try
     {
         Process.Start(setInfo.Path);
     }
     catch (Exception ex)
     {
         LogHelper.GetLogger(GetType().Name)
             .Error(string.Format(
             "Could not open folder (path=\"{0}\") in explorer.",
             setInfo.Path),
             ex);
     }
 }
 /// <summary>
 /// Command callback.
 /// Called to select a given set.
 /// </summary>
 /// <param name="setInfo">Set to select.</param>
 private void OnSelectSet(UserResourceSetInfo setInfo)
 {
     if (CanChangeSet(setInfo))
     {
         SelectedSetName = setInfo.Name;
         RaiseSettingValueChanged();
     }
 }