source: josm/trunk/src/org/openstreetmap/josm/gui/history/VersionTableModel.java@ 13924

Last change on this file since 13924 was 12620, checked in by Don-vip, 7 years ago

see #15182 - deprecate all Main logging methods and introduce suitable replacements in Logging for most of them

  • Property svn:eol-style set to native
File size: 3.3 KB
Line 
1// License: GPL. For details, see LICENSE file.
2package org.openstreetmap.josm.gui.history;
3
4import java.text.DateFormat;
5
6import javax.swing.table.AbstractTableModel;
7
8import org.openstreetmap.josm.data.osm.Changeset;
9import org.openstreetmap.josm.data.osm.User;
10import org.openstreetmap.josm.data.osm.history.HistoryOsmPrimitive;
11import org.openstreetmap.josm.tools.Logging;
12import org.openstreetmap.josm.tools.date.DateUtils;
13
14/**
15 * The table model for the list of versions in the current history
16 * @since 11646 (extracted from HistoryBrowserModel)
17 */
18public final class VersionTableModel extends AbstractTableModel {
19
20 private final HistoryBrowserModel model;
21
22 /**
23 * Constructs a new {@code VersionTableModel}.
24 * @param model parent {@code HistoryBrowserModel}
25 */
26 public VersionTableModel(HistoryBrowserModel model) {
27 this.model = model;
28 }
29
30 @Override
31 public int getRowCount() {
32 if (model.getHistory() == null)
33 return 0;
34 int ret = model.getHistory().getNumVersions();
35 if (model.getLatest() != null) {
36 ret++;
37 }
38 return ret;
39 }
40
41 @Override
42 public Object getValueAt(int row, int column) {
43 switch (column) {
44 case VersionTableColumnModel.COL_VERSION:
45 HistoryOsmPrimitive p1 = model.getPrimitive(row);
46 if (p1 != null)
47 return Long.toString(p1.getVersion());
48 return null;
49 case VersionTableColumnModel.COL_REFERENCE:
50 return model.isReferencePointInTime(row);
51 case VersionTableColumnModel.COL_CURRENT:
52 return model.isCurrentPointInTime(row);
53 case VersionTableColumnModel.COL_DATE:
54 HistoryOsmPrimitive p3 = model.getPrimitive(row);
55 if (p3 != null && p3.getTimestamp() != null)
56 return DateUtils.formatDateTime(p3.getTimestamp(), DateFormat.SHORT, DateFormat.SHORT);
57 return null;
58 case VersionTableColumnModel.COL_USER:
59 HistoryOsmPrimitive p4 = model.getPrimitive(row);
60 if (p4 != null) {
61 User user = p4.getUser();
62 if (user != null)
63 return user.getName();
64 }
65 return null;
66 case VersionTableColumnModel.COL_EDITOR:
67 HistoryOsmPrimitive p5 = model.getPrimitive(row);
68 if (p5 != null) {
69 Changeset cs = p5.getChangeset();
70 if (cs != null) {
71 return cs.get("created_by");
72 }
73 }
74 return null;
75 default:
76 return null;
77 }
78 }
79
80 @Override
81 public void setValueAt(Object aValue, int row, int column) {
82 if (!((Boolean) aValue))
83 return;
84 try {
85 switch (column) {
86 case 1:
87 model.setReferencePointInTime(row);
88 break;
89 case 2:
90 model.setCurrentPointInTime(row);
91 break;
92 default:
93 return;
94 }
95 } catch (IllegalArgumentException e) {
96 Logging.error(e);
97 }
98 fireTableDataChanged();
99 }
100
101 @Override
102 public boolean isCellEditable(int row, int column) {
103 return column >= 1 && column <= 2;
104 }
105
106 @Override
107 public int getColumnCount() {
108 return 6;
109 }
110}
Note: See TracBrowser for help on using the repository browser.