Пример #1
0
        private void CheckButton_Click(object sender, System.EventArgs e)
        {
            Identifiable [] checkedExperiments, allItems;
            RerunSettings   pickSettings;
            DataTable       rerunItemTable, allItemTable;
            RerunListForm   listForm;

            Identifiable [] selectedItems;

            try
            {
                //Store selected experiments.
                this.Cursor = Cursors.WaitCursor;

                DisplayStatus("Storing selected experiments...");

                checkedExperiments = new Identifiable[ExperimentList.TheCheckedListBox.CheckedItems.Count];
                for (int i = 0; i < ExperimentList.TheCheckedListBox.CheckedItems.Count; i++)
                {
                    checkedExperiments[i] = (Identifiable)ExperimentList.TheCheckedListBox.CheckedItems[i];
                }
                if (checkedExperiments.GetLength(0) < 1)
                {
                    this.Cursor = Cursors.Default;
                    MessageManager.ShowInformation("No experiments selected.", this);
                    return;
                }

                DisplayStatus("Clearing previous rerun experiments...");

                MyDataServer.ClearRerunExperiments();

                DisplayStatus("Adding new rerun experiments...");

                for (int i = 0; i < checkedExperiments.GetLength(0); i++)
                {
                    MyDataServer.AddRerunExperiment(checkedExperiments[i].ID);
                }

                //Read rerun settings.
                pickSettings = new RerunSettings();
                pickSettings.MissingGenotype        = MissingGenotypesCheckBox.Checked;
                pickSettings.MissingGenotypePercent = 100 - (int)MissingGenotypePercentage.Value;
                pickSettings.LowAlleleFrq           = AlleleFrqCheckBox.Checked;
                pickSettings.LowAlleleFrqPercent    = (int)AlleleFrqPercentage.Value;
                pickSettings.DuplicateErrors        = DuplicateErrorCheckBox.Checked;

                DisplayStatus("Processing rerun items...");

                //Get items to check.
                rerunItemTable = MyDataServer.GetRerunItems(MySessionSettings, pickSettings);

                DisplayStatus("Fetching all items...");

                //Fill item table with all items.
                allItemTable = MyDataServer.GetResultItems();
                allItems     = new Identifiable[allItemTable.Rows.Count];
                for (int i = 0; i < allItemTable.Rows.Count; i++)
                {
                    allItems[i] = new Identifiable(Convert.ToInt32(allItemTable.Rows[i]["item_id"]),
                                                   allItemTable.Rows[i]["identifier"].ToString());
                }

                DisplayStatus("Storing rerun items...");

                //Save the items which should be checked.
                selectedItems = new Identifiable[rerunItemTable.Rows.Count];
                for (int i = 0; i < rerunItemTable.Rows.Count; i++)
                {
                    selectedItems[i] = new Identifiable(Convert.ToInt32(rerunItemTable.Rows[i][0]), "");
                }

                DisplayStatus("Preparing display...");

                listForm = new RerunListForm(pickSettings, checkedExperiments, allItems, selectedItems);

                DisplayStatus("Finished, please wait...");

                this.Cursor = Cursors.Default;
                listForm.ShowDialog(this);

                DisplayStatus("Finished");
            }
            catch (Exception ex)
            {
                MessageManager.ShowError(ex, "Error when selecting items.", this);
            }
        }