Ticket #15883: 0001-Zoom-on-element-when-double-clicking-on-elements-of-.patch

File 0001-Zoom-on-element-when-double-clicking-on-elements-of-.patch, 3.4 KB (added by bagage, 6 years ago)

patch proposal

  • src/org/openstreetmap/josm/gui/io/UploadedObjectsSummaryPanel.java

    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;  
    44import static org.openstreetmap.josm.tools.I18n.tr;
    55import static org.openstreetmap.josm.tools.I18n.trn;
    66
     7
     8import java.awt.event.MouseAdapter;
     9import java.awt.event.MouseEvent;
    710import java.awt.GridBagConstraints;
    811import java.awt.GridBagLayout;
    912import java.util.ArrayList;
     13import java.util.Collection;
     14import java.util.HashSet;
    1015import java.util.List;
    1116import java.util.Optional;
    1217
    import javax.swing.JList;  
    1621import javax.swing.JPanel;
    1722import javax.swing.JScrollPane;
    1823
     24import org.openstreetmap.josm.actions.AutoScaleAction;
    1925import org.openstreetmap.josm.data.osm.OsmPrimitive;
    2026import org.openstreetmap.josm.gui.OsmPrimitivRenderer;
    2127
    public class UploadedObjectsSummaryPanel extends JPanel {  
    5258    protected void build() {
    5359        setLayout(new GridBagLayout());
    5460        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        };
    5573        // initialize the three lists for uploaded primitives, but don't add them to the dialog yet, see setUploadedPrimitives()
    5674        //
    5775        lstAdd = new PrimitiveList();
    5876        lstAdd.setCellRenderer(renderer);
     77        lstAdd.addMouseListener(mouseListener);
    5978        lstAdd.setVisibleRowCount(Math.min(lstAdd.getModel().getSize(), 10));
    6079        spAdd = new JScrollPane(lstAdd);
    6180        lblAdd = new JLabel(tr("Objects to add:"));
    public class UploadedObjectsSummaryPanel extends JPanel {  
    6382
    6483        lstUpdate = new PrimitiveList();
    6584        lstUpdate.setCellRenderer(renderer);
     85        lstUpdate.addMouseListener(mouseListener);
    6686        lstUpdate.setVisibleRowCount(Math.min(lstUpdate.getModel().getSize(), 10));
    6787        spUpdate = new JScrollPane(lstUpdate);
    6888        lblUpdate = new JLabel(tr("Objects to modify:"));
    public class UploadedObjectsSummaryPanel extends JPanel {  
    7090
    7191        lstDelete = new PrimitiveList();
    7292        lstDelete.setCellRenderer(renderer);
     93        lstDelete.addMouseListener(mouseListener);
    7394        lstDelete.setVisibleRowCount(Math.min(lstDelete.getModel().getSize(), 10));
    7495        spDelete = new JScrollPane(lstDelete);
    7596        lblDelete = new JLabel(tr("Objects to delete:"));