001// License: GPL. For details, see LICENSE file. 002package org.openstreetmap.josm.gui.history; 003 004import java.util.ArrayList; 005import java.util.List; 006 007import javax.swing.table.AbstractTableModel; 008 009import org.openstreetmap.josm.gui.history.TwoColumnDiff.Item.DiffItemType; 010 011/** 012 * Simple model storing "diff cells" in a list. Could probably have 013 * used a {@link javax.swing.table.DefaultTableModel} instead. 014 */ 015class DiffTableModel extends AbstractTableModel { 016 private List<TwoColumnDiff.Item> rows; 017 018 public void setRows(List<TwoColumnDiff.Item> rows) { 019 this.rows = rows; 020 } 021 022 public DiffTableModel(List<TwoColumnDiff.Item> rows) { 023 this.rows = rows; 024 } 025 public DiffTableModel() { 026 this.rows = new ArrayList<TwoColumnDiff.Item>(); 027 } 028 @Override 029 public int getRowCount() { 030 return rows.size(); 031 } 032 033 @Override 034 public int getColumnCount() { 035 return 1; 036 } 037 038 @Override 039 public TwoColumnDiff.Item getValueAt(int rowIndex, int columnIndex) { 040 return rows.get(rowIndex); 041 } 042 043 public int getFirstChange() { 044 for (int i=0; i<rows.size(); i++) { 045 if (rows.get(i).state != DiffItemType.SAME) 046 return i; 047 } 048 return -1; 049 } 050}