|
|
|
@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<Char>
|
|
|
|
- url : String
|
|
|
|
+ setConnection(Connection connaction) : void
|
|
|
|
+ getConnaction() : Connaction
|
|
|
|
+ connect() : bolean
|
|
|
|
+ disconnect() : void
|
|
|
|
}
|
|
|
|
Base --> Data
|
|
|
|
Base --> AccessControls
|
|
|
|
|
|
|
|
' хранение и представление данных
|
|
|
|
class Data{
|
|
|
|
- userlist : ArrayList<User>
|
|
|
|
- results : ArrayList<Result>
|
|
|
|
- quizes : ArrayList<Quiz>
|
|
|
|
- tags : ArrayList<Tag>
|
|
|
|
+ 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
|