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.

108 lines
3.1 KiB

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