final FileTransfer fileTransfer = FileTransfer.getInstance(); Transfer[] types = new Transfer[] { fileTransfer }; target.setTransfer( types );
@Override public void drop( DropTargetEvent event ) { if ( fileTransfer.isSupportedType( event.currentDataType ) ) { String[] files = (String[]) event.data; for ( String file : files ) { openFile( file, false ); } } } } );
@Override public boolean isSupportedType(TransferData aTransferType) { return FileTransfer.getInstance().isSupportedType(aTransferType); } }
/** * Determine whether the drop target is valid. Subclasses may override. * @param event the drop target event * @return <code>true</code> if drop should proceed, <code>false</code> if it should not. */ protected boolean dropTargetIsValid(DropTargetEvent event) { if (URLTransfer.getInstance().isSupportedType(event.currentDataType) && dropTargetDataIsValid(event)) return true; if (!convertFileToURL) return false; if (FileTransfer.getInstance().isSupportedType(event.currentDataType)) { String[] names = (String[]) FileTransfer.getInstance().nativeToJava(event.currentDataType); return names != null && names.length == 1; } return false; }
/** * This implementation of <code>javaToNative</code> converts a list of file * names represented by a java <code>String[]</code> to a platform specific * representation. Each <code>String</code> in the array contains the absolute * path for a single file or directory. * * @param object a java <code>String[]</code> containing the file names to be * converted * @param transferData an empty <code>TransferData</code> object that will be * filled in on return with the platform specific format of the data * @see Transfer#nativeToJava */ public void javaToNative( Object object, TransferData transferData ) { if( !checkFile( object ) || !isSupportedType( transferData ) ) { DND.error( DND.ERROR_INVALID_DATA ); } String[] fileNames = ( String[] )object; transferData.data = fileNames; transferData.result = 1; }
@Override public IStatus validateDrop(Object target, int operation, TransferData transferData) { // check that all paths are valid repository paths String[] folders = (String[]) FileTransfer.getInstance().nativeToJava( transferData); if (folders == null) return Status.CANCEL_STATUS; for (String folder : folders) { File repoFile = new File(folder); if (FileKey.isGitRepository(repoFile, FS.DETECTED)) { continue; } // convenience: also allow the direct parent of .git if (!repoFile.getName().equals(Constants.DOT_GIT)) { File dotgitfile = new File(repoFile, Constants.DOT_GIT); if (FileKey.isGitRepository(dotgitfile, FS.DETECTED)) continue; } return Status.CANCEL_STATUS; } return Status.OK_STATUS; }
if (!isSupportedType(transferData) || transferData.pIDataObject == 0) return null; STGMEDIUM stgmedium = new STGMEDIUM(); stgmedium.tymed = COM.TYMED_HGLOBAL; transferData.result = getData(dataObject, formatetc, stgmedium); dataObject.Release(); if (transferData.result != COM.S_OK) return null;
@Override protected boolean validate(Object object) { return checkFile(object); } }
public Object getCurrentLocalObject() { Object result = null; try { Object data = ((FileTransfer) getTransfer()) .nativeToJava(getCurrentEvent().currentDataType); if (data instanceof String[]) { result = ((String[]) data)[0]; } } catch (Exception e) { // Don't know the tag type. } return result; }
@Override public void dragSetData(DragSourceEvent event) { if (FileTransfer.getInstance().isSupportedType(event.dataType)) { event.data = eventData2; } else { event.data = eventData1; } } });
private String getURLText(DropTargetEvent event) { if (URLTransfer.getInstance().isSupportedType(event.currentDataType)) return (String) URLTransfer.getInstance().nativeToJava(event.currentDataType); if (convertFileToURL && FileTransfer.getInstance().isSupportedType(event.currentDataType)) { String[] names = (String[]) FileTransfer.getInstance().nativeToJava(event.currentDataType); if (names != null && names.length == 1) { URI potentialLocation; try { potentialLocation = URIUtil.fromString(names[0]); return URIUtil.toUnencodedString(RepositoryHelper.localRepoURIHelper(potentialLocation)); } catch (URISyntaxException e) { return names[0]; } } } return null; }
/** * This implementation of <code>javaToNative</code> converts a list of file names * represented by a java <code>String[]</code> to a platform specific representation. * Each <code>String</code> in the array contains the absolute path for a single * file or directory. * * @param object a java <code>String[]</code> containing the file names to be converted * @param transferData an empty <code>TransferData</code> object that will * be filled in on return with the platform specific format of the data * * @see Transfer#nativeToJava */ public void javaToNative(Object object, TransferData transferData) { if (!checkFile(object) || !isSupportedType(transferData)) { DND.error(DND.ERROR_INVALID_DATA); } String[] files = (String[])object; int length = files.length; NSMutableArray array = NSMutableArray.arrayWithCapacity(length); for (int i = 0; i < length; i++) { String fileName = files[i]; NSString string = NSString.stringWith(fileName); array.addObject(string); } transferData.data = array; } /**
@Override protected boolean validate(Object object) { return checkFile(object); } }
public void drop (DropTargetEvent e) { FileTransfer FT = FileTransfer.getInstance(); if ( FT.isSupportedType(e.currentDataType) ) { String[] paths = (String[])e.data; if ( paths != null ) { loadSRXDocument(paths[0]); } } } });
} else if (FileTransfer.getInstance().isSupportedType(transferType)) { try { final Object data= FileTransfer.getInstance().nativeToJava(transferType); if (!(data instanceof String[])) return Status.CANCEL_STATUS;
@Override public Transfer getTransfer() { return FileTransfer.getInstance(); }
if (!checkFile(object) || !isSupportedType(transferData)) { DND.error(DND.ERROR_INVALID_DATA);
/** * This implementation of <code>nativeToJava</code> converts a platform * specific representation of a list of file names to a java * <code>String[]</code>. Each String in the array contains the absolute path * for a single file or directory. * * @param transferData the platform specific representation of the data to be * converted * @return a java <code>String[]</code> containing a list of file names if the * conversion was successful; otherwise null * @see Transfer#javaToNative */ public Object nativeToJava( TransferData transferData ) { if( !isSupportedType( transferData ) || transferData.data == null ) return null; if( transferData.result != 1 ) return null; String[] fileNames = ( String[] )transferData.data; String[] result = new String[ fileNames.length ]; System.arraycopy( fileNames, 0, result, 0, fileNames.length ); return result; }
@Override protected boolean validate(Object object) { return checkFile(object); } }
public void drop (DropTargetEvent e) { FileTransfer FT = FileTransfer.getInstance(); if ( FT.isSupportedType(e.currentDataType) ) { String[] paths = (String[])e.data; if ( paths != null ) { for ( String path : paths ) { if ( !openDocument(path) ) { break; // Stop now } } } } } });