From 4057adfd2476305fe8fbbe12f07752d3369fdfa2 Mon Sep 17 00:00:00 2001 From: esoe Date: Fri, 20 May 2022 17:08:05 +0300 Subject: [PATCH] qq --- src/main/java/ru/egspt/Data.java | 5 +- src/main/java/ru/egspt/ReportTableModel.java | 57 +++++++++++++----- src/main/java/ru/egspt/TagControls.java | 8 ++- target/classes/ru/egspt/Data.class | Bin 4757 -> 4758 bytes target/classes/ru/egspt/ReportPane.class | Bin 2876 -> 2876 bytes .../classes/ru/egspt/ReportTableModel.class | Bin 2180 -> 2392 bytes target/classes/ru/egspt/TagControls.class | Bin 1923 -> 2086 bytes 7 files changed, 48 insertions(+), 22 deletions(-) diff --git a/src/main/java/ru/egspt/Data.java b/src/main/java/ru/egspt/Data.java index 5fb25dd..e5f11e7 100644 --- a/src/main/java/ru/egspt/Data.java +++ b/src/main/java/ru/egspt/Data.java @@ -47,7 +47,6 @@ public class Data extends UserListModel { //перебор опросов int i = 0; while (i < quizes.size()){ - //перебор результатов int j = 0; while (j < results.size()){ if (quizes.get(i).getId() == results.get(j).getQuizid()){ @@ -66,10 +65,10 @@ public class Data extends UserListModel { q.add(quizes.get(i)); } } + j++; } - j++; + i++; } - i++; return q; } /** diff --git a/src/main/java/ru/egspt/ReportTableModel.java b/src/main/java/ru/egspt/ReportTableModel.java index 2813ccd..85022b2 100644 --- a/src/main/java/ru/egspt/ReportTableModel.java +++ b/src/main/java/ru/egspt/ReportTableModel.java @@ -1,9 +1,11 @@ package ru.egspt; +import java.util.ArrayList; + import javax.swing.table.AbstractTableModel; public class ReportTableModel extends AbstractTableModel{ - private String[] header = new String[]{"id", "login", "mail"}; + private Object[] header = new String[]{"id", "login", "mail"}; private Object[][] data; public ReportTableModel(){} public ReportTableModel(App app){ @@ -26,28 +28,39 @@ public class ReportTableModel extends AbstractTableModel{ /** * @param header the header to set */ - public void setHeader(String[] header) { + public void setHeader(Object[] header) { this.header = header; } /** * Настройка заголовков отчета * @param data */ - public void setHeader(Data data){ + public Object[] getHeaderByQuize(Data report){ /** * Определение количества заголовков: - * первые три (с нумерацией строк - четыре) заголовка определяются таблицей пользователей и всегда постоянны + * первые три заголовка определяются таблицей пользователей и всегда постоянны * остальные заголовки определяются: * количеством тестов, в прохождении которых участвовали пользователи, помноженным на * количество отчетных данных (результат сдачи теста и время потраченное на прохождение теста) */ - //String[] h = new String[3 + 0]; - // + ArrayList header = new ArrayList(); + header.add("id"); + header.add("login"); + header.add("mail"); + //заголовки по названиям опросов + int i = 0; + while (i < report.getQuizes().size()){ + header.add(report.getQuizes().get(i).getName()); + //System.out.println("Пишем заголовок: " + base.getQuizes().get(i).getName()); + header.add(""); + i++; + } + return header.toArray(); } /** * @return the header */ - public String[] getHeader() { + public Object[] getHeader() { return header; } /** @@ -61,16 +74,28 @@ public class ReportTableModel extends AbstractTableModel{ */ public void setData(Data report) { //создаем объект data - инициализация переменной - this.data = new Object[report.getUsers().size()][3]; - //заполняем модель данными пользователей - int i = 0; - while (i < report.getUsers().size()){ - this.data[i][0] = report.getUsers().get(i).getId(); - this.data[i][1] = report.getUsers().get(i).getLogin(); - this.data[i][2] = report.getUsers().get(i).getMail(); - i++; - this.fireTableDataChanged(); + Object[][] d = new Object[report.getUsers().size()][3 + 2*report.getQuizes().size()]; + //построчно заполняем модель отчета данными + int userCurr = 0; + while (userCurr < report.getUsers().size()){ + ArrayList string = new ArrayList<>();//новая строка отчета + //пишем данные пользователя + string.add(report.getUsers().get(userCurr).getId()); + string.add(report.getUsers().get(userCurr).getLogin()); + string.add(report.getUsers().get(userCurr).getMail()); + //перебираем результаты пользователя + + + + //пишем строку в d + int j = 0; + while (j < d[userCurr].length){ + d[i][j] = string.toArray()[j]; + j++; + } + userCurr++; } + this.data = d; } /** * @return the data diff --git a/src/main/java/ru/egspt/TagControls.java b/src/main/java/ru/egspt/TagControls.java index 4a9acbb..70b1b8d 100644 --- a/src/main/java/ru/egspt/TagControls.java +++ b/src/main/java/ru/egspt/TagControls.java @@ -8,14 +8,16 @@ public class TagControls { //обновляем текстовую область app.getTagPane().updateTagArea(app.getTagModel()); app.getTagPane().getCurrentTagField().setText(""); - //Подготавливаем данные для отчета (по тегам) + //Подготавливаем данные для отчета (перебор данных по тегам) Data report = new Data(); report.setUsers(app.getData().getUsersByTag(app.getData().getUsers(), app.getTagModel())); report.setResults(app.getData().getResultsByUsers(app.getData().getResults(), report.getUsers())); report.setQuizes(app.getData().getQuizesByResults(app.getData().getQuizes(), report.getResults())); - //report.setHeaders(); + //формирование заголовков таблицы отчета + app.getReportPane().getReportTableModel().setHeader(app.getReportPane().getReportTableModel().getHeaderByQuize(report)); //выводим пользователей в отчет - app.getReportPane().setReportData(report); + app.getReportPane().getReportTableModel().setData(report); + //app.getReportPane().setupReportTablePane(app); app.getReportPane().getReportTableModel().fireTableDataChanged(); } //удаляем тег из модели diff --git a/target/classes/ru/egspt/Data.class b/target/classes/ru/egspt/Data.class index 447924e4a15dec326f1199b69485c76cc807953e..3b5f9bc5dca70f071b8ba15ac8c53ede6569fd34 100644 GIT binary patch delta 317 zcmW-b-z$T06vjW_ZEq&M?|!rut(DTQhGlq(R#qlT+l3z)Vq=<-l4V)atX_At^3CpD ztz0R^h5y4p;)*OzI(0gy=jnMq53zRaxnxG~apMJA@A&g?1ha12)1mIRjSgkqG>iR? zp~A-SD~-qBw&PJ@PyGLO^tTyJCkZf4hzSx*l4MHuw9E`E%(703ynK7iQ6|kf^IV9( z$pQ{z+_9)Ptdy$iwv`!(;O%1d;8#Bws>_g4QP&p{m;SVDBa1;!kNOH~RkwT}nN7jo zqK|EY>=0&`K?=kvVoP6|eR7oKI-nwYRr+fjN_&NCj=14i+D~4d{7E%(Dp6+=RmBp- afEYt!Oi&m6OF^%(#1+e;uhG!G!P`GxenMmb delta 316 zcmW-c-7CX!7{xzd+pmfC+e=o9R!X}XEyFKjGBsJrlqL(=X5J+l^OD$VQX=%t%B8Da zxKWA=|A)WC4Ou+7c{-2GHs)`N#$TIeH;MTCAq19AtMW{4SvNej;rW0g_%#e2#a zWxBa!oNE$#){LqhT{YwWRvdLq2X6I)q3U!f6=?XPO@Eq}k;Gt1hg}(!(zmXU_?)bs zro9j_Atfd b;XwX5l7Ehga>9u4gsh$rJw-`3d9VHeU}Hj` diff --git a/target/classes/ru/egspt/ReportPane.class b/target/classes/ru/egspt/ReportPane.class index 05c1e9ba92c9e9e5143269cef3cc37eda9ad17a1..22afd7e688788db7f9cad49b42c4aa8ef6b00ce1 100644 GIT binary patch delta 19 acmdlZwnuD(AS;`HQdVkm$!2j@RW<-X_yxiM delta 19 acmdlZwnuD(AS+vNNl|8A`et!fRW<-ZKLz3d diff --git a/target/classes/ru/egspt/ReportTableModel.class b/target/classes/ru/egspt/ReportTableModel.class index 39b6082e4a9d4d53530f76c962616c089bdec090..b4383476b9a150e9502cc8b4e0ee62b6f5119afd 100644 GIT binary patch delta 1103 zcmZuwOHUI~6#j1C9fpAADTJLk@9pZXGzKK*|C4nQZ;&m=Au z9sV8jBeSCDcPw>GEU&2vGaQ^{C|^;{n<`JL#?aQ}hW12dxYQIiHbUx3He-f{xyi%9 zxOnKS%=I!s$ z`?eUE#!wyA6FfD`4UI3S)ak8^I&Cc&g3<2(3@`HUkov;Z(3Hs&k7GPz7mHoTxm;3) z7d|f@k)y-Gju?h+_^`?_GLtscte)CblS)Eg&uA%bYI<797&_^%_b8HIQxZI#)=gzu zRSvMGu5e|u=vR`UVoio0k58PSc;P4!ao1D71Q&cb14;aF#Y;I z_p&PS**(DOM1^P4t-y^7Li3!@^&kv}68bQ|!%3CE#2zB^yXcFx2Fmm3pKA>S3Zc>p z&c0VrT3hnCUZ2OU4~XS4QAkf&VcW^-tz;fEFaLaN&Ewu{qI98_o^7^F8(9sZ4DF~! z2Xgheg7frKG@y&_Yjp12=%@EF^x!lVH5WXgj{38%3B<8Tj(zlXy0HWYRk!0lu9Eu) zl$Q^34=KlKM}p%Q8oY?Gvy|(=g~ad! zH1i8gOnmV{qBh0{;|nkT0-t>IS7_9`+eYXnb7%J6d+xdC&U|m)3mf15eEtI9GFD$2 zT+O+TU9$GK4p{9d6Ut&w)f?}dV>q66wqwF7Z@RG&?(#T8dv9L8P$CyXU>G!^K{s#{ zLmH9{O?Am8Zef@~w}d-e7LLpWPVbIlT*DYc%NpO|v2E8b#)ce+KTX?Z*Tii^85+v= zGvSvV#iWTeG7JH#!4T<9^`(7ak(aDkc4jgD7TE$rTRl-NE$)?_H<8D~s;cycWtSLQdyjTi8=jZ@ z$i!nWSECj(+%6hOFmMw~FbGw!9Wld~iozT0@G2=1D-5b5Ha8p+%WP7WbNTX<4Bzzg zWPk8^NJj%yoPsVZ!F*Gw_GjQM8s!;voE?(|b&$2l*J_e=$e-$T@C<_JmT|2+c@5|2 z(i-Xduh3Fxv3>v0K~|*@a2}mx+p0mFBqHx42^avAV|tWbl3RK^i_5Uq+Lkzk8$RSZ zaSh1#df)C3>MTIe^=N+uH!2uW50FwmA`uvTgKYEz5?vPqUZ|^riLaQd;La!Ha@9aX zUEo2@8?5s#`pTNvf*SPE>WxKp7s1vP|a?4hCHq6_wOaGREj zW*663-rexLL4b>&bjM!Z)`Eldtb<+t%sI$7F#c5GyLDi8IPZeY>pZ-yB?em z7{M+4@bVx3mn+Jsa1}!yr>KITh8lYkgQU)gxWodIls@leJcT|!HjV*IUff$?3=9k=4CNcSDp+)Ri&IO2QVa5nN?a045*ZnUG<=Fm^;6S}3rh4s zBG#H=TnzCHsXPp64C#{_SS;8w8M4_KvL^3ikz>r6T*(^ER?Ndt$e=R$3u`UsEd~|_ zCZOp}ldIT@rM0&)#A$6~h}y=GvW+2QBT$@)feT1#F>p;*V3*evVkl=2W@uy(Vc-Ue zia~TT