diff --git a/docs/anyreport.puml b/docs/anyreport.puml index 0562d86..d49bf74 100644 --- a/docs/anyreport.puml +++ b/docs/anyreport.puml @@ -2,26 +2,55 @@ !theme cerulean-outline package moodle-report{ ' сборка приложения - class App{} - ' разметка приложения - class ColumnPane{} - ColumnPane --> App - class ControlPane{} - ControlPane --> ColumnPane + class App{ + - accessPane : AccessPane + - tagPane : TagPane + - reportPane : ReportPane + } + 'панель подключения к базе данных class AccessPane{} - AccessPane --> ColumnPane + AccessPane --> App + 'панель управления тегами для формирования выборки пользователей class TagPane{} - TagPane --> ColumnPane + TagPane --> App + 'панель отображения отчета по выборке class ReportPane{} - ReportPane -->ColumnPane + 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 ReportModel{} - ReportModel --> ReportTextModel - ReportModel --> ReportXLSXModel - ReportModel --> ReportTableModel /' получение данных из базы данных @@ -32,26 +61,48 @@ package moodle-report{ - login : String - password : Array - url : String + + setConnection(Connection connaction) : void + + getConnaction() : Connaction + + connect() : bolean + + disconnect() : void } Base --> Data - Base --> AccessPane + 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 } - Data --> ReportModel - class User{} User --> Data - class Result{} + class Result{ + - id : int + - quizid : int + - userid : int + - grade : double + - time : Long + } Result --> Data - class Quiz{} + class Quiz{ + - id : int + - name : String + } Quiz --> Data - class Tag{} + class Tag{ + - tag : String + } Tag --> Data - Tag --> TagPane - } @enduml \ No newline at end of file