/* * 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 nl.fontys.sofa.limo.view.custom.table; import java.util.ArrayList; import java.util.List; import javax.swing.table.AbstractTableModel; import nl.fontys.sofa.limo.domain.component.procedure.Procedure; import nl.fontys.sofa.limo.domain.component.procedure.TimeType; import nl.fontys.sofa.limo.domain.component.procedure.value.Value; import nl.fontys.sofa.limo.view.util.LIMOResourceBundle; /** * * @author nilsh */ public class ProcedureTableModel extends AbstractTableModel { private List<Procedure> procedures; /** * Create a new empty table model. */ public ProcedureTableModel() { this(new ArrayList<>()); } /** * Create a table model based on already existing events. * * @param events to be set. */ public ProcedureTableModel(List<Procedure> procedures) { this.procedures = procedures; } public List<Procedure> getProcedures() { if (this.procedures == null) { this.procedures = new ArrayList<>(); } return this.procedures; } public void setProcedures(List<Procedure> procedures) { this.procedures = procedures; this.fireTableDataChanged(); } public void removeProcedue(int pos) { procedures.remove(pos); fireTableRowsDeleted(pos, pos); } @Override public int getRowCount() { return this.procedures.size(); } // model = new DragNDropTableModel(, // valueList, new Class[]{String.class, String.class, Value.class, TimeType.class, Value.class, Value. @Override public int getColumnCount() { return 6; } @Override public boolean isCellEditable(int rowIndex, int columnIndex) { return true; } private static final Class[] COLUMNCLASS = new Class[]{String.class, String.class, Value.class, TimeType.class, Value.class, Value.class}; private static final String[] COLUMNNAMES = new String[]{ LIMOResourceBundle.getString("PROCEDURE"), LIMOResourceBundle.getString("CATEGORY"), LIMOResourceBundle.getString("TIME_COST"), LIMOResourceBundle.getString("TIME_TYPE"), LIMOResourceBundle.getString("MONEY_COST"), LIMOResourceBundle.getString("CO2") }; @Override public Class<?> getColumnClass(int columnIndex) { return COLUMNCLASS[columnIndex]; } @Override public String getColumnName(int column) { return COLUMNNAMES[column]; } @Override public Object getValueAt(int rowIndex, int columnIndex) { Procedure p = this.procedures.get(rowIndex); switch (columnIndex) { case 0: return p.getName(); case 1: return p.getCategory(); case 2: return p.getTime(); case 3: return p.getTimeType(); case 4: return p.getCost(); case 5: return p.getCotwo(); } return null; } @Override public void setValueAt(Object aValue, int rowIndex, int columnIndex) { Procedure p = this.procedures.get(rowIndex); switch (columnIndex) { case 0: { p.setName((String) aValue); return; } case 1: { p.setCategory((String) aValue); return; } case 2: { p.setTime((Value) aValue); return; } case 3: { p.setTimeType((TimeType) aValue); return; } case 4: { p.setCost((Value) aValue); return; } case 5: { p.setCotwo((Value) aValue); return; } } } }