// License: GPL. For details, see LICENSE file. package org.openstreetmap.josm.gui.datatransfer.data; import java.awt.datatransfer.DataFlavor; import java.util.Arrays; import java.util.Collections; import java.util.List; import org.openstreetmap.josm.gui.datatransfer.ClipboardUtils; import org.openstreetmap.josm.gui.datatransfer.LayerTransferable; import org.openstreetmap.josm.gui.layer.Layer; import org.openstreetmap.josm.gui.layer.LayerManager; /** * This transferable implements a layer transfer. * @author Michael Zangl * @since 10605 */ public class LayerTransferData extends LayerTransferable.Data { /** * This is a data flavor for all layer types */ public static final DataFlavor FLAVOR = ClipboardUtils.newDataFlavor(LayerTransferData.class, "Layer"); /** * The flavors that are supported by this data type. */ private static final List<DataFlavor> FLAVORS = Arrays.asList(LayerTransferData.FLAVOR, LayerTransferable.LAYER_DATA); private final Layer layer; /** * Create a new transfer data for the given layer * @param layerManager The layer manager that the layer is moved in. May be <code>null</code> * @param layer The layer */ public LayerTransferData(LayerManager layerManager, Layer layer) { super(layerManager, Collections.singletonList(layer)); this.layer = layer; } /** * Gets the layer to be transfered. * @return The layer */ public Layer getLayer() { return layer; } /** * Gets a list of flavors supported by this data. * @return The flavors. */ public List<DataFlavor> getSupportedFlavors() { return Collections.unmodifiableList(FLAVORS); } @Override public String toString() { return "LayerTransferData [layer=" + layer + ']'; } }