Changeset 2044 in josm for trunk/src/org/openstreetmap/josm/gui/history/VersionTable.java
- Timestamp:
- 2009-09-03T21:54:04+02:00 (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/org/openstreetmap/josm/gui/history/VersionTable.java
r2019 r2044 2 2 package org.openstreetmap.josm.gui.history; 3 3 4 import static org.openstreetmap.josm.tools.I18n.tr; 5 6 import java.awt.event.ActionEvent; 4 7 import java.awt.event.MouseAdapter; 5 8 import java.awt.event.MouseEvent; … … 9 12 10 13 import javax.swing.DefaultListSelectionModel; 14 import javax.swing.JPopupMenu; 11 15 import javax.swing.JTable; 12 16 import javax.swing.ListSelectionModel; 13 17 import javax.swing.event.ListSelectionEvent; 14 18 import javax.swing.event.ListSelectionListener; 19 20 import org.openstreetmap.josm.actions.AbstractInfoAction; 21 import org.openstreetmap.josm.data.osm.history.HistoryOsmPrimitive; 22 import org.openstreetmap.josm.tools.ImageProvider; 15 23 16 24 /** … … 22 30 23 31 private static Logger logger = Logger.getLogger(VersionTable.class.getName()); 32 private VersionTablePopupMenu popupMenu; 24 33 25 34 protected void build() { … … 27 36 addMouseListener(new MouseHandler()); 28 37 getSelectionModel().addListSelectionListener(new SelectionHandler()); 38 popupMenu = new VersionTablePopupMenu(); 39 addMouseListener(new PopupMenuTrigger()); 29 40 } 30 41 … … 36 47 37 48 protected void handleSelectReferencePointInTime(int row) { 38 getVe sionTableModel().setReferencePointInTime(row);49 getVersionTableModel().setReferencePointInTime(row); 39 50 } 40 51 41 52 protected void handleSelectCurrentPointInTime(int row) { 42 getVe sionTableModel().setCurrentPointInTime(row);53 getVersionTableModel().setCurrentPointInTime(row); 43 54 } 44 55 45 protected HistoryBrowserModel.VersionTableModel getVe sionTableModel() {56 protected HistoryBrowserModel.VersionTableModel getVersionTableModel() { 46 57 return (HistoryBrowserModel.VersionTableModel) getModel(); 47 58 } … … 73 84 repaint(); 74 85 } 86 87 protected void showPopupMenu(MouseEvent evt) { 88 HistoryBrowserModel.VersionTableModel model = getVersionTableModel(); 89 int row = getSelectedRow(); 90 if (row == -1) { 91 row = rowAtPoint(evt.getPoint()); 92 } 93 HistoryOsmPrimitive primitive = model.getPrimitive(row); 94 popupMenu.prepare(primitive); 95 popupMenu.show(evt.getComponent(), evt.getX(), evt.getY()); 96 } 97 98 class PopupMenuTrigger extends MouseAdapter { 99 @Override 100 public void mousePressed(MouseEvent e) { 101 showPopup(e); 102 } 103 @Override 104 public void mouseReleased(MouseEvent e) { 105 showPopup(e); 106 } 107 private void showPopup(MouseEvent e) { 108 if (e.isPopupTrigger()) { 109 showPopupMenu(e); 110 } 111 } 112 } 113 114 class ChangesetInfoAction extends AbstractInfoAction { 115 private HistoryOsmPrimitive primitive; 116 117 public ChangesetInfoAction() { 118 putValue(NAME, tr("Changeset info")); 119 putValue(SHORT_DESCRIPTION, tr("Launch browser with information about the changeset")); 120 putValue(SMALL_ICON, ImageProvider.get("about")); 121 } 122 123 @Override 124 protected String createInfoUrl(Object infoObject) { 125 HistoryOsmPrimitive primitive = (HistoryOsmPrimitive) infoObject; 126 return getBaseBrowseUrl() + "/changeset/" + primitive.getChangesetId(); 127 } 128 129 @Override 130 public void actionPerformed(ActionEvent e) { 131 if (!isEnabled()) 132 return; 133 String url = createInfoUrl(primitive); 134 launchBrowser(url); 135 } 136 137 public void prepare(HistoryOsmPrimitive primitive) { 138 putValue(NAME, tr("Show changeset {0}", primitive.getChangesetId())); 139 this.primitive = primitive; 140 } 141 } 142 143 class VersionTablePopupMenu extends JPopupMenu { 144 145 private ChangesetInfoAction changesetInfoAction; 146 147 protected void build() { 148 changesetInfoAction = new ChangesetInfoAction(); 149 add(changesetInfoAction); 150 } 151 public VersionTablePopupMenu() { 152 super(); 153 build(); 154 } 155 156 public void prepare(HistoryOsmPrimitive primitive) { 157 changesetInfoAction.prepare(primitive); 158 invalidate(); 159 } 160 } 75 161 }
Note:
See TracChangeset
for help on using the changeset viewer.