Ignore:
Timestamp:
2016-07-25T20:56:38+02:00 (8 years ago)
Author:
Don-vip
Message:

fix #13050 - cannot copy from the object history view (patch by michael2402, modified) - gsoc-core

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/gui/history/TagInfoViewer.java

    r7801 r10637  
    11// License: GPL. For details, see LICENSE file.
    22package org.openstreetmap.josm.gui.history;
     3
     4import java.awt.event.FocusEvent;
     5import java.awt.event.FocusListener;
    36
    47import javax.swing.JTable;
     
    1619 */
    1720public class TagInfoViewer extends HistoryViewerPanel {
     21    private static final class RepaintOnFocusChange implements FocusListener {
     22        @Override
     23        public void focusLost(FocusEvent e) {
     24            repaintSelected(e);
     25        }
     26
     27        @Override
     28        public void focusGained(FocusEvent e) {
     29            repaintSelected(e);
     30        }
     31
     32        private static void repaintSelected(FocusEvent e) {
     33            // we would only need the selected rows, but this is easier:
     34            e.getComponent().repaint();
     35        }
     36    }
     37
     38    /**
     39     * Constructs a new {@code TagInfoViewer}.
     40     * @param model The history browsing model
     41     */
     42    public TagInfoViewer(HistoryBrowserModel model) {
     43        super(model);
     44    }
    1845
    1946    @Override
     
    2451        );
    2552        table.setName("table.referencetagtable");
    26         table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
    27         selectionSynchronizer.participateInSynchronizedSelection(table.getSelectionModel());
     53        setUpDataTransfer(table);
    2854        return table;
    2955    }
     
    3662        );
    3763        table.setName("table.currenttagtable");
    38         table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
    39         selectionSynchronizer.participateInSynchronizedSelection(table.getSelectionModel());
     64        setUpDataTransfer(table);
    4065        return table;
    4166    }
    4267
    43     /**
    44      * Constructs a new {@code TagInfoViewer}.
    45      * @param model The history browsing model
    46      */
    47     public TagInfoViewer(HistoryBrowserModel model) {
    48         super(model);
     68    private void setUpDataTransfer(JTable table) {
     69        table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
     70        selectionSynchronizer.participateInSynchronizedSelection(table.getSelectionModel());
     71        table.setTransferHandler(new TagInfoTransferHandler());
     72        table.addFocusListener(new RepaintOnFocusChange());
    4973    }
    5074}
Note: See TracChangeset for help on using the changeset viewer.