You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
156 lines
4.7 KiB
156 lines
4.7 KiB
3 years ago
|
@startuml anyreport
|
||
|
!theme cerulean-outline
|
||
3 years ago
|
'left to right direction
|
||
3 years ago
|
package moodle-anyreport{
|
||
|
' сборка приложения
|
||
|
class App{
|
||
|
- accessPane : AccessPane
|
||
|
- tagPane : TagPane
|
||
|
- reportPane : ReportPane
|
||
|
}
|
||
|
'панель подключения к базе данных
|
||
|
class AccessPane{}
|
||
|
AccessPane --> App
|
||
3 years ago
|
'панель просмотра базы данных (аналог phpmyadmin)
|
||
|
class BasePane{}
|
||
|
BasePane --> App
|
||
3 years ago
|
'панель управления тегами для формирования выборки пользователей
|
||
|
class TagPane{}
|
||
|
TagPane --> App
|
||
|
'панель отображения отчета по выборке
|
||
|
class ReportPane{}
|
||
|
ReportPane -->App
|
||
|
|
||
|
/'методы обработки действий пользователя
|
||
|
клики мыши, нажатия клавишь, итд.
|
||
|
'/
|
||
3 years ago
|
class TagControls <<static>>{
|
||
3 years ago
|
+ enterPressed() : void
|
||
|
+ addTag() : void
|
||
|
+ removeTag() : void
|
||
|
+ clearTags() : void
|
||
|
}
|
||
|
TagControls --> TagPane
|
||
|
|
||
|
'Пользователь попросил сохранить отчет в файл
|
||
|
'Указывает путь куда сохранить
|
||
3 years ago
|
class ReportControls <<static>>{
|
||
3 years ago
|
- path : String
|
||
|
+ getTableReport() : void
|
||
|
+ getXLSXReport() : void
|
||
|
+ getTextReport() : void
|
||
|
}
|
||
|
ReportControls --> ReportPane
|
||
|
|
||
|
'модель данных для текстового отчета
|
||
|
class ReportTextModel{
|
||
|
'количество пройденных тестов
|
||
|
'список пройденных тестов
|
||
|
'количество пользователей в выборке
|
||
|
'количество уникальных пользователей
|
||
|
}
|
||
|
ReportTextModel --> ReportControls
|
||
|
'модель данных для отчета xlsx
|
||
|
class ReportXLSXModel{
|
||
|
- path : String
|
||
|
+ ReportXLSXModel(Data data) : void
|
||
|
+ setPath() : void
|
||
|
+ getPath() : String
|
||
|
+ CreateXLSXReport() : void
|
||
|
}
|
||
|
ReportXLSXModel --> ReportControls
|
||
|
'модель данных для отображения в gui
|
||
|
class ReportTableModel{}
|
||
|
ReportTableModel --> ReportControls
|
||
|
|
||
3 years ago
|
/'Общий инструментарий работы с базой данных
|
||
|
'/
|
||
|
class BaseControls <<static>>{
|
||
|
+ connectToServer() : void
|
||
|
+ disconnectFromServer() : void
|
||
|
+ showBaseList() : void
|
||
|
+ selectCurrentBase() : void
|
||
|
+ showTables() : void
|
||
|
}
|
||
|
BaseControls --> AccessPane
|
||
|
BaseControls --> BasePane
|
||
3 years ago
|
/'
|
||
|
получение данных из базы данных
|
||
|
доступ к базе данных
|
||
|
'/
|
||
|
class Base{
|
||
3 years ago
|
- access : Access
|
||
3 years ago
|
- connection : Connection
|
||
|
+ setConnection(Connection connaction) : void
|
||
|
+ getConnaction() : Connaction
|
||
3 years ago
|
+ connect(Base b) : void
|
||
|
+ disconnect(Base b) : void
|
||
|
' запрос к базе, возвращает ответ
|
||
|
+ querry(String querry) : ResultSet
|
||
|
|
||
3 years ago
|
}
|
||
|
Base --> Data
|
||
3 years ago
|
Base --> BaseControls
|
||
|
enum Access{
|
||
|
- login : String
|
||
|
- password : String
|
||
|
- link : String
|
||
|
}
|
||
|
Access --> Base
|
||
3 years ago
|
|
||
|
' хранение и представление данных
|
||
|
class Data{
|
||
|
- userlist : UserListModel
|
||
|
- results : ArrayList<Result>
|
||
|
- quizes : ArrayList<Quiz>
|
||
|
}
|
||
|
Data --> ReportTextModel
|
||
|
Data --> ReportXLSXModel
|
||
|
Data --> ReportTableModel
|
||
|
|
||
|
/'формирование перечня пользователей
|
||
|
- на основании тегов
|
||
|
- на основании исходных перечней (из файла)
|
||
|
'/
|
||
|
class UserListModel{
|
||
|
- userlist : ArrayList<User>
|
||
|
+ getUsers() : ArrayList<User>
|
||
|
+ setUsersByTag(TagModel tags) : void
|
||
|
+ setUsersFromFile(File file) : void
|
||
|
}
|
||
|
UserListModel --> Data
|
||
|
|
||
3 years ago
|
enum User{
|
||
3 years ago
|
- id : int
|
||
|
- login : String
|
||
|
- mail : String
|
||
|
}
|
||
|
User --> UserListModel
|
||
|
|
||
3 years ago
|
enum Result{
|
||
3 years ago
|
- id : int
|
||
|
- quizid : int
|
||
|
- userid : int
|
||
|
- grade : double
|
||
|
- time : Long
|
||
|
}
|
||
|
Result --> Data
|
||
|
|
||
3 years ago
|
enum Quiz{
|
||
3 years ago
|
- id : int
|
||
|
- name : String
|
||
|
}
|
||
|
Quiz --> Data
|
||
|
|
||
|
class TagModel{
|
||
|
- tags : ArrayList<String>
|
||
|
+ setTags(ArrayList<String> tags) : void
|
||
|
+ getTags() : ArrayList<String>
|
||
|
+ addTag(String tag) : void
|
||
|
+ removeTag(String tag) : void
|
||
|
}
|
||
|
TagModel --> TagControls
|
||
|
TagModel --> UserListModel
|
||
|
}
|
||
|
|
||
|
@enduml
|