private void ListBoxAction_SelectedIndexChanged(object sender, ItemCheckEventArgs e)
 {
     if (e.NewValue == CheckState.Checked)
     {
         for (int ix = 0; ix < ListBoxAction.Items.Count; ++ix)
         {
             if (e.Index != ix)
             {
                 ListBoxAction.SetItemChecked(ix, false);
             }
         }
     }
     fieldManager(1, e.Index);
 }
        private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (listBox1.GetItemText(listBox1.SelectedItem).Contains("Case:"))
            {
                NewStepPanel.Visible = false;
                ParamPanel.Visible   = false;
                TextBoxCaseName.Text = testCases.Find(t => t.name.Trim() == (listBox1.GetItemText(listBox1.SelectedItem).Split(':').LastOrDefault().Trim())).name;
            }
            else if (listBox1.GetItemText(listBox1.SelectedItem).Contains("Param:"))
            {
                NewStepPanel.Visible = false;
                ParamPanel.Visible   = true;
                Case  c = new Case();
                param p = new param();

                foreach (Case y in testCases)
                {
                    foreach (param o in y.parameters)
                    {
                        if (o.name.Trim() == listBox1.GetItemText(listBox1.SelectedItem).Split(':').LastOrDefault().Trim())
                        {
                            o.isActive = true;
                            p          = o;
                            c          = y;
                        }
                    }
                }
                TextBoxCaseName.Text = c.name;
                textBox2.Text        = p.name;
                textBox3.Text        = p.file;
                textBox1.Text        = p.value;
                checkedListBox1.SetItemChecked(checkedListBox1.Items.IndexOf(p.type), true);
            }
            else if (listBox1.GetItemText(listBox1.SelectedItem).Contains("Step:"))
            {
                NewStepPanel.Visible = true;
                ParamPanel.Visible   = false;
                Case     c = new Case();
                TempStep s = new TempStep();
                foreach (Case y in testCases)
                {
                    if (y.selected == true)
                    {
                        //y.selected = false;
                        foreach (TempStep o in y.steps)
                        {
                            int commaIn = listBox1.GetItemText(listBox1.SelectedItem).IndexOf(':');
                            o.isActive = false;
                            if (o.name.Trim() == listBox1.GetItemText(listBox1.SelectedItem).Substring(commaIn + 1).Trim())
                            {
                                //y.selected = true;
                                o.isActive = true;
                                s          = o;
                                c          = y;
                            }
                        }
                    }
                }

                ListBoxExtension.SetItemChecked(ListBoxExtension.Items.IndexOf(s.extension), true);
                TextBoxCaseName.Text = c.name;
                TextBoxValue.Text    = "";
                TextBoxElement.Text  = "";
                switch (forceFields(s))
                {
                case 0: TextBoxValue.Text = s.value;
                    fieldManager(2, 10);
                    break;

                case 1:
                case 2: TextBoxElement.Text = s.element;
                    TextBoxElement.Text     = s.element;
                    ListBoxAction.SetItemChecked(ListBoxAction.Items.IndexOf(s.action), true);
                    if (ListBoxAction.Items.IndexOf(s.action) != 0)
                    {
                        fieldManager(1, 1);
                        TextBoxValue.Text = s.value;
                    }
                    else
                    {
                        fieldManager(1);
                    }
                    break;

                case 10:
                    TextBoxElement.Text = s.element;
                    fieldManager(0, 2);
                    if (s.action != "")
                    {
                        ListBoxAction.SetItemChecked(ListBoxAction.Items.IndexOf(s.action), true);
                    }
                    ;
                    break;

                default:
                    TextBoxElement.Text = s.element;
                    fieldManager(1, 1);
                    ListBoxAction.SetItemChecked(ListBoxAction.Items.IndexOf(s.action), true);
                    //TextBoxValue.Text = s.value;
                    break;
                }
            }
        }
        private void SaveStep_Click(object sender, EventArgs e)
        {
            if (label2.Text.ToLower().Contains("attribute"))
            {
                label2.Text = "Value:";
                label1.Text = "Element:";
                Check ch = new Check(TextBoxElement.Text, TextBoxElement.Text + TextBoxValue.Text, TextBoxValue.Text);
                CheckList.Add(ch);
            }
            else
            {
                if (ListBoxExtension.CheckedItems.Count == 0)
                {
                    MessageBox.Show("Extension not filled in!");
                }
                TempStep t = new TempStep()
                {
                    extension = ListBoxExtension.GetItemText(ListBoxExtension.CheckedItems[0]),
                    action    = (ListBoxAction.CheckedItems.Count == 0)? "" : ListBoxAction.GetItemText(ListBoxAction.CheckedItems[0]),
                };
                switch (forceFields(t))
                {
                case 0:
                    t.value = TextBoxValue.Text;
                    break;

                case 1:
                    t.element = TextBoxElement.Text;
                    t.value   = TextBoxValue.Text;
                    break;

                case 2:
                    t.element = TextBoxElement.Text;
                    t.value   = TextBoxValue.Text;
                    break;
                }
                t.name = t.extension;
                if (t.extension != "Navigate")
                {
                    t.name += (" | " + t.element + " | " + t.action);
                }
                else
                {
                    t.name += (" | " + t.value);
                }

                foreach (Case c in testCases)
                {
                    if (c.selected)
                    {
                        if (c.steps.Exists(p => p.name == t.name))
                        {
                            int i = c.steps.IndexOf(c.steps.Find(p => p.name == t.name));
                            c.steps[i] = t;
                        }
                        else
                        {
                            c.steps.Add(t);
                        }
                    }
                }
            }
            showListboxItems();
        }