source: josm/trunk/src/org/openstreetmap/josm/gui/history/DiffTableModel.java@ 8254

Last change on this file since 8254 was 8219, checked in by simon04, 9 years ago

fix #6994 - History dialog: handle reversed ways better

This is achieved by comparing the reference elements in reversed order and
testing whether this diff requires less deletions+inserts

  • Property svn:eol-style set to native
File size: 1.3 KB
Line 
1// License: GPL. For details, see LICENSE file.
2package org.openstreetmap.josm.gui.history;
3
4import static org.openstreetmap.josm.tools.I18n.tr;
5
6import java.util.ArrayList;
7import java.util.List;
8
9import javax.swing.table.AbstractTableModel;
10
11import org.openstreetmap.josm.gui.history.TwoColumnDiff.Item.DiffItemType;
12
13/**
14 * Simple model storing "diff cells" in a list. Could probably have
15 * used a {@link javax.swing.table.DefaultTableModel} instead.
16 */
17class DiffTableModel extends AbstractTableModel {
18 private List<TwoColumnDiff.Item> rows = new ArrayList<>();
19 private boolean reversed = false;
20
21 public void setRows(List<TwoColumnDiff.Item> rows, boolean reversed) {
22 this.rows = rows;
23 this.reversed = reversed;
24 fireTableDataChanged();
25 }
26 @Override
27 public int getRowCount() {
28 return rows.size();
29 }
30
31 @Override
32 public int getColumnCount() {
33 return 1;
34 }
35
36 public boolean isReversed() {
37 return reversed;
38 }
39
40 @Override
41 public TwoColumnDiff.Item getValueAt(int rowIndex, int columnIndex) {
42 return rows.get(rowIndex);
43 }
44
45 public int getFirstChange() {
46 for (int i=0; i<rows.size(); i++) {
47 if (rows.get(i).state != DiffItemType.SAME)
48 return i;
49 }
50 return -1;
51 }
52}
Note: See TracBrowser for help on using the repository browser.