package husacct.analyse.presentation.usageview; import husacct.analyse.presentation.AnalyseUIController; import husacct.common.dto.DependencyDTO; import java.util.ArrayList; import java.util.List; import javax.swing.table.AbstractTableModel; class DependencyTableModel extends AbstractTableModel { private static final long serialVersionUID = 1L; private String[] columnNames; private String titleFrom, titleVia, titleTo, titleLine, titleType, titleIndirect; private List<DependencyDTO> data = new ArrayList<DependencyDTO>(); private AnalyseUIController uiController; public DependencyTableModel(List<DependencyDTO> data, AnalyseUIController uiController) { this.initiateTableModel(data, uiController); } private void initiateTableModel(List<DependencyDTO> data, AnalyseUIController uiController){//, boolean showIndirect) { this.data = data; this.uiController = uiController; titleFrom = uiController.translate("From"); titleVia = "Via"; titleTo = uiController.translate("To"); titleLine = uiController.translate("Linenumber"); titleType = uiController.translate("Type"); titleIndirect = uiController.translate("Direct"); columnNames = new String[]{titleFrom, titleTo, titleType, titleLine, titleIndirect}; } public void setModel(List<DependencyDTO> newData) { this.data = newData; } @Override public int getColumnCount() { return columnNames.length; } @Override public int getRowCount() { return data.size(); } @Override public Object getValueAt(int row, int field) { String column = getColumnName(field); if (column.equals(titleFrom)) { return data.get(row).from; } else if (column.equals(titleVia)) { return ""; } else if (column.equals(titleTo)) { return data.get(row).to; } else if (column.equals(titleLine)) { return new Integer(data.get(row).lineNumber); } else if (column.equals(titleType)) { return uiController.translate(data.get(row).type); } else if (column.equals(titleIndirect)) { if (data.get(row).isIndirect) { return uiController.translate("Indirect"); } else { return uiController.translate("Direct"); } } else { return null; } } @Override public String getColumnName(int columnIndex) { return columnNames[columnIndex]; } //JTable uses this method to determine the default renderer/editor for each cell. @SuppressWarnings("unchecked") @Override public Class getColumnClass(int c) { if (c == 3) { return new Integer(5).getClass(); } else { String s = ""; return s.getClass(); } } }