esoe 2 years ago
parent
commit
4057adfd24
  1. 5
      src/main/java/ru/egspt/Data.java
  2. 57
      src/main/java/ru/egspt/ReportTableModel.java
  3. 8
      src/main/java/ru/egspt/TagControls.java
  4. BIN
      target/classes/ru/egspt/Data.class
  5. BIN
      target/classes/ru/egspt/ReportPane.class
  6. BIN
      target/classes/ru/egspt/ReportTableModel.class
  7. BIN
      target/classes/ru/egspt/TagControls.class

5
src/main/java/ru/egspt/Data.java

@ -47,7 +47,6 @@ public class Data extends UserListModel {
//перебор опросов //перебор опросов
int i = 0; int i = 0;
while (i < quizes.size()){ while (i < quizes.size()){
//перебор результатов
int j = 0; int j = 0;
while (j < results.size()){ while (j < results.size()){
if (quizes.get(i).getId() == results.get(j).getQuizid()){ if (quizes.get(i).getId() == results.get(j).getQuizid()){
@ -66,10 +65,10 @@ public class Data extends UserListModel {
q.add(quizes.get(i)); q.add(quizes.get(i));
} }
} }
j++;
} }
j++; i++;
} }
i++;
return q; return q;
} }
/** /**

57
src/main/java/ru/egspt/ReportTableModel.java

@ -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

8
src/main/java/ru/egspt/TagControls.java

@ -8,14 +8,16 @@ public class TagControls {
//обновляем текстовую область //обновляем текстовую область
app.getTagPane().updateTagArea(app.getTagModel()); app.getTagPane().updateTagArea(app.getTagModel());
app.getTagPane().getCurrentTagField().setText(""); app.getTagPane().getCurrentTagField().setText("");
//Подготавливаем данные для отчета (по тегам) //Подготавливаем данные для отчета (перебор данных по тегам)
Data report = new Data(); Data report = new Data();
report.setUsers(app.getData().getUsersByTag(app.getData().getUsers(), app.getTagModel())); report.setUsers(app.getData().getUsersByTag(app.getData().getUsers(), app.getTagModel()));
report.setResults(app.getData().getResultsByUsers(app.getData().getResults(), report.getUsers())); report.setResults(app.getData().getResultsByUsers(app.getData().getResults(), report.getUsers()));
report.setQuizes(app.getData().getQuizesByResults(app.getData().getQuizes(), report.getResults())); report.setQuizes(app.getData().getQuizesByResults(app.getData().getQuizes(), report.getResults()));
//report.setHeaders(); //формирование заголовков таблицы отчета
app.getReportPane().getReportTableModel().setHeader(app.getReportPane().getReportTableModel().getHeaderByQuize(report));
//выводим пользователей в отчет //выводим пользователей в отчет
app.getReportPane().setReportData(report); app.getReportPane().getReportTableModel().setData(report);
//app.getReportPane().setupReportTablePane(app);
app.getReportPane().getReportTableModel().fireTableDataChanged(); app.getReportPane().getReportTableModel().fireTableDataChanged();
} }
//удаляем тег из модели //удаляем тег из модели

BIN
target/classes/ru/egspt/Data.class

Binary file not shown.

BIN
target/classes/ru/egspt/ReportPane.class

Binary file not shown.

BIN
target/classes/ru/egspt/ReportTableModel.class

Binary file not shown.

BIN
target/classes/ru/egspt/TagControls.class

Binary file not shown.
Loading…
Cancel
Save