|
|
|
@ -2,26 +2,55 @@
@@ -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{
@@ -32,26 +61,48 @@ package moodle-report{
|
|
|
|
|
- login : String |
|
|
|
|
- password : Array<Char> |
|
|
|
|
- url : String |
|
|
|
|
+ setConnection(Connection connaction) : void |
|
|
|
|
+ getConnaction() : Connaction |
|
|
|
|
+ connect() : bolean |
|
|
|
|
+ disconnect() : void |
|
|
|
|
} |
|
|
|
|
Base --> Data |
|
|
|
|
Base --> AccessPane |
|
|
|
|
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 |
|
|
|
|
} |
|
|
|
|
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 |