|
5 | 5 | import java.awt.Dimension; |
6 | 6 | import java.awt.JSComponent; |
7 | 7 | import java.awt.Toolkit; |
8 | | -import java.awt.image.BufferedImage; |
| 8 | +import java.awt.datatransfer.DataFlavor; |
| 9 | +import java.awt.datatransfer.Transferable; |
9 | 10 | import java.io.BufferedInputStream; |
10 | 11 | import java.io.BufferedReader; |
11 | 12 | import java.io.ByteArrayInputStream; |
|
21 | 22 | import java.util.Map; |
22 | 23 | import java.util.Map.Entry; |
23 | 24 | import java.util.Properties; |
| 25 | +import java.util.function.Consumer; |
24 | 26 | import java.util.function.Function; |
25 | 27 | import java.util.zip.ZipEntry; |
26 | 28 | import java.util.zip.ZipInputStream; |
27 | 29 |
|
28 | 30 | import javax.sound.sampled.AudioFormat; |
29 | | -import javax.sound.sampled.UnsupportedAudioFileException; |
30 | 31 | import javax.swing.JComponent; |
31 | 32 | import javax.swing.plaf.ComponentUI; |
32 | 33 |
|
33 | | -import swingjs.api.js.JSFunction; |
34 | 34 | import javajs.util.AU; |
35 | 35 | import javajs.util.AjaxURLConnection; |
36 | | -import javajs.util.PT; |
37 | 36 | import javajs.util.Rdr; |
38 | 37 | import javajs.util.SB; |
39 | 38 | import javajs.util.ZipTools; |
|
44 | 43 | import swingjs.api.js.HTML5Applet; |
45 | 44 | import swingjs.api.js.J2SInterface; |
46 | 45 | import swingjs.api.js.JQuery; |
| 46 | +import swingjs.api.js.JSFunction; |
47 | 47 | import swingjs.json.JSON; |
48 | 48 | import swingjs.plaf.JSComponentUI; |
49 | 49 | import swingjs.plaf.JSFrameUI; |
@@ -1102,6 +1102,35 @@ public static void setClipboardContents(String data) { |
1102 | 1102 | } |
1103 | 1103 | } |
1104 | 1104 |
|
| 1105 | + @Override |
| 1106 | + public void getClipboardText(Consumer<String> whenDone) { |
| 1107 | + getClipboardContentsStatic(whenDone); |
| 1108 | + } |
| 1109 | + |
| 1110 | + public static String getClipboardContentsStatic(Consumer<String> whenDone) { |
| 1111 | + |
| 1112 | + String s = null; |
| 1113 | + |
| 1114 | + try { |
| 1115 | + /** |
| 1116 | + * @j2sNative |
| 1117 | + * |
| 1118 | + * navigator.clipboard.readText().then(function(text) {whenDone.accept$O(text)}); |
| 1119 | + * return null; |
| 1120 | + * |
| 1121 | + */ { |
| 1122 | + Transferable data = Toolkit.getDefaultToolkit().getSystemClipboard().getContents(null); |
| 1123 | + s = (data.isDataFlavorSupported(DataFlavor.stringFlavor) ? (String) data.getTransferData(DataFlavor.stringFlavor) : ""); |
| 1124 | + } |
| 1125 | + |
| 1126 | + } catch (Throwable t) { |
| 1127 | + // browser does not support this function |
| 1128 | + } |
| 1129 | + if (whenDone != null) |
| 1130 | + whenDone.accept(s); |
| 1131 | + return s; |
| 1132 | + } |
| 1133 | + |
1105 | 1134 | @Override |
1106 | 1135 | public byte[] getCachedBytes(String path) { |
1107 | 1136 | return (byte[]) getCachedFileData(path, true); |
|
0 commit comments