[DnD] TransferableLabel extends TransferableObject
28/01/2009
- package com.pingus.dnd.transferables;
- import java.awt.datatransfer.DataFlavor;
- import java.awt.datatransfer.Transferable;
- import java.awt.datatransfer.UnsupportedFlavorException;
- import java.io.IOException;
- import java.util.ArrayList;
- import javax.swing.Icon;
- import javax.swing.ImageIcon;
- import javax.swing.JLabel;
- public class TransferableLabel extends TransferableObject {
- public TransferableLabel(final JLabel label, final DataFlavor[] acceptedFlavors, final Transferable defaultTransferableObject) {
- super(label, acceptedFlavors, defaultTransferableObject);
- }
- public TransferableLabel(final JLabel label, final ArrayList acceptedFlavors, final Transferable defaultTransferableObject) {
- super(label, acceptedFlavors, defaultTransferableObject);
- }
- public Object getTransferData(final DataFlavor flavor) throws UnsupportedFlavorException, IOException {
- if(flavor.equals(getPreferredFlavor())) {
- System.out.println("[TransferableLabel] <getTransferData> returning label");
- // Return JLabel
- return this.getObject();
- } else if(flavor.equals(DataFlavor.imageFlavor)) {
- System.out.println("[TransferableLabel] <getTransferData> returning ...");
- // Return Image
- Icon icon = ((JLabel)this.getObject()).getIcon();
- if (icon instanceof ImageIcon) {
- System.out.println("[TransferableLabel] <getTransferData> Image.");
- return ((ImageIcon) icon).getImage();
- }
- } else if(flavor.equals(DataFlavor.stringFlavor)) {
- System.out.println("[TransferableLabel] <getTransferData> returning label text");
- // Return label text
- return ((JLabel)this.getObject()).getText();
- } else if(flavor.equals(DataFlavor.getTextPlainUnicodeFlavor())) {
- return TransferableObject.exportAsInputStream(((JLabel)this.getObject()).getText(), flavor);
- }
- System.out.println("[TransferableLabel] <getTransferData> returning nothing");
- System.out.println("[TransferableLabel] <getTransferData> for flavor "+flavor);
- return super.getTransferData(flavor);
- }
- }