Ich arbeite derzeit an Java-Code, der Dateien in die Systemzwischenablage kopieren kann.Was ist der erforderliche DataFlavor zum Kopieren von Dateien in Mac OSX
Für Windows und Linux habe ich bereits funktioniert. Für OSX habe ich verschiedene Varianten ausprobiert, aber die Aktion "Einfügen" im Finder wurde nie aktiv.
Haben Sie eine Idee, welche DataFlavor Einstellungen für den Finder benötigt werden?
Gebrauchte Aromen:
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");
Verfahren die Daten für den Geschmack zurückzukehren:
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);
}
Danke, André
Niemand eine Idee? –