diff --git a/docs/anyreport.puml b/docs/anyreport.puml index d49bf74..139eb7b 100644 --- a/docs/anyreport.puml +++ b/docs/anyreport.puml @@ -1,4 +1,4 @@ -@startuml +@startuml anyreport !theme cerulean-outline package moodle-report{ ' сборка приложения @@ -27,6 +27,7 @@ package moodle-report{ + clearTags() : void } TagControls --> TagPane + class AccessControls{ + connect(Base base, JPanel pane) : void + disconnect(Base base, JPanel pane) : void @@ -37,20 +38,31 @@ package moodle-report{ class ReportControls{ - path : String + getTableReport() : void - + getJsonReport() : void + + getXLSXReport() : void + getTextReport() : void } - ReportControls --> ReportTextModel - ReportControls --> ReportXLSXModel - ReportControls --> ReportTableModel + ReportControls --> ReportPane 'модель данных для текстового отчета - class ReportTextModel{} + class ReportTextModel{ + 'количество пройденных тестов + 'список пройденных тестов + 'количество пользователей в выборке + 'количество уникальных пользователей + } + ReportTextModel --> ReportControls 'модель данных для отчета xlsx - class ReportXLSXModel{} + class ReportXLSXModel{ + - path : String + + ReportXLSXModel(Data data) : void + + setPath() : void + + getPath() : String + + CreateXLSXReport() : void + } + ReportXLSXModel --> ReportControls 'модель данных для отображения в gui class ReportTableModel{} - ReportTableModel --> ReportPane + ReportTableModel --> ReportControls /' получение данных из базы данных @@ -71,21 +83,33 @@ package moodle-report{ ' хранение и представление данных class Data{ - - userlist : ArrayList + - userlist : UserListModel - results : ArrayList - quizes : ArrayList - - tags : ArrayList - + addTag(String tag) : void - + removeTag(String tag) : void } - Data --> ReportControls - Data --> TagControls + Data --> ReportTextModel + Data --> ReportXLSXModel + Data --> ReportTableModel + + /'формирование перечня пользователей + - на основании тегов + - на основании исходных перечней (из файла) + '/ + class UserListModel{ + - userlist : ArrayList + + getUsers() : ArrayList + + setUsersByTag(TagModel tags) : void + + setUsersFromFile(File file) : void + } + UserListModel --> Data + class User{ - id : int - login : String - mail : String } - User --> Data + User --> UserListModel + class Result{ - id : int - quizid : int @@ -94,15 +118,26 @@ package moodle-report{ - time : Long } Result --> Data + class Quiz{ - id : int - name : String } Quiz --> Data + + class TagModel{ + + addTag(String tag) : void + + removeTag(String tag) : void + } + TagModel --> TagControls + TagModel --> UserListModel + class Tag{ - tag : String + + getTag() : String + + setTag(String tag) : void } - Tag --> Data + Tag --> TagModel } @enduml \ No newline at end of file diff --git a/out/docs/anyreport/anyreport.png b/out/docs/anyreport/anyreport.png new file mode 100644 index 0000000..35af062 Binary files /dev/null and b/out/docs/anyreport/anyreport.png differ