Java tutorial
/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package Model; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.LinkedList; import javax.swing.table.AbstractTableModel; import org.joda.time.Interval; /** * * @author Joo */ public class ModeloTabelaPerdas extends AbstractTableModel { private LinkedList<Perda> perdas; private DateFormat df = new SimpleDateFormat("dd-MM-yyyy"); public ModeloTabelaPerdas(LinkedList<Perda> perdas) { this.perdas = new LinkedList<>(perdas); } @Override public int getRowCount() { return perdas.size(); } @Override public int getColumnCount() { return 4; } @Override public String getColumnName(int columnIndex) { switch (columnIndex) { case 0: return "Tipo de Flor"; case 1: // TODO: rever como fazer o header dde cada coluna... // String numero1 = String.valueOf(perda.getSemanas().get(0).getNumero()); // Interval intervalo1 = perda.getSemanas().get(0).getIntervalo(); // // return "<html>Semana " + numero1 + "<br/>" // + intervalo1.getStart() + "-" + intervalo1.getEnd() + "</html>"; case 2: return "Quantidade"; case 3: return "Data"; case 4: return "Quantidade"; case 5: return "Data"; case 6: return "Quantidade"; case 7: return "Data"; case 8: return "Quantidade"; case 9: return "Data"; case 10: return "Quantidade"; case 11: return "Data"; case 12: return "Quantidade"; default: return ""; } } @Override public Object getValueAt(int rowIndex, int columnIndex) { Perda perda = perdas.get(rowIndex); switch (columnIndex) { case 0: return perda.getTipoDeFlor(); case 1: String numero1 = String.valueOf(perda.getSemanas().get(0).getNumero()); Interval intervalo1 = perda.getSemanas().get(0).getIntervalo(); return "<html>Semana " + numero1 + "<br/>" + intervalo1.getStart() + "-" + intervalo1.getEnd() + "</html>"; case 2: return ""; case 3: String numero2 = String.valueOf(perda.getSemanas().get(0).getNumero()); Interval intervalo2 = perda.getSemanas().get(0).getIntervalo(); return "<html>Semana " + numero2 + "<br/>" + intervalo2.getStart() + "-" + intervalo2.getEnd() + "</html>"; case 4: return ""; case 5: String numero3 = String.valueOf(perda.getSemanas().get(0).getNumero()); Interval intervalo3 = perda.getSemanas().get(0).getIntervalo(); return "<html>Semana " + numero3 + "<br/>" + intervalo3.getStart() + "-" + intervalo3.getEnd() + "</html>"; case 6: return ""; case 7: String numero4 = String.valueOf(perda.getSemanas().get(0).getNumero()); Interval intervalo4 = perda.getSemanas().get(0).getIntervalo(); return "<html>Semana " + numero4 + "<br/>" + intervalo4.getStart() + "-" + intervalo4.getEnd() + "</html>"; case 8: return ""; case 9: String numero5 = String.valueOf(perda.getSemanas().get(0).getNumero()); Interval intervalo5 = perda.getSemanas().get(0).getIntervalo(); return "<html>Semana " + numero5 + "<br/>" + intervalo5.getStart() + "-" + intervalo5.getEnd() + "</html>"; case 10: return ""; case 11: String numero6 = String.valueOf(perda.getSemanas().get(0).getNumero()); Interval intervalo6 = perda.getSemanas().get(0).getIntervalo(); return "<html>Semana " + numero6 + "<br/>" + intervalo6.getStart() + "-" + intervalo6.getEnd() + "</html>"; case 12: return ""; default: return null; } } @Override public Class<?> getColumnClass(int columnIndex) { if (columnIndex == 0) { return String.class; } else { return columnIndex % 2 != 0 ? Integer.class : String.class; } } @Override public boolean isCellEditable(int rowIndex, int columnIndex) { return true; } @Override public void setValueAt(Object aValue, int rowIndex, int columnIndex) { super.setValueAt(aValue, rowIndex, columnIndex); } public void replace(LinkedList<Perda> atividades) { this.perdas.clear(); this.perdas.addAll(atividades); fireTableDataChanged(); } }