source: josm/trunk/src/org/openstreetmap/josm/gui/history/TagInfoTransferHandler.java@ 13853

Last change on this file since 13853 was 11647, checked in by Don-vip, 7 years ago

see #14175 - refactor HistoryBrowserModel

  • Property svn:eol-style set to native
File size: 1.5 KB
Line 
1// License: GPL. For details, see LICENSE file.
2package org.openstreetmap.josm.gui.history;
3
4import java.awt.datatransfer.Clipboard;
5
6import javax.swing.JComponent;
7import javax.swing.JTable;
8import javax.swing.TransferHandler;
9import javax.swing.table.TableModel;
10
11import org.openstreetmap.josm.data.osm.TagMap;
12import org.openstreetmap.josm.gui.datatransfer.ClipboardUtils;
13import org.openstreetmap.josm.gui.datatransfer.TagTransferable;
14import org.openstreetmap.josm.gui.datatransfer.data.TagTransferData;
15
16/**
17 * This transfer handler allows to select and copy tags from a table with the {@link TagTableColumnModel}.
18 * @author Michael Zangl
19 * @since 10637
20 */
21public class TagInfoTransferHandler extends TransferHandler {
22
23 @Override
24 public void exportToClipboard(JComponent comp, Clipboard clip, int action) {
25 if (comp instanceof JTable) {
26 TableModel model = ((JTable) comp).getModel();
27 if (model instanceof TagTableModel) {
28 exportFromModel((JTable) comp, (TagTableModel) model);
29 }
30 }
31 }
32
33 private static void exportFromModel(JTable comp, TagTableModel model) {
34 int[] selected = comp.getSelectedRows();
35 TagMap tags = new TagMap();
36 for (int row : selected) {
37 String key = model.getKeyAt(row);
38 String value = model.getValue(key);
39 if (value != null) {
40 tags.put(key, value);
41 }
42 }
43 TagTransferData data = new TagTransferData(tags);
44 ClipboardUtils.copy(new TagTransferable(data));
45 }
46}
Note: See TracBrowser for help on using the repository browser.