|
@@ -2,9 +2,12 @@ package com.yanyi.translation;
|
|
|
|
|
|
import com.intellij.openapi.actionSystem.AnAction;
|
|
|
import com.intellij.openapi.actionSystem.AnActionEvent;
|
|
|
-import com.intellij.openapi.application.ApplicationManager;
|
|
|
import com.intellij.openapi.ui.Messages;
|
|
|
|
|
|
+import java.awt.Toolkit;
|
|
|
+import java.awt.datatransfer.Clipboard;
|
|
|
+import java.awt.datatransfer.DataFlavor;
|
|
|
+import java.awt.datatransfer.Transferable;
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.List;
|
|
|
|
|
@@ -56,11 +59,33 @@ public class Translation extends AnAction {
|
|
|
}
|
|
|
|
|
|
private void show(String text, String msg) {
|
|
|
- //这个回调是线程里面的,所以要加个方法,不然会报错
|
|
|
- ApplicationManager.getApplication().invokeLater(() -> {
|
|
|
- //弹出翻译结果对话框
|
|
|
- String str = Messages.showInputDialog(text, "翻译结果", Messages.getInformationIcon(), msg, null);
|
|
|
- trans(str);
|
|
|
- });
|
|
|
+// //这个回调是线程里面的,所以要加个方法,不然会报错
|
|
|
+// ApplicationManager.getApplication().invokeLater(() -> {
|
|
|
+// //弹出翻译结果对话框
|
|
|
+ String str = Messages.showInputDialog(text, "翻译结果", Messages.getInformationIcon(), msg, null);
|
|
|
+ trans(str);
|
|
|
+// });
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 从剪切板获得文字。
|
|
|
+ */
|
|
|
+ public static String getSysClipboardText() {
|
|
|
+ String ret = "";
|
|
|
+ Clipboard sysClip = Toolkit.getDefaultToolkit().getSystemClipboard();
|
|
|
+ // 获取剪切板中的内容
|
|
|
+ Transferable clipTf = sysClip.getContents(null);
|
|
|
+ if (clipTf != null) {
|
|
|
+ // 检查内容是否是文本类型
|
|
|
+ if (clipTf.isDataFlavorSupported(DataFlavor.stringFlavor)) {
|
|
|
+ try {
|
|
|
+ ret = (String) clipTf
|
|
|
+ .getTransferData(DataFlavor.stringFlavor);
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return ret;
|
|
|
}
|
|
|
}
|