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;