//***************************************************************************** //* //* (c) Copyright 2004. Glub Tech, Incorporated. All Rights Reserved. //* //* $Id: RemoteFileTransfer.java 273 2010-07-25 15:12:56Z gary $ //* //***************************************************************************** package com.glub.secureftp.client.gui; import com.glub.secureftp.bean.*; import java.awt.datatransfer.*; import java.io.*; import java.util.*; import javax.swing.*; /** * Remote File Transfer class */ public class RemoteFileTransfer implements Transferable { JTable table = null; RemotePanel remotePanel = null; private static DataFlavor arrayListFlavor; static { arrayListFlavor = new DataFlavor( DataFlavor.javaJVMLocalObjectMimeType + "; class=java.util.ArrayList", "ArrayList" ); } public RemoteFileTransfer( RemotePanel remotePanel, JTable table ) { super(); this.remotePanel = remotePanel; this.table = table; } public synchronized DataFlavor[] getTransferDataFlavors() { arrayListFlavor.setHumanPresentableName("RemoteFileList"); DataFlavor[] df = { arrayListFlavor }; return df; } public boolean isDataFlavorSupported( DataFlavor flavor ) { boolean result = flavor.equals( DataFlavor.javaFileListFlavor ); return result; } public synchronized Object getTransferData( DataFlavor flavor ) throws UnsupportedFlavorException, IOException { ArrayList result = null; if ( flavor.equals(arrayListFlavor) ) { result = new ArrayList(); int[] rows = table.getSelectedRows(); //RemoteFileList rfl = remotePanel.getCurrentListing(); for ( int i = 0; i < rows.length; i++ ) { if ( rows[i] >= 0 ) { RemoteFile remoteFile = (RemoteFile)table.getValueAt(rows[i], RemoteFileTable.FILE_COLUMN); result.add( remoteFile ); } } /* File newFile = new File( rf.getFileName() ); boolean fileCreated = newFile.createNewFile(); FTPSession session = FTPSessionManager.getInstance().getCurrentSession(); try { session.getFTPBean().retrieve(rf, newFile, false); } catch ( Exception e ){} //result.add( File.createTempFile("secureftp", null) ); result.add( newFile ); } */ } else { throw new UnsupportedFlavorException( flavor ); } return result; } }