diff --git a/src/org/openstreetmap/josm/gui/history/HistoryBrowser.java b/src/org/openstreetmap/josm/gui/history/HistoryBrowser.java
index 6f7a972..ffa8d5b 100644
|
a
|
b
|
public class HistoryBrowser extends JPanel {
|
| 29 | 29 | private RelationMemberListViewer relationMemberListViewer; |
| 30 | 30 | private CoordinateInfoViewer coordinateInfoViewer; |
| 31 | 31 | private JTabbedPane tpViewers; |
| | 32 | private VersionTable versionTable; |
| 32 | 33 | |
| 33 | 34 | /** |
| 34 | 35 | * embedds table in a {@see JScrollPane} |
| … |
… |
public class HistoryBrowser extends JPanel {
|
| 52 | 53 | JPanel pnl = new JPanel(); |
| 53 | 54 | pnl.setLayout(new BorderLayout()); |
| 54 | 55 | |
| 55 | | VersionTable tbl = new VersionTable(model); |
| 56 | | pnl.add(embeddInScrollPane(tbl), BorderLayout.CENTER); |
| | 56 | versionTable = new VersionTable(model); |
| | 57 | pnl.add(embeddInScrollPane(versionTable), BorderLayout.CENTER); |
| 57 | 58 | return pnl; |
| 58 | 59 | } |
| 59 | 60 | |
| … |
… |
public class HistoryBrowser extends JPanel {
|
| 125 | 126 | */ |
| 126 | 127 | public void populate(History history) { |
| 127 | 128 | model.setHistory(history); |
| | 129 | versionTable.updateSelection(); |
| 128 | 130 | |
| 129 | 131 | tpViewers.removeAll(); |
| 130 | 132 | |
diff --git a/src/org/openstreetmap/josm/gui/history/HistoryBrowserModel.java b/src/org/openstreetmap/josm/gui/history/HistoryBrowserModel.java
index 4614c68..335f000 100644
|
a
|
b
|
public class HistoryBrowserModel extends Observable implements LayerChangeListen
|
| 173 | 173 | public void setHistory(History history) { |
| 174 | 174 | this.history = history; |
| 175 | 175 | if (history.getNumVersions() > 0) { |
| 176 | | current = history.getEarliest(); |
| 177 | | reference = history.getEarliest(); |
| 178 | | setLatest(null); |
| | 176 | HistoryOsmPrimitive newLatest = null; |
| 179 | 177 | if (getEditLayer() != null) { |
| 180 | 178 | OsmPrimitive p = getEditLayer().data.getPrimitiveById(history.getId(), history.getType()); |
| 181 | 179 | if (canShowAsLatest(p)) { |
| 182 | | HistoryOsmPrimitive latest = new HistoryPrimitiveBuilder().build(p); |
| 183 | | setLatest(latest); |
| | 180 | newLatest = new HistoryPrimitiveBuilder().build(p); |
| 184 | 181 | } |
| 185 | 182 | } |
| | 183 | if (newLatest == null) { |
| | 184 | current = history.getLatest(); |
| | 185 | int prevIndex = history.getNumVersions() - 2; |
| | 186 | reference = prevIndex < 0 ? history.getEarliest() : history.get(prevIndex); |
| | 187 | } else { |
| | 188 | reference = history.getLatest(); |
| | 189 | current = newLatest; |
| | 190 | } |
| | 191 | setLatest(newLatest); |
| 186 | 192 | } |
| 187 | 193 | initTagTableModels(); |
| 188 | 194 | fireModelChange(); |
diff --git a/src/org/openstreetmap/josm/gui/history/VersionTable.java b/src/org/openstreetmap/josm/gui/history/VersionTable.java
index 603f26a..41bc66f 100644
|
a
|
b
|
public class VersionTable extends JTable implements Observer{
|
| 94 | 94 | } |
| 95 | 95 | } |
| 96 | 96 | |
| | 97 | public void updateSelection() { |
| | 98 | final int row = getVersionTableModel().getRowCount() - 1; |
| | 99 | setRowSelectionInterval(row, row); |
| | 100 | } |
| | 101 | |
| 97 | 102 | class PopupMenuTrigger extends MouseAdapter { |
| 98 | 103 | @Override |
| 99 | 104 | public void mousePressed(MouseEvent e) { |