source: josm/trunk/src/org/openstreetmap/josm/gui/history/VersionTable.java@ 1750

Last change on this file since 1750 was 1709, checked in by Gubaer, 15 years ago

new: history feature implemented

File size: 2.4 KB
Line 
1// License: GPL. For details, see LICENSE file.
2package org.openstreetmap.josm.gui.history;
3
4import java.awt.event.MouseAdapter;
5import java.awt.event.MouseEvent;
6import java.util.Observable;
7import java.util.Observer;
8import java.util.logging.Logger;
9
10import javax.swing.DefaultListSelectionModel;
11import javax.swing.JTable;
12import javax.swing.ListSelectionModel;
13import javax.swing.event.ListSelectionEvent;
14import javax.swing.event.ListSelectionListener;
15
16/**
17 * VersionTable shows a list of version in a {@see History} of an {@see OsmPrimitive}.
18 *
19 *
20 */
21public class VersionTable extends JTable implements Observer{
22
23 private static Logger logger = Logger.getLogger(VersionTable.class.getName());
24
25 protected void build() {
26 setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
27 addMouseListener(new MouseHandler());
28 getSelectionModel().addListSelectionListener(new SelectionHandler());
29 }
30
31 public VersionTable(HistoryBrowserModel model) {
32 super(model.getVersionTableModel(), new VersionTableColumnModel());
33 model.addObserver(this);
34 build();
35 }
36
37 protected void handleSelectReferencePointInTime(int row) {
38 getVesionTableModel().setReferencePointInTime(row);
39 }
40
41 protected void handleSelectCurrentPointInTime(int row) {
42 getVesionTableModel().setCurrentPointInTime(row);
43 }
44
45 protected HistoryBrowserModel.VersionTableModel getVesionTableModel() {
46 return (HistoryBrowserModel.VersionTableModel) getModel();
47 }
48
49 class MouseHandler extends MouseAdapter {
50 protected void handleDoubleClick(MouseEvent e) {
51 int row = rowAtPoint(e.getPoint());
52 handleSelectReferencePointInTime(row);
53 }
54
55 @Override
56 public void mouseClicked(MouseEvent e) {
57 switch(e.getClickCount()) {
58 case 2: handleDoubleClick(e); break;
59 }
60 }
61 }
62
63 class SelectionHandler implements ListSelectionListener {
64 public void valueChanged(ListSelectionEvent e) {
65 DefaultListSelectionModel model = (DefaultListSelectionModel)e.getSource();
66 if (model.getMinSelectionIndex() >= 0) {
67 handleSelectCurrentPointInTime(model.getMinSelectionIndex());
68 }
69 }
70 }
71
72 public void update(Observable o, Object arg) {
73 repaint();
74 }
75}
Note: See TracBrowser for help on using the repository browser.