Диплом: Информационная система автоматического мониторинга цен конкурентов (на примере ООО ПКФ "Стройбаза №1")

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
78
Пользуясь моделью MVC можно сразу разделить пакеты будущего проекта,
как минимум на:
views – пакет, содержащий в себе всю графическую часть
приложения;
controllers – пакет, содержащий в себе контроллеры, управляющие
графической частью.
Помимо модели MVC в проекте существует так же классическая часть кода
java, использующая принципы ООП. Поэтому будет добавлен пакет «objects»,
который будет содержать в себе все классы объектов, использующихся в проекте.
Для обработки данных, параллельно работе основной визуальной
части программы, будут использоваться параллельные потоки.
Поэтому для классов этих потоков будет создан пакет «threads».
Для лаконичного вида для главного класса, запускающего всё
приложение так же будет создан пакет «start», который не несёт в
себе никакой значимости. Он создан лишь для более
структурированного вида проекта в целом.
Итак, первоначальная структура с созданными пакетами в IDE выглядит
следующим образом (рисунок 32):
Рис. 32 - Структура проекта в IDE.
Для каждой сцены графического представления так же требуются
собственные fxml-файлы. Соответственно, для каждого fxml-файла требуется
контроллер, если этот fxml-файл выполняет какую-то функциональную задачу.
79
Таким образом, для каждой сцены необходимо создать в структуре проекта свой
пакет, содержащий fxml-файлы. Аналогичным образом создаётся и структура
контроллеров (рисунок 33).
Рис. 33 - Структура «views» и «controllers».
В качестве дерева вызова программных модулей в случае данной
информационной системы можно рассмотреть вызовы контроллеров.
Схематически дерево вызова программных модулей изображено на рисунке 34.
80
Рис. 34 - Дерево вызова программных модулей.
В таблице 6 приведено общее описание данных классов.
81
Таблица 6
Описание классов взаимодействия с пользователем
Название класса
Описание
1
MainTableController
Данный класс открывается по
умолчанию классом StartController, в
котором производится
инициализация всех сцен и
навигация вцелом.
В классе MainTableController
открывается результат последнего
сканирования. Также отсюда
запускается метод ParsingThread.
2
ParsingThread
Класс, в котором организован
непосредственно парсинг страниц,
выполняемый в отдельном потоке.
3
ItemsController
Класс, в котором производятся
действия с номенклатурой товара
(просмотр, добавление, удаление,
редактирование).
4
CategoriesController
Класс, в котором производятся
действия с категориями товара
(просмотр, добавление, удаление,
редактирование).
5
ShopsController
Класс, в котором производятся
действия с магазинами (просмотр,
добавление, удаление,
редактирование).
6
HistoryController
Данный класс обеспечивает
возможность просмотра всей истории
результатов. Выводится результат,
актуальный на момент выбора
времени.
2.3.4. Описание программных модулей
Поскольку проект написан на Java, то все модули распределены по пакетам.
В проекте содержатся следующие пакеты:
controllers – здесь расположены классы, которые являются
связующим звеном между графическим интерфейсом пользователя и
непосредственно внутренней работой приложения. Большая часть
функционала данного проекта описана именно в этом пакете.
objects в данном пакете содержатся классы объектов, описывающих
физические объекты, с которыми работает приложение (магазины,
ссылки и т.д.).
82
startпакет для поддержания структуры каталогов. В нём
содержится главный класс приложения, с помощью которого
запускается всё приложение.
threads – в этом пакете содержатся классы, работающие в фоне/в
параллельном потоке.
viewsпакет, содержащий в себе все fxml-файлы (файлы описания
графического интерфейса, которые управляются контроллерами), а
так же прочие элементы графического интерфейса.
Пакет «controllers» содержит в себе другие пакеты, которые отвечают для
взаимодействия с соответствующими логики элементами графического
интерфейса. Внутри непосредственно пакета «controllers» расположен класс
«StartController».
Класс «StartController» необходим для инициализации всех сцен,
доступных в приложении. В этом классе осуществляется навигация, а также
некоторые другие действия. Класс имеет следующую структуру:
Переменные:
AnchorPane anchorPane – является главным контейнером, внутри
которого вложены все остальные элементы;
JFXProgressBar progressBar – элемент «прогресс-бара»,
показывающий прогресс сканирования;
JFXButton itemsTableBtn – кнопка, открывающая сцену с главной
таблицей;
Label readyLabel – надпись, оповещающая о завершении процесса
сканирования;
DBConnect dbConnect – переменная объекта класса подключения к
БД;
FXMLLoader fxmlLoader – объект, загружающий fxml-файлы;
Map parentMap – карта, в которой содержатся ссылки на fxml-файлы
сцен;
83
ItemsController itemsController – контроллер сцены с основной
таблицей;
SimpleDoubleProperty doubleProperty – принимает значение о
процентном завершении процесса сканирования;
SimpleBooleanProperty booleanProperty – принимает значение о
готовности результата сканирования.
Методы:
initializeстандартный метод инициализации. Здесь также
инициализируются и остальные сцены приложения;
changeScene – метод для смены сцен (навигация по приложению).
Для демонстрации кода данного класса, на рисунке 35 представлен
фрагмент этого класса, открытого в IDE. Полный листинг данного класса
представлен в приложении.
84
Рис. 35 - Класс StartController.
Далее будет представлено описание структуры классов, вложенных в
пакеты.
Пакет «categories.controllers».
Класс «CategoriesController» отвечает за взаимодействие со сценой
«Группы».
Переменные:
JFXListView listView – контейнер, содержащий в себе список
категорий;
StackPane stackPane – элемент, являющийся контейнером для других
графических объектов сцены;
85
DBConnect dbConnect – содержит в себе объект класса подключения
к БД;
ObservableList itemsList - список, содержащий в себе наименование
номенклатуры;
ObservableList categoriesList – список категорий;
VBox vBox – контейнер, располагающий элементы «один под
другим»;
JFXDialog dialog – диалоговое окно, в котором производится
создание и редактирование категорий.
Методы:
setDbConnectсэттер для переменной dbConnect;
buildList – метод для заполнения списка категорий;
addActionметод добавления категории;
editAction – метод редактирования категории;
editEnd – метод подтверждения редактирования;
removeAction – метод удаления категории.
Класс «CategoriesDialogController» отвечает за диалоговое окно добавления
и редактирования категорий.
Класс «CategoriesListController» отвечает за оформления списка категорий.
Пакет «history.controllers».
Класс «HistoryController» отвечает за взаимодействие со сценой «История».
Переменные:
JFXDatePicker datePicker – элемент выбора даты;
JFXTimePicker timePicker – элемент выбора времени;
TableView tableView – элемент «таблица»;
JFXButton findBtn – кнопка, вызывающая метод поиска в истории;
DBConnect dbConnect – объект класса подключения к БД;
boolean dateBoolean – «выбрана ли дата»;
86
boolean timeBoolean – «выбрано ли время».
Методы:
initialize – стандартный метод инициализации в JavaFX;
checkDate – метод, проверяющий выбор даты и времени;
setDbConnect – сэттер для dbConnect;
buildTable – метод для заполнения таблицы.
Пакет «items.controllers».
Класс «ItemsController» отвечает за взаимодействия со сценой «Позиции».
Переменные:
JFXListView listView – контейнер для списка номенклатуры;
StackPane stackPane – контейнер для других графических элементов;
DBConnect dbConnect – объект класса подключения к БД;
ObservableList itemList – список номенклатуры;
VBox vBox – контейнер, располагающий элементы «один под
другим»;
JFXDialog dialog – диалоговое окно для редактирования и
добавления номенклатуры.
Методы:
setDbConnectсэттер для переменной dbConnect;
addActionметод добавления номенклатуры;
buildList – метод для заполнения списка номенклатуры;
addAction – метод добавления номенклатуры;
editAction – метод для редактирования номенклатуры;
editEnd – метод для подтверждения редактирования и записи в БД;
removeAction – метод для удаления номенклатуры;
getShopList – метод, возвращающий список магазинов;
getLink – метод, возвращающий ссылку на товар.
87
Класс «ItemsDialogController» отвечает за диалоговое окно добавления и
редактирования номенклатуры.
Класс «ItemsListController» отвечает за оформления списка номенклатуры.
Пакет «maintable.controllers».
Класс «ItesmTableController» отвечает за отображение страницы с
результатом сканирования в виде таблицы.
Переменные:
TableView tableView – элемент, позволяющий отображать
информацию в табличном виде;
DBConnect dbConnect – объект класса подключения к БД.
Методы:
initializeстандартный метод инициализации;
setDbConnectсэттер для переменной dbConnect;
startAction – метод для запуска процесса сканирования;
buildTable – метод для заполнения таблицы при окончании
сканирования.
Пакет «shops.controllers».
Класс «ShopsController» обеспечивает взаимодействие со сценой
«Магазины».
Переменные:
JFXListView listView – контейнер для списка магазинов;
StackPane stackPane – контейнер для других графических элементов;
DBConnect dbConnect – объект класса подключения к БД;
ObservableList shopsList – список магазинов;
AnchorPane anchorPane – контейнер, в который помещён элемент
списка магазинов;
JFXDialog dialog – диалоговое окно для добавления и
редактирование магазинов.

Смотрите также:

"Автоматизация обработки заявок ООО "Проектно-Строительная Компания"
"Автоматизация процесса аттестации персонала для ООО "Нэт Бай Нэт Холдинг"
"Анализ интернет-активности конкурентов ( на примере конкурентов "Газпром нефть")
"Бухгалтерский учёт и аудит расчётов с подотчётними лицами в организации на примере ООО "ЛОЦ 10""
«Психологическое сопровождение персонала в организации на примере ООО «Крокус»
Cовершенствование деловой оценки персонала в организации (на примере ООО "Даймонд кейтеринг развитие")
PR как средство продвижения организации (на примере ПАО "Тамбовский завод "Комсомолец им. Н.С. Артемова")
PR-коммуникации в сфере общественного питания (на примере кафе-кондитерской «Cream Cheese»)
SMM как средство повышения эффективности работы учреждений социокультурной сферы (на примере Малого театра)
Value-based education: ценности в системе образования и способы их реализации на уроке английского языка. Опыт Европейских стран