// License: GPL. For details, see LICENSE file. package org.openstreetmap.josm.gui.history; import java.util.ArrayList; import java.util.List; import javax.swing.table.AbstractTableModel; import org.openstreetmap.josm.gui.history.TwoColumnDiff.Item.DiffItemType; /** * Simple model storing "diff cells" in a list. Could probably have * used a {@link javax.swing.table.DefaultTableModel} instead. */ class DiffTableModel extends AbstractTableModel { private transient List<TwoColumnDiff.Item> rows = new ArrayList<>(); private boolean reversed; public void setRows(List<TwoColumnDiff.Item> rows, boolean reversed) { this.rows = rows; this.reversed = reversed; fireTableDataChanged(); } @Override public int getRowCount() { return rows.size(); } @Override public int getColumnCount() { return 1; } public boolean isReversed() { return reversed; } @Override public TwoColumnDiff.Item getValueAt(int rowIndex, int columnIndex) { return rows.get(rowIndex); } public int getFirstChange() { for (int i = 0; i < rows.size(); i++) { if (rows.get(i).state != DiffItemType.SAME) return i; } return -1; } }