public boolean znajdzObecnosc(List<Obecnosc> obecnosci, String data, Student s) { for (Obecnosc o : obecnosci) { if (o.getData().equals(data) && o.getStudent().getId() == s.getId()) { return o.getObecnosc(); } } return false; }
private void setTable(Termin term) { termin = term; idTerminu = term.getId(); students = Student.getByGroup(term.getGrupa().getId()); DateFormat format = new SimpleDateFormat("dd.MM.yy"); Calendar cal = Calendar.getInstance(); String today = format.format(cal.getTime()); // dzisiejsza data // sprawdz czy juz są daty dzisiejsze w bazie if (isDatesOnDatabase(today, term) == false) { for (Student s : students) { Obecnosc.addObecnosc(term, s, today, false); } } // tu tworzenie modelu DefaultTableModel model = new DefaultTableModel() { @Override public Class<?> getColumnClass(int columnIndex) { if (columnIndex != 0) { return Boolean.class; } return super.getColumnClass(columnIndex); } }; // to sie robi zeby byly checkboxy while (model.getRowCount() > 0) { model.removeRow(0); } model.addColumn("Student"); List<Obecnosc> obecnosci = Obecnosc.getObecnosci(term); dates = new ArrayList<String>(); String first_date = null; if (!obecnosci.isEmpty()) { first_date = obecnosci.get(0).getData(); dates.add(first_date); } for (Obecnosc o : obecnosci) { if (!o.getData().equals(first_date)) { first_date = o.getData(); dates.add(first_date); } } sort(dates); // w dates mamy kolejne daty dla terminu, czyli kolejne kolumny for (String d : dates) { model.addColumn(d); } jScrollPane1.setViewportView(presenceTable); // teraz uzupełnianie tabeli for (Student s : students) { Object[] values = new Object[dates.size() + 1]; values[0] = s.getImie() + " " + s.getNazwisko(); for (int i = 1; i < dates.size() + 1; i++) { values[i] = znajdzObecnosc(obecnosci, dates.get(i - 1), s); } model.addRow(values); } presenceTable.setModel(model); }