// 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.LayerManager;
import org.openstreetmap.josm.gui.layer.OsmDataLayer;
/**
* A special form of {@link LayerTransferData} that ensures you that the layer is an OSM data layer
* @author Michael Zangl
* @since 10605
*/
public class OsmLayerTransferData extends LayerTransferData {
/**
* This is a data flavor specific for OSM data layers.
* @see LayerTransferData#FLAVOR
* @see #FLAVORS
*/
public static final DataFlavor OSM_FLAVOR = ClipboardUtils.newDataFlavor(OsmLayerTransferData.class, "Layer");
/**
* The flavors that are supported by this data type.
*/
public static final List<DataFlavor> FLAVORS = Collections
.unmodifiableList(Arrays.asList(OSM_FLAVOR, LayerTransferData.FLAVOR, LayerTransferable.LAYER_DATA));
private final OsmDataLayer osmLayer;
/**
* Create a new {@link OsmLayerTransferData} object
* @param layerManager The layer manager
* @param layer The layer that is moved.
*/
public OsmLayerTransferData(LayerManager layerManager, OsmDataLayer layer) {
super(layerManager, layer);
osmLayer = layer;
}
/**
* Gets the OSM data layer.
* @return The layer
*/
public OsmDataLayer getOsmLayer() {
return osmLayer;
}
@Override
public List<DataFlavor> getSupportedFlavors() {
return FLAVORS;
}
@Override
public String toString() {
return "OsmLayerTransferData [osmLayer=" + osmLayer + ']';
}
}