/* * Copyright © 2009-2011 Rebecca G. Bettencourt / Kreative Software * <p> * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at * <a href="http://www.mozilla.org/MPL/">http://www.mozilla.org/MPL/</a> * <p> * Software distributed under the License is distributed on an "AS IS" * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the * License for the specific language governing rights and limitations * under the License. * <p> * Alternatively, the contents of this file may be used under the terms * of the GNU Lesser General Public License (the "LGPL License"), in which * case the provisions of LGPL License are applicable instead of those * above. If you wish to allow use of your version of this file only * under the terms of the LGPL License and not to allow others to use * your version of this file under the MPL, indicate your decision by * deleting the provisions above and replace them with the notice and * other provisions required by the LGPL License. If you do not delete * the provisions above, a recipient may use your version of this file * under either the MPL or the LGPL License. * @since PowerPaint 1.0 * @author Rebecca G. Bettencourt, Kreative Software */ package com.kreative.paint.datatransfer; import java.awt.datatransfer.Clipboard; import java.awt.datatransfer.ClipboardOwner; import java.awt.datatransfer.DataFlavor; import java.awt.datatransfer.Transferable; import java.awt.datatransfer.UnsupportedFlavorException; import java.io.File; import java.io.IOException; import java.util.Arrays; import java.util.Collection; import java.util.Vector; public class FileListSelection implements ClipboardOwner, Transferable { private java.util.List<File> myList; private boolean isCut; public FileListSelection(File f) { myList = new Vector<File>(); myList.add(f); isCut = false; } public FileListSelection(File[] f) { myList = new Vector<File>(); myList.addAll(Arrays.asList(f)); isCut = false; } public FileListSelection(Collection<File> f) { myList = new Vector<File>(); myList.addAll(f); isCut = false; } public FileListSelection(File f, boolean cut) { myList = new Vector<File>(); myList.add(f); isCut = cut; } public FileListSelection(File[] f, boolean cut) { myList = new Vector<File>(); myList.addAll(Arrays.asList(f)); isCut = cut; } public FileListSelection(Collection<File> f, boolean cut) { myList = new Vector<File>(); myList.addAll(f); isCut = cut; } public boolean isCutOperation() { return isCut; } public Object getTransferData(DataFlavor flavor) throws UnsupportedFlavorException, IOException { if (DataFlavor.javaFileListFlavor.equals(flavor)) { return myList; } else if (DataFlavor.stringFlavor.equals(flavor)) { String s = ""; for (File f : myList) { s += "\n"+f.getAbsolutePath(); } return ((s.length() > 0) ? s.substring(1) : s); } else { throw new UnsupportedFlavorException(flavor); } } public DataFlavor[] getTransferDataFlavors() { return new DataFlavor[]{DataFlavor.javaFileListFlavor, DataFlavor.stringFlavor}; } public boolean isDataFlavorSupported(DataFlavor flavor) { return (DataFlavor.javaFileListFlavor.equals(flavor) || DataFlavor.stringFlavor.equals(flavor)); } public void lostOwnership(Clipboard clipboard, Transferable contents) { //nothing } }