@Override public boolean isSupportedType(TransferData aTransferType) { return SELECTION_TRANSFER.isSupportedType(aTransferType); }
/** * This implementation of <code>nativeToJava</code> converts a platform * specific representation of a URL to a java <code>String</code>. * * @param transferData the platform specific representation of the data to be * converted * @return a java <code>String</code> containing a URL 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; return ( ( URL )transferData.data ).toString(); }
/** * This implementation of <code>nativeToJava</code> converts a platform * specific representation of a URL to a java <code>String</code>. * * @param transferData the platform specific representation of the data to be converted * @return a java <code>String</code> containing a URL if the conversion was successful; * otherwise null * * @see Transfer#javaToNative */ @Override public Object nativeToJava(TransferData transferData){ if (!isSupportedType(transferData) || transferData.pValue == 0) return null; /* Ensure byteCount is a multiple of 2 bytes */ int size = (transferData.format * transferData.length / 8) / 2 * 2; if (size <= 0) return null; char[] chars = new char [size/2]; OS.memmove (chars, transferData.pValue, size); String string = new String (chars); int end = string.indexOf('\0'); return (end == -1) ? string : string.substring(0, end); }
/** * This implementation of <code>nativeToJava</code> converts a platform * specific representation of a URL to a java <code>String</code>. * * @param transferData the platform specific representation of the data to be converted * @return a java <code>String</code> containing a URL if the conversion was successful; * otherwise null * * @see Transfer#javaToNative */ @Override public Object nativeToJava(TransferData transferData){ if (!isSupportedType(transferData) || transferData.pValue == 0) return null; /* Ensure byteCount is a multiple of 2 bytes */ int size = (transferData.format * transferData.length / 8) / 2 * 2; if (size <= 0) return null; char[] chars = new char [size/2]; OS.memmove (chars, transferData.pValue, size); String string = new String (chars); int end = string.indexOf('\0'); return (end == -1) ? string : string.substring(0, end); }
/** * This implementation of <code>nativeToJava</code> converts a platform * specific representation of a URL to a java <code>String</code>. * * @param transferData the platform specific representation of the data to be converted * @return a java <code>String</code> containing a URL if the conversion was successful; * otherwise null * * @see Transfer#javaToNative */ @Override public Object nativeToJava(TransferData transferData){ if (!isSupportedType(transferData) || transferData.pValue == 0) return null; /* Ensure byteCount is a multiple of 2 bytes */ int size = (transferData.format * transferData.length / 8) / 2 * 2; if (size <= 0) return null; char[] chars = new char [size/2]; OS.memmove (chars, transferData.pValue, size); String string = new String (chars); int end = string.indexOf('\0'); return (end == -1) ? string : string.substring(0, end); }
/** * This implementation of <code>javaToNative</code> converts a URL represented * by a java <code>String</code> to a platform specific representation. * * @param object a java <code>String</code> containing a URL * @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( !checkURL( object ) || !isSupportedType( transferData ) ) { DND.error( DND.ERROR_INVALID_DATA ); } transferData.result = 1; try { transferData.data = new URL( ( String )object ); } catch( MalformedURLException e ) { transferData.result = 0; } }
/** * This implementation of <code>nativeToJava</code> converts a platform * specific representation of a URL to a java <code>String</code>. * * @param transferData the platform specific representation of the data to be converted * @return a java <code>String</code> containing a URL if the conversion was successful; * otherwise null * * @see Transfer#javaToNative */ public Object nativeToJava(TransferData transferData){ if (!isSupportedType(transferData) || transferData.data == null) return null; NSURL nsUrl = (NSURL) transferData.data; NSString nsString = nsUrl.absoluteString(); nsString = nsString.stringByReplacingPercentEscapesUsingEncoding(OS.NSUTF8StringEncoding); return nsString.getString(); }
public boolean isSupportedType(TransferData transferData) { if (DISABLED) { return urlTransfer.isSupportedType(transferData);
/** * This implementation of <code>javaToNative</code> converts a URL * represented by a java <code>String</code> to a platform specific representation. * * @param object a java <code>String</code> containing a URL * @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 */ @Override public void javaToNative (Object object, TransferData transferData){ transferData.result = 0; if (!checkURL(object) || !isSupportedType(transferData)) { DND.error(DND.ERROR_INVALID_DATA); } String string = (String)object; int charCount = string.length(); char [] chars = new char[charCount +1]; string.getChars(0, charCount , chars, 0); int byteCount = chars.length*2; long /*int*/ pValue = OS.g_malloc(byteCount); if (pValue == 0) return; OS.memmove(pValue, chars, byteCount); transferData.length = byteCount; transferData.format = 8; transferData.pValue = pValue; transferData.result = 1; }
/** * This implementation of <code>javaToNative</code> converts a URL * represented by a java <code>String</code> to a platform specific representation. * * @param object a java <code>String</code> containing a URL * @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 */ @Override public void javaToNative (Object object, TransferData transferData){ transferData.result = 0; if (!checkURL(object) || !isSupportedType(transferData)) { DND.error(DND.ERROR_INVALID_DATA); } String string = (String)object; int charCount = string.length(); char [] chars = new char[charCount +1]; string.getChars(0, charCount , chars, 0); int byteCount = chars.length*2; int /*long*/ pValue = OS.g_malloc(byteCount); if (pValue == 0) return; OS.memmove(pValue, chars, byteCount); transferData.length = byteCount; transferData.format = 8; transferData.pValue = pValue; transferData.result = 1; }
/** * This implementation of <code>javaToNative</code> converts a URL * represented by a java <code>String</code> to a platform specific representation. * * @param object a java <code>String</code> containing a URL * @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 */ @Override public void javaToNative (Object object, TransferData transferData){ transferData.result = 0; if (!checkURL(object) || !isSupportedType(transferData)) { DND.error(DND.ERROR_INVALID_DATA); } String string = (String)object; int charCount = string.length(); char [] chars = new char[charCount +1]; string.getChars(0, charCount , chars, 0); int byteCount = chars.length*2; int /*long*/ pValue = OS.g_malloc(byteCount); if (pValue == 0) return; OS.memmove(pValue, chars, byteCount); transferData.length = byteCount; transferData.format = 8; transferData.pValue = pValue; transferData.result = 1; }
@Override public boolean setDragData ( final DragSourceEvent event, final IStructuredSelection selection ) { logger.debug ( "setDragData ( event: {}, selection: {}", event, selection ); final Collection<Item> items = ItemSelectionHelper.getSelection ( selection ); if ( items.isEmpty () ) { logger.info ( "Empty item set for setDragData" ); return false; } if ( ItemTransfer.getInstance ().isSupportedType ( event.dataType ) ) { event.data = items.toArray ( new Item[items.size ()] ); return true; } else if ( TextTransfer.getInstance ().isSupportedType ( event.dataType ) ) { event.data = getItemUriData ( items ); return true; } else if ( URLTransfer.getInstance ().isSupportedType ( event.dataType ) ) { event.data = getItemUriData ( items ); return true; } logger.debug ( "No possible transfer" ); return false; }
@Override public void dragSetData ( final DragSourceEvent event ) { try { final IStructuredSelection selection = (IStructuredSelection)LocalSelectionTransfer.getTransfer ().getSelection (); if ( ItemTransfer.getInstance ().isSupportedType ( event.dataType ) ) { final List<Item> items = new ArrayList<Item> (); for ( final Iterator<?> i = selection.iterator (); i.hasNext (); ) { final ListEntry entry = (ListEntry)i.next (); items.add ( entry.getItem () ); } event.data = items.toArray ( new Item[items.size ()] ); } else if ( TextTransfer.getInstance ().isSupportedType ( event.dataType ) ) { setItemUriData ( event, selection ); } else if ( URLTransfer.getInstance ().isSupportedType ( event.dataType ) ) { setItemUriData ( event, selection ); } } catch ( final Exception e ) { event.doit = false; } }
/** * This implementation of <code>javaToNative</code> converts a URL * represented by a java <code>String</code> to a platform specific representation. * * @param object a java <code>String</code> containing a URL * @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 (!checkURL(object) || !isSupportedType(transferData)) { DND.error(DND.ERROR_INVALID_DATA); } String url = (String)object; NSString nsString = NSString.stringWith(url); NSString escapedString = nsString.stringByAddingPercentEscapesUsingEncoding(OS.NSUTF8StringEncoding); transferData.data = NSURL.URLWithString(escapedString); }
/** * 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; }
if (!checkURL(object) || !isSupportedType(transferData)) { DND.error(DND.ERROR_INVALID_DATA);
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; }
@Override public void dragSetData(org.eclipse.swt.dnd.DragSourceEvent event) { dragConsole.append(">>dragSetData\n"); printEvent(event); if (TextTransfer.getInstance().isSupportedType(event.dataType)) { event.data = dragDataText; } if (RTFTransfer.getInstance().isSupportedType(event.dataType)) { event.data = dragDataRTF; } if (HTMLTransfer.getInstance().isSupportedType(event.dataType)) { event.data = dragDataHTML; } if (URLTransfer.getInstance().isSupportedType(event.dataType)) { event.data = dragDataURL; } if (FileTransfer.getInstance().isSupportedType(event.dataType)) { event.data = dragDataFiles; } } @Override
RTFTransfer.getInstance().isSupportedType(event.currentDataType) || HTMLTransfer.getInstance().isSupportedType(event.currentDataType) || URLTransfer.getInstance().isSupportedType(event.currentDataType)) { strings = new String[] {(String)event.data};
if (!isSupportedType(transferData) || transferData.pIDataObject == 0) return null; IDataObject data = new IDataObject(transferData.pIDataObject); data.AddRef();