diff --git a/pom.xml b/pom.xml
index f8e443a..329ef91 100644
--- a/pom.xml
+++ b/pom.xml
@@ -3,7 +3,7 @@
istlab.KisoJikkenNWP
KisoJikkenNWP
jar
- 0.69
+ 0.70
KisoJikkenNWP
http://maven.apache.org
diff --git a/src/main/java/istlab/KisoJikken/JTAConsole.java b/src/main/java/istlab/KisoJikken/JTAConsole.java
index 2be62ce..f3bbc84 100644
--- a/src/main/java/istlab/KisoJikken/JTAConsole.java
+++ b/src/main/java/istlab/KisoJikken/JTAConsole.java
@@ -2,6 +2,9 @@
import java.awt.Dimension;
import java.awt.Point;
+import java.awt.Toolkit;
+import java.awt.datatransfer.Clipboard;
+import java.awt.datatransfer.StringSelection;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
@@ -91,7 +94,8 @@
append(s + "\n");
originalContent.append(s + "\n");
int len = getDocument().getLength();
- setCaretPosition(len);
+ if (getSelectedText() == null)
+ setCaretPosition(len);
}
public void startBR(Process proc) {
@@ -235,11 +239,20 @@
}
if (e.isControlDown() || e.isAltDown() || e.isAltGraphDown() || e.isMetaDown()) {
- if (e.getKeyCode() == 67) {
- // プロセスのみ終了
- destroyProcess();
+ if (e.getKeyCode() == 67) { // CTRL+C
+ if (getSelectedText() != null) {
+ // 文字列をクリップボードにコピーする
+ Toolkit kit = Toolkit.getDefaultToolkit();
+ Clipboard clip = kit.getSystemClipboard();
+ StringSelection ss = new StringSelection(getSelectedText());
+ clip.setContents(ss, ss);
+ System.out.println("選択範囲をコピーしました");
+ } else {
+ // プロセスのみ終了
+ destroyProcess();
+ }
}
- if (e.getKeyCode() == 68 || e.getKeyCode() == 87) { // CTRL+C or CTRL+D or Alt-W
+ if (e.getKeyCode() == 68 || e.getKeyCode() == 87) { // CTRL+D or Alt-W
windowClosing(null);
frame.dispose();
}
@@ -308,7 +321,12 @@
*/
@Override
public void actionPerformed(ActionEvent e) {
- if (e.getActionCommand().equals("Show Diff")) {
+ if (e.getActionCommand().equals("Copy")) {
+ Toolkit kit = Toolkit.getDefaultToolkit();
+ Clipboard clip = kit.getSystemClipboard();
+ StringSelection ss = new StringSelection(getSelectedText());
+ clip.setContents(ss, ss);
+ } else if (e.getActionCommand().equals("Show Diff")) {
String orig = originalContent.toString(); // 出力情報のみ
String buffer = getText(); // JTAの内容(入力と、コメント含む) ここでの入力とは、擬似ターミナル経由でプロセスに送信した内容を指す
List origList = Arrays.asList(orig.split("\n"));
@@ -328,9 +346,9 @@
}
} else if (e.getActionCommand().equals("Submit")) {
- if (SendJsonData.studentID == null){
- String s = JOptionPane.showInputDialog(this,"お手数ですが、学生番号を入力してください(例:21A5999)");
- if (s != null){
+ if (SendJsonData.studentID == null) {
+ String s = JOptionPane.showInputDialog(this, "お手数ですが、学生番号を入力してください(例:21A5999)");
+ if (s != null) {
SendJsonData.studentID = s.trim();
}
}
@@ -338,7 +356,8 @@
String orig = originalContent.toString(); // 出力情報のみ
String buffer = getText(); // JTAの内容(入力と、コメント含む) ここでの入力とは、擬似ターミナル経由でプロセスに送信した内容を指す
SendJsonData sjd = new SendJsonData(orig, buffer);
- if (mainSrc != null) sjd.setMainSrc(mainSrc);
+ if (mainSrc != null)
+ sjd.setMainSrc(mainSrc);
Gson gson = new GsonBuilder().setPrettyPrinting().create();
String json = gson.toJson(sjd);
@@ -364,7 +383,7 @@
public String markdown;
public String mainsrc;
public String stuid;
-
+
SendJsonData(String o, String b) {
orig = o;
buffer = b;
@@ -387,7 +406,8 @@
markdown = sb.toString();
stuid = studentID;
}
- public void setMainSrc(String s){
+
+ public void setMainSrc(String s) {
mainsrc = s;
}
}
\ No newline at end of file
diff --git a/src/main/java/istlab/KisoJikken/JTAConsolePopup.java b/src/main/java/istlab/KisoJikken/JTAConsolePopup.java
index 157e655..e920ef8 100644
--- a/src/main/java/istlab/KisoJikken/JTAConsolePopup.java
+++ b/src/main/java/istlab/KisoJikken/JTAConsolePopup.java
@@ -19,6 +19,13 @@
add(mi);
addSeparator();
+ if (console.getSelectedText().length() > 0) {
+ mi = new JMenuItem("Copy");
+ add(mi);
+ mi.addActionListener(console); // コンソールに処理してもらう
+ addSeparator();
+ }
+
mi = new JMenuItem("Show Diff");
add(mi);
mi.addActionListener(console); // コンソールに処理してもらう
diff --git a/src/main/java/istlab/KisoJikken/Launcher.java b/src/main/java/istlab/KisoJikken/Launcher.java
index f81b379..b70c249 100644
--- a/src/main/java/istlab/KisoJikken/Launcher.java
+++ b/src/main/java/istlab/KisoJikken/Launcher.java
@@ -29,7 +29,7 @@
public class Launcher extends JFrame implements MouseInputListener, KeyListener {
public static Launcher theapp;
- public static String version = "0.69";
+ public static String version = "0.70";
// JPanel mainP;
File root;
JTree tree;