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]; } /** * @return the data */ public Object[][] getData() { return data; } /** * Настройка заголовков отчета * @param data */ public void setHeader(Data data){ /** * Определение количества заголовков: * первые три (с нумерацией строк - четыре) заголовка определяются таблицей пользователей и всегда постоянны * остальные заголовки определяются: * количеством тестов, в прохождении которых участвовали пользователи, помноженным на * количество отчетных данных (результат сдачи теста и время потраченное на прохождение теста) */ //String[] h = new String[3 + 0]; // } /** * */ 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(); } } public void setData(Object[][] data){ this.data = data; } /** * @return the header */ public String[] getHeader() { return header; } /** * @param header the header to set */ public void setHeader(String[] header) { this.header = header; } }