Actualmente estoy trabajando en código Java que puede copiar archivos en el portapapeles del sistema.¿Cuál es el DataFlavor requerido para copiar archivos en Mac OSX
Para Windows y Linux ya lo tengo funcionando. Para OSX probé varios sabores pero la acción "Pegar" en Finder nunca aparece activa.
¿Alguna idea de qué configuración de DataFlavor se requiere para Finder?
sabores utilizadas:
DataFlavor.javaFileListFlavor
URILIST_FLAVOR = new DataFlavor("text/uri-list");
XFILELIST_FLAVOR = new DataFlavor("application/x-java-file-list");
GNOMEFILELIST_FLAVOR = new DataFlavor("x-special/gnome-copied-files");
El método para devolver los datos para el sabor:
public Object getTransferData(DataFlavor flavor) throws UnsupportedFlavorException, IOException {
if(FILELIST_FLAVOR.equals(flavor)) {
if(List.class == flavor.getRepresentationClass()) {
return Arrays.asList(files);
} else if(InputStream.class == flavor.getRepresentationClass()) {
return getStreamData(files, null);
}
} else if(DataFlavor.javaFileListFlavor.equals(flavor)) {
if(List.class == flavor.getRepresentationClass()) {
return locallist;
} else if(InputStream.class == flavor.getRepresentationClass()) {
return getStreamData(files, null);
}
} else if(URILIST_FLAVOR.equals(flavor)) {
if(List.class == flavor.getRepresentationClass()) {
return Arrays.asList(files);
} else if(InputStream.class == flavor.getRepresentationClass()) {
return getStreamData(files, null);
}
} else if(GNOMEFILELIST_FLAVOR.equals(flavor)) {
if(List.class == flavor.getRepresentationClass()) {
return Arrays.asList(files);
} else if(InputStream.class == flavor.getRepresentationClass()) {
// FIXME support cut and copy
return getStreamData(files, "copy");
}
} else if(XFILELIST_FLAVOR.equals(flavor)) {
if(List.class == flavor.getRepresentationClass()) {
return locallist;
} else if(InputStream.class == flavor.getRepresentationClass()) {
return getStreamData(files, null);
}
}
throw new UnsupportedFlavorException(flavor);
}
, gracias, André
¿Ninguna otra idea? –