Model.ModeloTabelaPerdas.java Source code

Java tutorial

Introduction

Here is the source code for Model.ModeloTabelaPerdas.java

Source

/*
 * 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();
    }

}