@ -1,9 +1,11 @@
@@ -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{
@@ -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 < 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
* /
public String [ ] getHeader ( ) {
public Object [ ] getHeader ( ) {
return header ;
}
/ * *
@ -61,16 +74,28 @@ public class ReportTableModel extends AbstractTableModel{
@@ -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 < Object > 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