Ignore:
Timestamp:
Jan 22, 2011, 4:07:46 PM (11 years ago)
Author:
sauer
Message:

Wizard: sample preparations

File:
1 edited

Legend:

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

    r2421 r2424  
    129129                descHeader.Content = desc.Value;
    130130
    131             //generate radio buttons
    132             IEnumerable<XElement> categories = element.Elements("category");
    133             IEnumerable<XElement> items = element.Elements("item");
    134 
    135             if (items.Any())
    136                 categories = categories.Union(items);
    137 
    138             if (categories.Any())
    139             {
    140                 foreach (XElement ele in categories)
    141                 {
    142                     Border border = new Border();
    143                     Label l = new Label();
    144                     Image i = new Image();
    145                     StackPanel sp = new StackPanel();
    146 
    147                     border.Child = sp;
    148                     border.VerticalAlignment = VerticalAlignment.Stretch;
    149                     border.CornerRadius = new CornerRadius(5, 0, 0, 5);
    150                     border.BorderBrush = Brushes.LightSeaGreen;
    151 
    152                     l.Height = 30;
    153                     l.HorizontalAlignment = HorizontalAlignment.Stretch;
    154                     XElement label = FindElementInElement(ele, "name");
    155                     if (label != null)
    156                         l.Content = label.Value;
    157 
    158                     i.Width = 26;
    159                     string image = ele.Attribute("image").Value;
    160                     if (image != null)
     131
     132            if (element.Name == "input")
     133            {
     134                categoryGrid.Visibility = Visibility.Hidden;
     135                inputPanel.Visibility = Visibility.Visible;
     136
     137                var inputBoxes = element.Elements("inputBox");
     138                inputStack.Children.Clear();
     139               
     140                foreach (var box in inputBoxes)
     141                {
     142                    var description = new Label();
     143                    description.Content = FindElementInElement(box, "description").Value;
     144                    inputStack.Children.Add(description);
     145
     146                    var textBox = new TextBox();
     147                    textBox.MinLines = 4;
     148                    inputStack.Children.Add(textBox);
     149                    if (box.Attribute("defaultValue") != null)
     150                        textBox.Text = box.Attribute("defaultValue").Value;
     151                }
     152
     153                var next = element.Element("input");
     154                if (next != null)
     155                    inputPanel.Tag = next;
     156                else
     157                    inputPanel.Tag = element.Element("category");
     158
     159                if (inputPanel.Tag != null)
     160                    nextButton.IsEnabled = true;
     161            }
     162            else if (element.Name == "category")
     163            {
     164                categoryGrid.Visibility = Visibility.Visible;
     165                inputPanel.Visibility = Visibility.Hidden;
     166               
     167                radioButtonStackPanel.Children.Clear();
     168                //ResetBackground();
     169
     170                //generate radio buttons
     171                IEnumerable<XElement> categories = element.Elements("category");
     172                IEnumerable<XElement> inputs = element.Elements("input");
     173
     174                if (inputs.Any())
     175                    categories = categories.Union(inputs);
     176
     177                if (categories.Any())
     178                {
     179                    foreach (XElement ele in categories)
    161180                    {
    162                         ImageSource ims = (ImageSource)TryFindResource(image);
    163                         if (ims != null)
     181                        Border border = new Border();
     182                        Label l = new Label();
     183                        Image i = new Image();
     184                        StackPanel sp = new StackPanel();
     185
     186                        border.Child = sp;
     187                        border.VerticalAlignment = VerticalAlignment.Stretch;
     188                        border.CornerRadius = new CornerRadius(5, 0, 0, 5);
     189                        border.BorderBrush = Brushes.LightSeaGreen;
     190
     191                        l.Height = 30;
     192                        l.HorizontalAlignment = HorizontalAlignment.Stretch;
     193                        XElement label = FindElementInElement(ele, "name");
     194                        if (label != null)
     195                            l.Content = label.Value;
     196
     197                        i.Width = 26;
     198                        string image = ele.Attribute("image").Value;
     199                        if (image != null)
    164200                        {
    165                             i.Source = ims;
    166                             sp.Children.Add(i);
     201                            ImageSource ims = (ImageSource) TryFindResource(image);
     202                            if (ims != null)
     203                            {
     204                                i.Source = ims;
     205                                sp.Children.Add(i);
     206                            }
    167207                        }
    168                     }
    169 
    170                     sp.VerticalAlignment = VerticalAlignment.Stretch;
    171                     sp.HorizontalAlignment = HorizontalAlignment.Stretch;
    172                     sp.Orientation = Orientation.Horizontal;
    173                     sp.Children.Add(l);
    174 
    175                     RadioButton rb = new RadioButton();
    176                     string id = ele.Attribute("id").Value;
    177                     if (id != null)
    178                         rb.Name = id;
    179                     rb.Checked += rb_Checked;
    180                     rb.HorizontalAlignment = HorizontalAlignment.Stretch;
    181                     rb.VerticalAlignment = VerticalAlignment.Stretch;
    182                     rb.HorizontalContentAlignment = HorizontalAlignment.Stretch;
    183                     rb.Content = border;
    184                     rb.Tag = ele;
    185 
    186                     radioButtonStackPanel.Children.Add(rb);
    187                     if (choicePath.Count > 0 && id == choicePath.Last())
    188                     {
    189                         choicePath.RemoveAt(choicePath.IndexOf(choicePath.Last()));
    190                         rb.IsChecked = true;
    191                         nextButton.IsEnabled = true;
     208
     209                        sp.VerticalAlignment = VerticalAlignment.Stretch;
     210                        sp.HorizontalAlignment = HorizontalAlignment.Stretch;
     211                        sp.Orientation = Orientation.Horizontal;
     212                        sp.Children.Add(l);
     213
     214                        RadioButton rb = new RadioButton();
     215                        string id = ele.Attribute("id").Value;
     216                        if (id != null)
     217                            rb.Name = id;
     218                        rb.Checked += rb_Checked;
     219                        rb.HorizontalAlignment = HorizontalAlignment.Stretch;
     220                        rb.VerticalAlignment = VerticalAlignment.Stretch;
     221                        rb.HorizontalContentAlignment = HorizontalAlignment.Stretch;
     222                        rb.Content = border;
     223                        rb.Tag = ele;
     224
     225                        radioButtonStackPanel.Children.Add(rb);
     226                        if (choicePath.Count > 0 && id == choicePath.Last())
     227                        {
     228                            choicePath.RemoveAt(choicePath.IndexOf(choicePath.Last()));
     229                            rb.IsChecked = true;
     230                            nextButton.IsEnabled = true;
     231                        }
    192232                    }
    193233                }
     
    275315        private void SetNextContent(object sender, EventArgs e)
    276316        {
    277             ResetBackground();
    278             for (int i = 0; i < radioButtonStackPanel.Children.Count; i++ )
    279             {
    280                 RadioButton b = (RadioButton)radioButtonStackPanel.Children[i];
    281                 if (b.IsChecked != null && (bool)b.IsChecked)
    282                 {
    283                     choicePath.Add(b.Name);
    284                     radioButtonStackPanel.Children.Clear();
    285                     description.Text = "";
    286                     SetupPage((XElement)b.Tag);
    287                     break;
    288                 }
     317            if (categoryGrid.IsVisible)
     318            {
     319                for (int i = 0; i < radioButtonStackPanel.Children.Count; i++)
     320                {
     321                    RadioButton b = (RadioButton) radioButtonStackPanel.Children[i];
     322                    if (b.IsChecked != null && (bool) b.IsChecked)
     323                    {
     324                        choicePath.Add(b.Name);
     325                        SetupPage((XElement) b.Tag);
     326                        break;
     327                    }
     328                }
     329            }
     330            else if (inputPanel.IsVisible)
     331            {
     332                var nextElement = (XElement) inputPanel.Tag;
     333                choicePath.Add(nextElement.Attribute("id").Value);
     334                SetupPage(nextElement);
    289335            }
    290336
     
    296342        private void SetLastContent(object sender, EventArgs e)
    297343        {
    298             ResetBackground();
    299             if (radioButtonStackPanel.Children.Count > 0)
    300             {
    301                 RadioButton b = (RadioButton)radioButtonStackPanel.Children[0];
    302                 XElement ele = (XElement)b.Tag;
    303                 radioButtonStackPanel.Children.Clear();
    304                 description.Text = "";
     344            XElement ele = null;
     345            if (categoryGrid.IsVisible && radioButtonStackPanel.Children.Count > 0)
     346            {
     347                RadioButton b = (RadioButton) radioButtonStackPanel.Children[0];
     348                ele = (XElement) b.Tag;
     349            }
     350            else if (inputPanel.IsVisible)
     351            {
     352                ele = (XElement) inputPanel.Tag;
     353            }
     354
     355            if (ele != null)
     356            {
    305357                XElement grandParent = ele.Parent.Parent;
    306358                if (grandParent != null)
Note: See TracChangeset for help on using the changeset viewer.