From c55ec8067c5fbfeb29f66c1cad0d7782e4ba0479 Mon Sep 17 00:00:00 2001
From: Gautier Pelloux-Prayer <gautier+git@damsy.net>
Date: Mon, 5 Feb 2018 22:04:54 +0100
Subject: [PATCH] Zoom on element when double-clicking on elements of upload
window
---
.../josm/gui/io/UploadedObjectsSummaryPanel.java | 21 +++++++++++++++++++++
1 file changed, 21 insertions(+)
diff --git a/src/org/openstreetmap/josm/gui/io/UploadedObjectsSummaryPanel.java b/src/org/openstreetmap/josm/gui/io/UploadedObjectsSummaryPanel.java
index 7b00d51..c467cb7 100644
a
|
b
|
package org.openstreetmap.josm.gui.io;
|
4 | 4 | import static org.openstreetmap.josm.tools.I18n.tr; |
5 | 5 | import static org.openstreetmap.josm.tools.I18n.trn; |
6 | 6 | |
| 7 | |
| 8 | import java.awt.event.MouseAdapter; |
| 9 | import java.awt.event.MouseEvent; |
7 | 10 | import java.awt.GridBagConstraints; |
8 | 11 | import java.awt.GridBagLayout; |
9 | 12 | import java.util.ArrayList; |
| 13 | import java.util.Collection; |
| 14 | import java.util.HashSet; |
10 | 15 | import java.util.List; |
11 | 16 | import java.util.Optional; |
12 | 17 | |
… |
… |
import javax.swing.JList;
|
16 | 21 | import javax.swing.JPanel; |
17 | 22 | import javax.swing.JScrollPane; |
18 | 23 | |
| 24 | import org.openstreetmap.josm.actions.AutoScaleAction; |
19 | 25 | import org.openstreetmap.josm.data.osm.OsmPrimitive; |
20 | 26 | import org.openstreetmap.josm.gui.OsmPrimitivRenderer; |
21 | 27 | |
… |
… |
public class UploadedObjectsSummaryPanel extends JPanel {
|
52 | 58 | protected void build() { |
53 | 59 | setLayout(new GridBagLayout()); |
54 | 60 | OsmPrimitivRenderer renderer = new OsmPrimitivRenderer(); |
| 61 | MouseAdapter mouseListener = new MouseAdapter() { |
| 62 | @Override |
| 63 | public void mouseClicked(MouseEvent evt) { |
| 64 | if (evt.getButton() == MouseEvent.BUTTON1 && evt.getClickCount() == 2) { |
| 65 | PrimitiveList list = (PrimitiveList)evt.getSource(); |
| 66 | int index = list.locationToIndex(evt.getPoint()); |
| 67 | Collection<OsmPrimitive> element = new HashSet<>(); |
| 68 | element.add(list.getModel().getElementAt(index)); |
| 69 | AutoScaleAction.zoomTo(element); |
| 70 | } |
| 71 | } |
| 72 | }; |
55 | 73 | // initialize the three lists for uploaded primitives, but don't add them to the dialog yet, see setUploadedPrimitives() |
56 | 74 | // |
57 | 75 | lstAdd = new PrimitiveList(); |
58 | 76 | lstAdd.setCellRenderer(renderer); |
| 77 | lstAdd.addMouseListener(mouseListener); |
59 | 78 | lstAdd.setVisibleRowCount(Math.min(lstAdd.getModel().getSize(), 10)); |
60 | 79 | spAdd = new JScrollPane(lstAdd); |
61 | 80 | lblAdd = new JLabel(tr("Objects to add:")); |
… |
… |
public class UploadedObjectsSummaryPanel extends JPanel {
|
63 | 82 | |
64 | 83 | lstUpdate = new PrimitiveList(); |
65 | 84 | lstUpdate.setCellRenderer(renderer); |
| 85 | lstUpdate.addMouseListener(mouseListener); |
66 | 86 | lstUpdate.setVisibleRowCount(Math.min(lstUpdate.getModel().getSize(), 10)); |
67 | 87 | spUpdate = new JScrollPane(lstUpdate); |
68 | 88 | lblUpdate = new JLabel(tr("Objects to modify:")); |
… |
… |
public class UploadedObjectsSummaryPanel extends JPanel {
|
70 | 90 | |
71 | 91 | lstDelete = new PrimitiveList(); |
72 | 92 | lstDelete.setCellRenderer(renderer); |
| 93 | lstDelete.addMouseListener(mouseListener); |
73 | 94 | lstDelete.setVisibleRowCount(Math.min(lstDelete.getModel().getSize(), 10)); |
74 | 95 | spDelete = new JScrollPane(lstDelete); |
75 | 96 | lblDelete = new JLabel(tr("Objects to delete:")); |