source: josm/trunk/src/org/openstreetmap/josm/gui/datatransfer/ChangesetTransferable.java@ 17379

Last change on this file since 17379 was 16433, checked in by simon04, 4 years ago

fix #18107 - ChangesetCacheManager: copy a list of changesets to clipboard

File size: 1.4 KB
Line 
1// License: GPL. For details, see LICENSE file.
2package org.openstreetmap.josm.gui.datatransfer;
3
4import java.awt.datatransfer.DataFlavor;
5import java.awt.datatransfer.Transferable;
6import java.awt.datatransfer.UnsupportedFlavorException;
7import java.io.IOException;
8import java.util.List;
9import java.util.stream.Collectors;
10import java.util.stream.Stream;
11
12import org.openstreetmap.josm.data.osm.Changeset;
13
14/**
15 * This class allows to transfer a list of {@link Changeset}s
16 */
17public class ChangesetTransferable implements Transferable {
18 private final List<Changeset> changesets;
19
20 /**
21 * Constructs a new transferable
22 * @param changesets the list of changesets
23 */
24 public ChangesetTransferable(List<Changeset> changesets) {
25 this.changesets = changesets;
26 }
27
28 @Override
29 public DataFlavor[] getTransferDataFlavors() {
30 return new DataFlavor[]{DataFlavor.stringFlavor};
31 }
32
33 @Override
34 public boolean isDataFlavorSupported(DataFlavor flavor) {
35 return Stream.of(getTransferDataFlavors()).anyMatch(f -> f.equals(flavor));
36 }
37
38 @Override
39 public Object getTransferData(DataFlavor flavor) throws UnsupportedFlavorException, IOException {
40 if (DataFlavor.stringFlavor.equals(flavor)) {
41 return changesets.stream().map(Changeset::toString).collect(Collectors.joining("\n"));
42 } else {
43 throw new UnsupportedFlavorException(flavor);
44 }
45 }
46}
Note: See TracBrowser for help on using the repository browser.