Ejemplo n.º 1
0
        // Метод логики загрузки приложения.
        private void LoadProcess(ref string error_msg)
        {
            btnStart.Visible    = false;
            ProgressBar.Visible = true;
            try
            {
                error_msg         += Utilits.CheckTestResult(Converter.Test());
                ProgressBar.Value += 20;
                error_msg         += Utilits.CheckTestResult(Decorator.Test());
                ProgressBar.Value += 20;
                error_msg         += Utilits.CheckTestResult(FormView.Test());
                ProgressBar.Value += 20;
                //error_msg+=Utilits.CheckTestResult( Methods.Test() );
                ProgressBar.Value += 20;

                if (error_msg != "") // Если мы нашли какие-либо ошибки
                {
                    Utilits.ShowMessage(error_msg);
                }
                pnlLoad.Visible = false; //Убираем панель загрузки
                pnlLoad.Enabled = false;
            }
            catch (Exception) // Если мы выловили вообще непонятную ошибку
            {
                ProgressBar.Visible = false;
                lblStart.Text       = "Что-то пошло не так...";
                Utilits.LogMessage("Что-то пошло не так", tbLog);
            }
        }
Ejemplo n.º 2
0
        // Обработчик кнопки "Начать работу"
        private void btnRun_Click(object sender, EventArgs e)
        {
            if (!IsThereSelectedMethods())  // Если не выбран ни один метод сортировки
            {
                Utilits.ShowMessage("Не выбраны методы сортировки");
                Utilits.LogMessage("Не выбраны методы сортировки", tbLog);
                return;
            }

            if (file_name == "")// Если не выбран файл
            {
                Utilits.ShowMessage("Не выбран файл");
                Utilits.LogMessage("Не выбран файл", tbLog);
                return;
            }

            Utilits.LogMessage("Запуск методов сортировки. Пожалуйста подождите...", tbLog);
            Init_Process_Progress_Bar();                                               // Инициализируем прогресс бар для процесса
            methods_id = SetListMethods();                                             // Установка списка методов для работы
            list_array.Clear();                                                        // Очищаем список массивов для сортировки. Массив внутри должен быть всегда один
            list_array.Add(Converter.Convert(file_name, Converter.DefaultSeparators)); // Добавляем массив в лист для хранения
            this.Enabled = false;                                                      // Блокируем форму
            RunCheckedMethods();                                                       // Запуск работы сортировок
            RunView();                                                                 // Запуск вьюшки
            this.Enabled = true;                                                       // Разблокируем форму
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Запускает методы сортировки с идентификаторами из methodIDs для массива array.
        /// </summary>
        /// <param name="methodIDs">Список содержащий идентификаторы методов которые требуется запустить</param>
        /// <param name="array">Массив для сортировки</param>
        /// <returns>Список результатов вызова методов</returns>
        public static List <MethodInfo> RunMethods(List <int> methodIDs, int[] array)
        {
            List <MethodInfo> decRes = new List <MethodInfo>();

            // Бежим по всем полученым делегатам и вызываем данные методы.
            for (int i = 0; i < methodIDs.Count; i++)
            {
                // РУСЯ: плс сделай понормальному сам видишь как это некрасиво
                try
                {
                    MethodInfo_Pair methodInputInfo = new MethodInfo_Pair(Methods.DicIdName[methodIDs[i]], Methods.DicMetSor[Methods.DicIdName[methodIDs[i]]]);
                    decRes.Add(RunMethod(methodInputInfo, Utilits.CopyArray(array)));
                }
                catch (IndexOutOfRangeException e)
                {
                    decRes.Add(ExceptionOutOfRangeMethodInfo);
                }
                catch (Exception e)
                {
                    decRes.Add(ExceptionErrorMethodInfo);
                }
            }

            return(decRes);
        }
Ejemplo n.º 4
0
        List <List <MethodInfo> > list_results = new List <List <MethodInfo> >(); // Лист, содержащий листы с результатами работы

        // Обработчик кнопки "Старт"
        private void btnStart_Click(object sender, EventArgs e)
        {
            string error_msg = "";                  // Сообщение об ошибке

            LoadProcess(ref error_msg);             // Загружаем приложение
            SetAvailableMethods(error_msg);         // Установка доступных методов
            Decorator.CloseMethod += GoProgressBar; // Подписываемся на событие завершения метода
            Utilits.LogMessage("Приложение запущено " + DateTime.Now.ToShortDateString() + " " + DateTime.Now.ToShortTimeString(), tbLog);
        }
Ejemplo n.º 5
0
 // Обработчик кнопки "Открыть файл"
 private void btnOpenFile_Click(object sender, EventArgs e)
 {
     dlgOpenFile.Filter = "Text files (*.txt)|*.txt";     // Устанавливаем фильтр
     if (dlgOpenFile.ShowDialog() == DialogResult.Cancel) // Проверяем, как был закрыт диалог
     {
         return;
     }
     file_name = dlgOpenFile.FileName; // получаем выбранный файл
     Utilits.LogMessage("Открыт файл: " + file_name, tbLog);
 }
Ejemplo n.º 6
0
        // Метод тестирует все классы
        private static void TestAll()
        {
            String error_message = "";

#if DEBUG
            //error_message+=Utilits.CheckTestResult( Converter.Test() ); НЕТ ТЕСТА
            error_message += Utilits.CheckTestResult(Decorator.Test());
            error_message += Utilits.CheckTestResult(FormView.Test());
            //error_message+=Utilits.CheckTestResult( Methods.Test() ); ТЕСТ КРИВОЙ
#else
#endif
            if (error_message != "")
            {
                Utilits.ShowMessage(error_message);
            }
        }
Ejemplo n.º 7
0
        // Проверка, что выбран хотя бы один метод сортировки.
        private bool IsThereSelectedMethods()
        {
            checked_methods = 0;
            foreach (var check_box in MethodBox.Controls)    // Бежим по чекбоксам
            {
                CheckBox chkbx_method = (CheckBox)check_box; // Приводим элемент к типу чекбокса
                if (chkbx_method.Checked == true)            // Если метод выбран
                {
                    checked_methods++;
                }
            }

            Utilits.LogMessage("Выбрано методов сортировки: " + checked_methods, tbLog);

            if (0 < checked_methods)
            {
                return(true);
            }
            return(false);
        }