|
|
@ -5,10 +5,20 @@ import java.util.ArrayList; |
|
|
|
import javax.swing.table.AbstractTableModel; |
|
|
|
import javax.swing.table.AbstractTableModel; |
|
|
|
|
|
|
|
|
|
|
|
public class ReportTableModel extends AbstractTableModel{ |
|
|
|
public class ReportTableModel extends AbstractTableModel{ |
|
|
|
private Object[] header = new String[]{"id", "login", "mail"}; |
|
|
|
private Object[] header;// = new String[]{"id", "login", "mail"};
|
|
|
|
private Object[][] data; |
|
|
|
private Object[][] data; |
|
|
|
public ReportTableModel(){} |
|
|
|
public ReportTableModel(){} |
|
|
|
|
|
|
|
public ReportTableModel(Object[] header, Object[][] data){ |
|
|
|
|
|
|
|
setHeader(header); |
|
|
|
|
|
|
|
setData(data); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
public ReportTableModel(Data data){ |
|
|
|
|
|
|
|
setHeader(getHeaderByQuize(data)); |
|
|
|
|
|
|
|
setData(data); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public ReportTableModel(App app){ |
|
|
|
public ReportTableModel(App app){ |
|
|
|
|
|
|
|
setHeader(getHeaderByQuize(app.getData())); |
|
|
|
setData(app.getData()); |
|
|
|
setData(app.getData()); |
|
|
|
} |
|
|
|
} |
|
|
|
@Override |
|
|
|
@Override |
|
|
@ -30,6 +40,7 @@ public class ReportTableModel extends AbstractTableModel{ |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
public void setHeader(Object[] header) { |
|
|
|
public void setHeader(Object[] header) { |
|
|
|
this.header = header; |
|
|
|
this.header = header; |
|
|
|
|
|
|
|
fireTableDataChanged(); |
|
|
|
} |
|
|
|
} |
|
|
|
/** |
|
|
|
/** |
|
|
|
* Настройка заголовков отчета |
|
|
|
* Настройка заголовков отчета |
|
|
@ -51,7 +62,7 @@ public class ReportTableModel extends AbstractTableModel{ |
|
|
|
int i = 0; |
|
|
|
int i = 0; |
|
|
|
while (i < report.getQuizes().size()){ |
|
|
|
while (i < report.getQuizes().size()){ |
|
|
|
header.add(report.getQuizes().get(i).getName()); |
|
|
|
header.add(report.getQuizes().get(i).getName()); |
|
|
|
//System.out.println("Пишем заголовок: " + base.getQuizes().get(i).getName());
|
|
|
|
System.out.println("Пишем заголовок: " + report.getQuizes().get(i).getName()); |
|
|
|
header.add(""); |
|
|
|
header.add(""); |
|
|
|
i++; |
|
|
|
i++; |
|
|
|
} |
|
|
|
} |
|
|
@ -79,18 +90,33 @@ public class ReportTableModel extends AbstractTableModel{ |
|
|
|
int userCurr = 0; |
|
|
|
int userCurr = 0; |
|
|
|
while (userCurr < report.getUsers().size()){ |
|
|
|
while (userCurr < report.getUsers().size()){ |
|
|
|
ArrayList<Object> string = new ArrayList<>();//новая строка отчета
|
|
|
|
ArrayList<Object> string = new ArrayList<>();//новая строка отчета
|
|
|
|
//пишем данные пользователя
|
|
|
|
//пишем данные пользователя (первые три столбца)
|
|
|
|
string.add(report.getUsers().get(userCurr).getId()); |
|
|
|
string.add(report.getUsers().get(userCurr).getId()); |
|
|
|
string.add(report.getUsers().get(userCurr).getLogin()); |
|
|
|
string.add(report.getUsers().get(userCurr).getLogin()); |
|
|
|
string.add(report.getUsers().get(userCurr).getMail()); |
|
|
|
string.add(report.getUsers().get(userCurr).getMail()); |
|
|
|
//перебираем результаты пользователя
|
|
|
|
//перебираем остальные заголовки (перечень опросов)
|
|
|
|
|
|
|
|
Boolean find = false; |
|
|
|
|
|
|
|
int quizCurr = 0; |
|
|
|
|
|
|
|
while (quizCurr < report.getQuizes().size()){ |
|
|
|
|
|
|
|
//перебираем результаты, ищем результаты по текущему опросу
|
|
|
|
|
|
|
|
int resultCurr = 0; |
|
|
|
|
|
|
|
while (resultCurr < report.getResults().size()){ |
|
|
|
|
|
|
|
//если текущий результат относится к текущему опросу:
|
|
|
|
|
|
|
|
if (report.getResults().get(resultCurr).getQuizid() == report.getQuizes().get(quizCurr).getId()){ |
|
|
|
|
|
|
|
//если текущий результат относится к текущему пользователю
|
|
|
|
|
|
|
|
if (report.getResults().get(resultCurr).getUserid() == report.getUsers().get(userCurr).getId()){ |
|
|
|
|
|
|
|
string.add(report.getResults().get(resultCurr).getGrade()); |
|
|
|
|
|
|
|
string.add(report.getResults().get(resultCurr).getTime()); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
resultCurr++; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
quizCurr++; |
|
|
|
|
|
|
|
} |
|
|
|
//пишем строку в d
|
|
|
|
//пишем строку в d
|
|
|
|
int j = 0; |
|
|
|
int j = 0; |
|
|
|
while (j < d[userCurr].length){ |
|
|
|
while (j < d[userCurr].length){ |
|
|
|
d[i][j] = string.toArray()[j]; |
|
|
|
d[userCurr][j] = string.toArray()[j]; |
|
|
|
j++; |
|
|
|
j++; |
|
|
|
} |
|
|
|
} |
|
|
|
userCurr++; |
|
|
|
userCurr++; |
|
|
|