@startuml !theme cerulean-outline package moodle-report{ ' сборка приложения class App{ - accessPane : AccessPane - tagPane : TagPane - reportPane : ReportPane } 'панель подключения к базе данных class AccessPane{} AccessPane --> App 'панель управления тегами для формирования выборки пользователей class TagPane{} TagPane --> App 'панель отображения отчета по выборке class ReportPane{} ReportPane -->App /'методы обработки действий пользователя клики мыши, нажатия клавишь, итд. '/ class TagControls{ + enterPressed() : void + addTag() : void + removeTag() : void + clearTags() : void } TagControls --> TagPane class AccessControls{ + connect(Base base, JPanel pane) : void + disconnect(Base base, JPanel pane) : void } AccessControls --> AccessPane 'Пользователь попросил сохранить отчет в файл 'Указывает путь куда сохранить class ReportControls{ - path : String + getTableReport() : void + getJsonReport() : void + getTextReport() : void } ReportControls --> ReportTextModel ReportControls --> ReportXLSXModel ReportControls --> ReportTableModel 'модель данных для текстового отчета class ReportTextModel{} 'модель данных для отчета xlsx class ReportXLSXModel{} 'модель данных для отображения в gui class ReportTableModel{} ReportTableModel --> ReportPane /' получение данных из базы данных доступ к базе данных '/ class Base{ - connection : Connection - login : String - password : Array - url : String + setConnection(Connection connaction) : void + getConnaction() : Connaction + connect() : bolean + disconnect() : void } Base --> Data Base --> AccessControls ' хранение и представление данных class Data{ - userlist : ArrayList - results : ArrayList - quizes : ArrayList - tags : ArrayList + addTag(String tag) : void + removeTag(String tag) : void } Data --> ReportControls Data --> TagControls class User{ - id : int - login : String - mail : String } User --> Data class Result{ - id : int - quizid : int - userid : int - grade : double - time : Long } Result --> Data class Quiz{ - id : int - name : String } Quiz --> Data class Tag{ - tag : String } Tag --> Data } @enduml