• R/O
  • SSH
  • HTTPS

コミット

タグ
未設定

よく使われているワード(クリックで追加)

javac++androidlinuxc#windowsobjective-ccocoa誰得qtpythonphprubygameguibathyscaphec計画中(planning stage)翻訳omegatframeworktwitterdomtestvb.netdirectxゲームエンジンbtronarduinopreviewer

コミットメタ情報

リビジョン14 (tree)
日時2016-01-28 00:58:26
作者ki-chi

ログメッセージ

ヒストリ機能を付加しようと修正中。

変更サマリ

差分

--- trunk/src/com/nissy_ki_chi/ConsolePicocalc/ConsolePicocalc.java (revision 13)
+++ trunk/src/com/nissy_ki_chi/ConsolePicocalc/ConsolePicocalc.java (revision 14)
@@ -15,6 +15,7 @@
1515 import java.util.ArrayList;
1616 import java.util.Arrays;
1717 import java.util.HashMap;
18+import java.util.LinkedList;
1819 import java.util.Map;
1920 import java.util.TreeSet;
2021
@@ -36,6 +37,9 @@
3637 GroupCommand _groupCommand = new GroupCommand();
3738 TableCommand _tableCommand = new TableCommand();
3839
40+ LinkedList<String> cmdHistory = new LinkedList<>();
41+ LinkedList<String> aggregatedHistory = new LinkedList<>();
42+
3943 CommandFragment _commandStorage = new CommandFragment(".");
4044
4145 private static String DEFAULT_BOOK_NAME = "myBook";
@@ -99,9 +103,11 @@
99103 this._books.put(book.getName(), book);
100104
101105 // コンソールから1行づつ読み込んで処理する
106+ InputStreamReader isr = null;
102107 BufferedReader br = null;
103108 try {
104- br = new BufferedReader(new InputStreamReader(System.in, "JISAutoDetect"));
109+ isr = new InputStreamReader(System.in, "JISAutoDetect");
110+ br = new BufferedReader(isr);
105111 } catch (UnsupportedEncodingException e1) {
106112 e1.printStackTrace();
107113 }
@@ -114,6 +120,8 @@
114120 Book currentBook = _books.get(_currentBookName);
115121 System.out.print("[" + _currentBookName + "]" + currentBook.getResolver().getCurrentSheet().getName() + ": ");
116122
123+
124+ System.out.println(Integer.toString(isr.read()));
117125 // 入力がなくなったら終了
118126 if ((line = br.readLine().trim()) == null) {
119127 break;
@@ -135,6 +143,10 @@
135143 } else {
136144 _cellCommand.processCell(_books.get(_currentBookName), line);
137145 }
146+ System.out.println(line);
147+ cmdHistory.add(line);
148+ aggregatedHistory.remove(line);
149+ aggregatedHistory.add(line);
138150 } catch (Exception e) {
139151 e.printStackTrace();
140152 }
@@ -255,6 +267,14 @@
255267 System.out.println(_commandStorage.getHelp());
256268 }
257269
270+ private void doHistory(String argStr) {
271+ StringBuilder sb = new StringBuilder();
272+ for (String s : cmdHistory) {
273+ sb.append(s).append("\n");
274+ }
275+ System.out.println(sb);
276+ }
277+
258278 private void doCellList(String argStr) {
259279 Sheet sheet = _books.get(_currentBookName).getResolver().getCurrentSheet();
260280 _cellCommand.listCells(sheet);
--- trunk/src/com/nissy_ki_chi/ConsolePicocalc/Command.java (revision 13)
+++ trunk/src/com/nissy_ki_chi/ConsolePicocalc/Command.java (revision 14)
@@ -7,6 +7,8 @@
77 {".quit", "doQuit", ".quit\nこのプログラムを終了します。"},
88 {".help", "doHelp", ".help\nヘルプを表示します。"},
99
10+ {".history", "doHistory", ".history\nコマンド履歴を表示します。"},
11+
1012 {".book.add", "doBookAdd", ".book.add <Book名>\n新しいブックを追加します。"},
1113 {".book.current", "doBookCurrent", ".book.current <Book名>\nカレントブックを変更します。"},
1214 {".book.list", "doBookList", ".book.list\nBookをリストします。"},