|
|
|
package ru.egspt;
|
|
|
|
|
|
|
|
import javax.swing.table.AbstractTableModel;
|
|
|
|
|
|
|
|
public class ReportTableModel extends AbstractTableModel{
|
|
|
|
private String[] header = new String[]{"id", "login", "mail"};
|
|
|
|
private Object[][] data;
|
|
|
|
public ReportTableModel(){}
|
|
|
|
public ReportTableModel(App app){
|
|
|
|
setData(app.getData());
|
|
|
|
}
|
|
|
|
@Override
|
|
|
|
public int getRowCount() {
|
|
|
|
return getData().length;
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public int getColumnCount() {
|
|
|
|
return getHeader().length;
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public Object getValueAt(int rowIndex, int columnIndex) {
|
|
|
|
return getData()[rowIndex][columnIndex];
|
|
|
|
}
|
|
|
|
/**
|
|
|
|
* @param header the header to set
|
|
|
|
*/
|
|
|
|
public void setHeader(String[] header) {
|
|
|
|
this.header = header;
|
|
|
|
}
|
|
|
|
/**
|
|
|
|
* Настройка заголовков отчета
|
|
|
|
* @param data
|
|
|
|
*/
|
|
|
|
public void setHeader(Data data){
|
|
|
|
/**
|
|
|
|
* Определение количества заголовков:
|
|
|
|
* первые три (с нумерацией строк - четыре) заголовка определяются таблицей пользователей и всегда постоянны
|
|
|
|
* остальные заголовки определяются:
|
|
|
|
* количеством тестов, в прохождении которых участвовали пользователи, помноженным на
|
|
|
|
* количество отчетных данных (результат сдачи теста и время потраченное на прохождение теста)
|
|
|
|
*/
|
|
|
|
//String[] h = new String[3 + 0];
|
|
|
|
//
|
|
|
|
}
|
|
|
|
/**
|
|
|
|
* @return the header
|
|
|
|
*/
|
|
|
|
public String[] getHeader() {
|
|
|
|
return header;
|
|
|
|
}
|
|
|
|
/**
|
|
|
|
*
|
|
|
|
*/
|
|
|
|
public void setData(Object[][] data){
|
|
|
|
this.data = data;
|
|
|
|
}
|
|
|
|
/**
|
|
|
|
*
|
|
|
|
*/
|
|
|
|
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();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
/**
|
|
|
|
* @return the data
|
|
|
|
*/
|
|
|
|
public Object[][] getData() {
|
|
|
|
return data;
|
|
|
|
}
|
|
|
|
}
|