/*
* This file is part of Caliph & Emir.
*
* Caliph & Emir is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* Caliph & Emir is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with Caliph & Emir; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
* Copyright statement:
* --------------------
* (c) 2005 by Werner Klieber (werner@klieber.info)
* http://caliph-emir.sourceforge.net
*/
package at.wklieber.gui;
import java.awt.datatransfer.*;
import java.io.IOException;
import java.util.logging.Logger;
class IComponentTransferable
implements Transferable, ClipboardOwner {
static Logger cat = Logger.getLogger(IComponentTransferable.class.getName());
public static DataFlavor iComponentFlavor = null;
public static DataFlavor localIComponentFlavor = null; // no longer used
public static DataFlavor imageFlavor = null;
IComponent iComponent = null;
public IComponentTransferable(IComponent iComponent1) {
// make a copy of the currend object
iComponent = (IComponent) iComponent1.clone();
}
public DataFlavor[] getTransferDataFlavors() {
DataFlavor[] returnValue = new DataFlavor[1];
returnValue[0] = localIComponentFlavor;
//returnValue[0] = imageFlavor;
return returnValue;
}
public void lostOwnership(Clipboard clipboard, Transferable transferable) {
}
public boolean isDataFlavorSupported(DataFlavor flavor) {
if (flavor == null || localIComponentFlavor == null) {
return false;
}
return (flavor.equals(localIComponentFlavor));
/*
if (flavor == null || imageFlavor == null) {
return false;
}
return (flavor.equals(imageFlavor));
*/
}
public Object getTransferData(DataFlavor flavor) throws UnsupportedFlavorException, IOException {
if (iComponent == null) {
cat.severe("!!! IComponent is null");
return null;
}
/*if (iComponent.getImageIcon() == null) {
cat.severe("!!! imageIcon is null");
return null;
}
return iComponent.getImageIcon();*/
return iComponent;
//IImageComponent imageComponent = (IImageComponent) iComponent;
//return imageComponent.getImageIcon().getImage();
}
static {
try {
iComponentFlavor =
new DataFlavor(IComponent.class,
"IMB image Component flavor");
localIComponentFlavor = new DataFlavor(DataFlavor.javaJVMLocalObjectMimeType +
"; class=" + IComponent.class.getName(),
"Local IMB IComponent flavor", IComponent.class.getClassLoader());
//imageFlavor = new DataFlavor(DataFlavor.imageFlavor, "Local IMB IComponent flavor");
imageFlavor = new DataFlavor(Class.forName("java.awt.Image"), "Image");
} catch (Exception e) {
cat.severe(e.toString());
e.printStackTrace();
}
}
}