예제 #1
0
 /// <summary>
 /// Заголовок отображающий с каким элементом в данный момент происходит взаимодейстие
 /// </summary>
 /// <param name="directory">Имя элемента</param>
 public void PrintHead(string directory)
 {
     PrintLine.FullLine();
     PrintLine.Print("Элемент: ");
     PrintLine.Print(directory);
     PrintLine.FullLine();
 }
예제 #2
0
 public void PrintHelpMenu()
 {
     PrintLine.FullLine();
     PrintLine.Print("Стрелочки вверх и вниз для листания.");
     PrintLine.Print("Esc для выхода.");
     PrintLine.Print("Enter для выбора.");
     PrintLine.FullLine();
 }
예제 #3
0
        /// <summary>
        /// Создание массива элементов для отображения
        /// </summary>
        public void CreateList()
        {
            string[] dirs;
            string[] file;
            try
            {
                dirs = Directory.GetDirectories(start_directory);
                file = Directory.GetFiles(start_directory);
            }

            catch
            {
                PrintHead(start_directory);
                PrintLine.FullLine();
                PrintLine.Print("ошибка доступа");
                start_directory = Directory.GetParent(start_directory)?.FullName;
                PrintLine.FullLine();
                Console.ReadLine();
                Console.Clear();
                return;
            }

            int first_button = 1;
            int last_button  = 0;

            if (havecopy)
            {
                last_button += 1;
            }

            int list_len = dirs.Length + file.Length + first_button + last_button;

            list = new FileElement[list_len];

            list[0] = new FileElement(FileElement.TypeElement.backspace);

            if (havecopy)
            {
                list[list.Length - 1] = new FileElement(FileElement.TypeElement.copylistbutton);
            }

            for (int i = 1; i < list.Length - last_button; i++)
            {
                if (i - first_button < dirs.Length)
                {
                    list[i] = new FileElement(dirs[i - first_button]);
                }
                else if (i >= dirs.Length + first_button)
                {
                    list[i] = new FileElement(file[i - dirs.Length - first_button]);
                }
            }

            len_menu = list.Length - 1;
        }
예제 #4
0
 /// <summary>
 /// Вывод на консоль информации о элементе
 /// </summary>
 /// <param name="info">массив строк</param>
 public void PrintInfo(string[] info)
 {
     Console.Clear();
     PrintLine.FullLine();
     for (int i = 0; i < info.Length; i++)
     {
         PrintLine.Print(info[i]);
     }
     PrintLine.FullLine();
     Console.ReadLine();
 }
예제 #5
0
        /// <summary>
        /// Выводит на консоль содержимое директории.
        /// </summary>
        public void PrintList()
        {
            //Количество выведенных элементов на консоль
            int quant = 0;

            if (select_position == top_limit + quant_element - 1)
            {
                //сдвиг верхней границы
                top_limit++;
            }
            else if (select_position == 0)
            {
                top_limit = 0;
            }

            else if (select_position == top_limit)
            {
                top_limit--;
            }

            PrintLine.FullLine();
            for (int i = top_limit; i < list.Length; i++)
            {
                //остановка вывода на консоль
                if (quant == quant_element)
                {
                    break;
                }

                //вывести на консоль с подсветкой
                if (i == select_position)
                {
                    PrintLine.ColorPrint(list[i].Name);
                }

                //вывод на консоль без подсветки
                else
                {
                    PrintLine.Print(list[i].Name);
                }

                quant++;
            }
            while (quant < quant_element)
            {
                PrintLine.Print(""); quant++;
            }

            PrintLine.FullLine();
        }
예제 #6
0
        /// <summary>
        /// Вывод на консоль содержимого массива с копированными элементами
        /// </summary>
        public void SelectCopyList()
        {
            int z = 0;

            PrintLine.FullLine();
            for (int i = 0; i < copylist.Length; i++)
            {
                if (copylist[i] != null)
                {
                    z++;
                    PrintLine.Print(copylist[i].Name);
                }
            }
            if (z == 0)
            {
                PrintLine.Print("Список пуст");
            }
            PrintLine.FullLine();
            Console.ReadLine();
        }
예제 #7
0
        /// <summary>
        /// Вывод на консоль возможных действий с элементом
        /// </summary>
        /// <param name="array">массив строк отображающих возможные действия</param>
        /// <param name="position">позиция курсора</param>
        public void PrintSubMenu(string[,] array, int position)
        {
            Console.Clear();
            PrintHead(list[select_position].Name);
            PrintLine.FullLine();
            int rows = array.GetUpperBound(0) + 1;

            for (int i = 0; i < rows; i++)
            {
                if (i == position)
                {
                    PrintLine.ColorPrint(array[i, 0]);
                }
                else
                {
                    PrintLine.Print(array[i, 0]);
                }
            }
            PrintLine.FullLine();
            if (PrintHelp)
            {
                PrintHelpMenu();
            }
        }