esoe
3 years ago
2 changed files with 143 additions and 0 deletions
@ -0,0 +1,139 @@
@@ -0,0 +1,139 @@
|
||||
@startuml anyreport |
||||
!theme cerulean-outline |
||||
package moodle-anyreport{ |
||||
' сборка приложения |
||||
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 |
||||
+ 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 |
||||
|
||||
/' |
||||
получение данных из базы данных |
||||
доступ к базе данных |
||||
'/ |
||||
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 : 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 |
||||
|
||||
class User{ |
||||
- id : int |
||||
- login : String |
||||
- mail : String |
||||
} |
||||
User --> UserListModel |
||||
|
||||
class Result{ |
||||
- id : int |
||||
- quizid : int |
||||
- userid : int |
||||
- grade : double |
||||
- time : Long |
||||
} |
||||
Result --> Data |
||||
|
||||
class Quiz{ |
||||
- 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 |
Loading…
Reference in new issue