Changeset 2543


Ignore:
Timestamp:
Jan 31, 2011, 7:22:36 PM (10 years ago)
Author:
sauer
Message:

Wizard: category selection memory change

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/CrypPlugins/Wizard/WizardControl.xaml.cs

    r2531 r2543  
    3333    {
    3434
    35         private List<string> choicePath = new List<string>();
     35        private Dictionary<string, bool> selectedCategories = new Dictionary<string, bool>();
    3636        private SolidColorBrush selectionBrush = new SolidColorBrush();
    3737        private const string configXMLPath = "Wizard.Config.wizard.config.start.xml";
     
    195195                string id = GetElementID((XElement)inputPanel.Tag);
    196196
    197                 if (choicePath.Count > 0 && id == choicePath.Last())
    198                     choicePath.RemoveAt(choicePath.IndexOf(choicePath.Last()));
    199197            }
    200198            else if (element.Name == "category")
     
    277275
    278276                        radioButtonStackPanel.Children.Add(rb);
    279                         if (choicePath.Count > 0 && id == choicePath.Last())
    280                         {
    281                             choicePath.RemoveAt(choicePath.IndexOf(choicePath.Last()));
     277                        bool wasSelected;
     278                        selectedCategories.TryGetValue(GetElementID(ele), out wasSelected);
     279                        if (wasSelected != null && wasSelected)
     280                        {
    282281                            rb.IsChecked = true;
    283282                            isSelected = true;
     
    290289                        RadioButton b = (RadioButton)radioButtonStackPanel.Children[0];
    291290                        b.IsChecked = true;
     291                        selectedCategories.Remove(GetElementID((XElement)b.Tag));
     292                        selectedCategories.Add(GetElementID((XElement)b.Tag), true);
    292293                    }
    293294
     
    596597        void rb_Checked(object sender, RoutedEventArgs e)
    597598        {
    598             ResetBackground();
     599            ResetSelectionDependencies();
    599600            RadioButton b = (RadioButton)sender;
    600601            b.Background = Brushes.LightSeaGreen;
     
    603604            c.Background = selectionBrush;
    604605            XElement ele = (XElement)b.Tag;
     606            selectedCategories.Remove(GetElementID(ele));
     607            selectedCategories.Add(GetElementID(ele), true);
    605608            XElement desc = FindElementsInElement(ele, "description").First();
    606609            if (desc != null)
     
    609612        }
    610613
    611         private void ResetBackground()
     614        private void ResetSelectionDependencies()
    612615        {
    613616            for (int i = 0; i < radioButtonStackPanel.Children.Count; i++)
    614617            {
    615618                RadioButton b = (RadioButton)radioButtonStackPanel.Children[i];
     619                XElement ele = (XElement)b.Tag;
     620                selectedCategories.Remove(GetElementID(ele));
     621                selectedCategories.Add(GetElementID(ele), false);
    616622                b.Background = Brushes.Transparent;
    617623                Border c = (Border)b.Content;
     
    671677
    672678            propertyValueDict.Clear();
    673             ResetBackground();
     679            ResetSelectionDependencies();
    674680            radioButtonStackPanel.Children.Clear();
    675             choicePath.Clear();
     681            selectedCategories.Clear();
    676682            description.Text = "";
    677683            SetupPage(wizardConfigXML);
     
    687693                    if (b.IsChecked != null && (bool) b.IsChecked)
    688694                    {
    689                         choicePath.Add(GetElementID((XElement) b.Tag));
    690695                        SetupPage((XElement) b.Tag);
    691696                        break;
     
    700705                }
    701706                var nextElement = (XElement) inputPanel.Tag;
    702                 choicePath.Add(GetElementID(nextElement));
    703707                SetupPage(nextElement);
    704708            }
Note: See TracChangeset for help on using the changeset viewer.