|
|
@ -1,9 +1,11 @@ |
|
|
|
package ru.egspt; |
|
|
|
package ru.egspt; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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 String[] 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(App app){ |
|
|
|
public ReportTableModel(App app){ |
|
|
@ -26,28 +28,39 @@ public class ReportTableModel extends AbstractTableModel{ |
|
|
|
/** |
|
|
|
/** |
|
|
|
* @param header the header to set |
|
|
|
* @param header the header to set |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
public void setHeader(String[] header) { |
|
|
|
public void setHeader(Object[] header) { |
|
|
|
this.header = header; |
|
|
|
this.header = header; |
|
|
|
} |
|
|
|
} |
|
|
|
/** |
|
|
|
/** |
|
|
|
* Настройка заголовков отчета |
|
|
|
* Настройка заголовков отчета |
|
|
|
* @param data |
|
|
|
* @param data |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
public void setHeader(Data data){ |
|
|
|
public Object[] getHeaderByQuize(Data report){ |
|
|
|
/** |
|
|
|
/** |
|
|
|
* Определение количества заголовков: |
|
|
|
* Определение количества заголовков: |
|
|
|
* первые три (с нумерацией строк - четыре) заголовка определяются таблицей пользователей и всегда постоянны |
|
|
|
* первые три заголовка определяются таблицей пользователей и всегда постоянны |
|
|
|
* остальные заголовки определяются: |
|
|
|
* остальные заголовки определяются: |
|
|
|
* количеством тестов, в прохождении которых участвовали пользователи, помноженным на |
|
|
|
* количеством тестов, в прохождении которых участвовали пользователи, помноженным на |
|
|
|
* количество отчетных данных (результат сдачи теста и время потраченное на прохождение теста) |
|
|
|
* количество отчетных данных (результат сдачи теста и время потраченное на прохождение теста) |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
//String[] h = new String[3 + 0];
|
|
|
|
ArrayList<Object> header = new ArrayList<Object>(); |
|
|
|
//
|
|
|
|
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 |
|
|
|
* @return the header |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
public String[] getHeader() { |
|
|
|
public Object[] getHeader() { |
|
|
|
return header; |
|
|
|
return header; |
|
|
|
} |
|
|
|
} |
|
|
|
/** |
|
|
|
/** |
|
|
@ -61,16 +74,28 @@ public class ReportTableModel extends AbstractTableModel{ |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
public void setData(Data report) { |
|
|
|
public void setData(Data report) { |
|
|
|
//создаем объект data - инициализация переменной
|
|
|
|
//создаем объект data - инициализация переменной
|
|
|
|
this.data = new Object[report.getUsers().size()][3]; |
|
|
|
Object[][] d = new Object[report.getUsers().size()][3 + 2*report.getQuizes().size()]; |
|
|
|
//заполняем модель данными пользователей
|
|
|
|
//построчно заполняем модель отчета данными
|
|
|
|
int i = 0; |
|
|
|
int userCurr = 0; |
|
|
|
while (i < report.getUsers().size()){ |
|
|
|
while (userCurr < report.getUsers().size()){ |
|
|
|
this.data[i][0] = report.getUsers().get(i).getId(); |
|
|
|
ArrayList<Object> string = new ArrayList<>();//новая строка отчета
|
|
|
|
this.data[i][1] = report.getUsers().get(i).getLogin(); |
|
|
|
//пишем данные пользователя
|
|
|
|
this.data[i][2] = report.getUsers().get(i).getMail(); |
|
|
|
string.add(report.getUsers().get(userCurr).getId()); |
|
|
|
i++; |
|
|
|
string.add(report.getUsers().get(userCurr).getLogin()); |
|
|
|
this.fireTableDataChanged(); |
|
|
|
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 |
|
|
|
* @return the data |
|
|
|