mirror of https://github.com/zlatinb/muwire
fix copy-paste from MuWire itself
parent
d857f127bb
commit
8ffa0f47e6
|
@ -1,6 +1,7 @@
|
||||||
package com.muwire.gui;
|
package com.muwire.gui;
|
||||||
|
|
||||||
import java.awt.Toolkit;
|
import java.awt.Toolkit;
|
||||||
|
import java.awt.datatransfer.Clipboard;
|
||||||
import java.awt.datatransfer.DataFlavor;
|
import java.awt.datatransfer.DataFlavor;
|
||||||
import java.awt.datatransfer.StringSelection;
|
import java.awt.datatransfer.StringSelection;
|
||||||
import java.awt.datatransfer.UnsupportedFlavorException;
|
import java.awt.datatransfer.UnsupportedFlavorException;
|
||||||
|
@ -26,22 +27,36 @@ public class CopyPasteSupport {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return what's in the clipboard if it can be represented as a string. This does not handle multi-byte characters.
|
* @return what's in the clipboard if it can be represented as a string.
|
||||||
|
* This does not handle multi-byte characters unless copied from MuWire itself.
|
||||||
*/
|
*/
|
||||||
public static String pasteFromClipboard() {
|
public static String pasteFromClipboard() {
|
||||||
|
Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
|
||||||
|
InputStream is;
|
||||||
|
try {
|
||||||
|
return (String) clipboard.getData(DataFlavor.stringFlavor);
|
||||||
|
} catch ( UnsupportedFlavorException|IOException notJavaString) {
|
||||||
|
try {
|
||||||
|
is = (InputStream) clipboard.getData(DataFlavor.getTextPlainUnicodeFlavor());
|
||||||
|
} catch (UnsupportedFlavorException|IOException notPlainText) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
try {
|
try {
|
||||||
InputStream is = (InputStream)Toolkit.getDefaultToolkit().getSystemClipboard().getData(DataFlavor.getTextPlainUnicodeFlavor());
|
|
||||||
StringBuilder sb = new StringBuilder();
|
StringBuilder sb = new StringBuilder();
|
||||||
int b;
|
int b;
|
||||||
while ((b = is.read()) >= 0)
|
while ((b = is.read()) >= 0)
|
||||||
sb.append((char)b);
|
sb.append((char)b);
|
||||||
return sb.toString();
|
return sb.toString();
|
||||||
} catch (UnsupportedFlavorException| IOException e) {
|
} catch (IOException e) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean canPasteString() {
|
public static boolean canPasteString() {
|
||||||
return Toolkit.getDefaultToolkit().getSystemClipboard().isDataFlavorAvailable(DataFlavor.getTextPlainUnicodeFlavor());
|
Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
|
||||||
|
return clipboard.isDataFlavorAvailable(DataFlavor.getTextPlainUnicodeFlavor()) ||
|
||||||
|
clipboard.isDataFlavorAvailable(DataFlavor.stringFlavor);
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue