• R/O
  • SSH
  • HTTPS

Commit

Tags
No Tags

Frequently used words (click to add to your profile)

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

Commit MetaInfo

Revisão13 (tree)
Hora2015-07-12 01:01:53
Autorki-chi

Mensagem de Log

ヘルプ表示追加、コマンド処理再構成中。

Mudança Sumário

Diff

--- trunk/src/com/nissy_ki_chi/ConsolePicocalc/BookCommand.java (revision 12)
+++ trunk/src/com/nissy_ki_chi/ConsolePicocalc/BookCommand.java (revision 13)
@@ -6,13 +6,16 @@
66 import java.io.FileWriter;
77 import java.io.IOException;
88 import java.io.InputStreamReader;
9+import java.io.PrintStream;
910 import java.util.Arrays;
1011 import java.util.HashMap;
12+import java.util.List;
1113 import java.util.Map;
1214 import java.util.TreeSet;
1315
1416 import com.nissy_ki_chi.jpicosheet.core.Book;
1517 import com.nissy_ki_chi.jpicosheet.core.ConcurrentBookWrapper;
18+import com.nissy_ki_chi.jpicosheet.core.Sheet;
1619 import com.nissy_ki_chi.jpicosheet.util.SimpleReader;
1720 import com.nissy_ki_chi.jpicosheet.util.SimpleWriter;
1821
@@ -130,4 +133,15 @@
130133
131134 }
132135
136+ public static void listSheets(Book book, PrintStream ps) {
137+ TreeSet<String> sheetNames = new TreeSet<String>();
138+ List<Sheet> sheets = book.getSheets();
139+ for (Sheet s: sheets) {
140+ sheetNames.add(s.getName());
141+ }
142+ for (String name: sheetNames) {
143+ ps.println(name);
144+ }
145+ }
146+
133147 }
--- trunk/src/com/nissy_ki_chi/ConsolePicocalc/Command.java (revision 12)
+++ trunk/src/com/nissy_ki_chi/ConsolePicocalc/Command.java (revision 13)
@@ -4,31 +4,32 @@
44
55
66 static String[][] commandDefine = new String[][] {
7- {".quit", "doQuit"},
7+ {".quit", "doQuit", ".quit\nこのプログラムを終了します。"},
8+ {".help", "doHelp", ".help\nヘルプを表示します。"},
89
9- {".book.add", "doBookAdd"},
10- {".book.current", "doBookCurrent"},
11- {".book.list", "doBookList"},
12- {".book.functions", "doBookFunctions"},
13- {".book.load", "doBookLoad"},
14- {".book.save", "doBookSave"},
10+ {".book.add", "doBookAdd", ".book.add <Book名>\n新しいブックを追加します。"},
11+ {".book.current", "doBookCurrent", ".book.current <Book名>\nカレントブックを変更します。"},
12+ {".book.list", "doBookList", ".book.list\nBookをリストします。"},
13+ {".book.functions", "doBookFunctions", ".book.functions\nカレントブックで使用可能な関数をリストします。"},
14+ {".book.load", "doBookLoad", ".book.load <ファイル名>\nカレントブックに指定ファイルの内容を読み込みます。"},
15+ {".book.save", "doBookSave", ".book.save <ファイル名>\nカレントブックの内容を指定したファイル名に出力します。"},
1516
1617
17- {".sheet.add", "doSheetAdd"},
18- {".sheet.list", "doSheetList"},
19- {".sheet.current", "doSheetCurrent"},
18+ {".sheet.add", "doSheetAdd", ".sheet.add <シート名>\nカレントブックにシートを追加します。"},
19+ {".sheet.list", "doSheetList", ".sheet.list\nカレントブックのシートをリストします。"},
20+ {".sheet.current", "doSheetCurrent", ".sheet.current <シート名>\nカレントシートを指定します。"},
2021
21- {".list", "doCellList"},
22+ {".list", "doCellList", ".list\nカレントシートのセルをリストします。"},
2223
23- {".group.list", "doGroupList"},
24- {".group.list.cells", "doGroupListCells"},
25- {".group.add", "doGroupAdd"},
26- {".group.delete", "doGroupDelete"},
27- {".group.cells.add", "doGroupCellsAdd"},
28- {".group.cells.remove", "doGroupCellsRemove"},
24+ {".group.list", "doGroupList", ".group.list\nカレントシートのグループをリストします。"},
25+ {".group.list.cells", "doGroupListCells", ".group.list.cells <グループ名>\n指定したグループに含まれるセルをリストします。"},
26+ {".group.add", "doGroupAdd", ".group.add <グループ名>\nカレントシートにグループを追加します。"},
27+ {".group.delete", "doGroupDelete", ".group.delete <グループ名>\n指定したグループをカレントシートから削除します。"},
28+ {".group.cells.add", "doGroupCellsAdd", ".group.cells.add <グループ名> <セル名[,セル名...]>\n指定したグループにセルを追加します。"},
29+ {".group.cells.remove", "doGroupCellsRemove", ".group.cells.remove <グループ名> <セル名[,セル名...]>\n指定したグループからセルを削除します"},
2930
30- {".list.tables", "doListTables"},
31- {".list.table.cells", "doListTableCells"},
31+ {".list.tables", "doListTables", ".list.tables\nカレントシートのテーブルをリストします。"},
32+ {".list.table.cells", "doListTableCells", ".list.table.cells <テーブル名>\n指定したテーブルのセルをリストします。"},
3233
3334 };
3435 }
--- trunk/src/com/nissy_ki_chi/ConsolePicocalc/ConsolePicocalc.java (revision 12)
+++ trunk/src/com/nissy_ki_chi/ConsolePicocalc/ConsolePicocalc.java (revision 13)
@@ -41,6 +41,8 @@
4141 private static String DEFAULT_BOOK_NAME = "myBook";
4242 private static String DEFAULT_SHEET_NAME = "Sheet1";
4343
44+ private boolean _needQuit = false;
45+
4446 /**
4547 * @param args
4648 */
@@ -54,6 +56,7 @@
5456 if (0 < args.length) {
5557 filePath = args[0];
5658 }
59+ System.out.println("ConsolePicocalc\n\".help\"でヘルプ表示、\".quit\"で終了");
5760 cp.start(filePath);
5861
5962 }
@@ -73,7 +76,8 @@
7376 for (String[] cmd: Command.commandDefine) {
7477 String[] cmdArr = cmd[0].substring(1).split("\\.");
7578 String methodName = cmd[1];
76- commandStorage.addCommand(cmdArr, methodName);
79+ String description = cmd[2];
80+ commandStorage.addCommand(cmdArr, methodName, description);
7781 }
7882 }
7983
@@ -134,6 +138,9 @@
134138 } catch (Exception e) {
135139 e.printStackTrace();
136140 }
141+ if (_needQuit) {
142+ break;
143+ }
137144 }
138145 } finally {
139146 try {
@@ -240,6 +247,14 @@
240247 // }
241248 // }
242249
250+ private void doQuit(String argStr) {
251+ _needQuit = true;
252+ }
253+
254+ private void doHelp(String argStr) {
255+ System.out.println(_commandStorage.getHelp());
256+ }
257+
243258 private void doCellList(String argStr) {
244259 Sheet sheet = _books.get(_currentBookName).getResolver().getCurrentSheet();
245260 _cellCommand.listCells(sheet);
@@ -324,4 +339,17 @@
324339
325340 }
326341
342+
343+ private void doSheetList(String argStr) {
344+ BookCommand.listSheets(_books.get(_currentBookName), System.out);
345+ }
346+
347+ private void doSheetAdd(String argStr) {
348+ _books.get(_currentBookName).addSheet(argStr);
349+ }
350+
351+ private void doSheetCurrent(String argStr) {
352+ Book book = _books.get(_currentBookName);
353+ book.getResolver().setCurrentSheet(book.getSheet(argStr));
354+ }
327355 }
--- trunk/src/com/nissy_ki_chi/ConsolePicocalc/CommandFragment.java (revision 12)
+++ trunk/src/com/nissy_ki_chi/ConsolePicocalc/CommandFragment.java (revision 13)
@@ -7,8 +7,10 @@
77
88 private String _commandFragmentName = null;
99 private String _methodName = null;
10+ private String _description = null;
1011 private HashMap<String, CommandFragment> _subFragment = null;
1112
13+ @SuppressWarnings("unused")
1214 private CommandFragment() {};
1315
1416 // CommandFragment() {
@@ -19,22 +21,27 @@
1921 this._commandFragmentName = commandFragmentName;
2022 }
2123
22- void setMethodName(String methodName) {
23- _methodName = methodName;
24- }
24+// void setMethodName(String methodName) {
25+// _methodName = methodName;
26+// }
27+//
28+// void setDescription(String description) {
29+// _description = description;
30+// }
2531
26- void addCommand(String[] commandArray, String methodName) {
32+ void addCommand(String[] commandArray, String methodName, String description) {
2733 Stack<String> stack = new Stack<String>();
2834 for (int i = commandArray.length - 1; 0 <= i; i--) {
2935 stack.push(commandArray[i]);
3036 }
31- addCommand(stack, methodName);
37+ addCommand(stack, methodName, description);
3238 }
3339
34- private void addCommand(Stack<String> commandStack, String methodName) {
40+ private void addCommand(Stack<String> commandStack, String methodName, String description) {
3541 if (commandStack.size() == 0) {
3642 // this.put(cmdFragment, new CommandFragment(methodName));
3743 this._methodName = methodName;
44+ this._description = description;
3845 } else {
3946 String cmdFragment = commandStack.pop();
4047 if (this._subFragment == null) {
@@ -44,13 +51,13 @@
4451 if (! this._subFragment.containsKey(cmdFragment)) {
4552 this._subFragment.put(cmdFragment, new CommandFragment(cmdFragment));
4653 }
47- this._subFragment.get(cmdFragment).addCommand(commandStack, methodName);
54+ this._subFragment.get(cmdFragment).addCommand(commandStack, methodName, description);
4855 }
4956 }
5057
51- void appendFragment(String commandFragmentName, CommandFragment fragment) {
52- this._subFragment.put(commandFragmentName, fragment);
53- }
58+// void appendFragment(String commandFragmentName, CommandFragment fragment) {
59+// this._subFragment.put(commandFragmentName, fragment);
60+// }
5461
5562 String getMethodName(String[] commandArray) {
5663 Stack<String> stack = new Stack<String>();
@@ -72,6 +79,25 @@
7279 }
7380 }
7481 }
82+
83+ String getHelp() {
84+ StringBuilder helpSb = new StringBuilder();
85+ getHelp(this, helpSb);
86+ return helpSb.toString();
87+ }
88+
89+ private void getHelp(CommandFragment cmdFragment, StringBuilder helpSb) {
90+ // メソッドが定義されているCommandFragmentについてヘルプを追加
91+ if (cmdFragment._methodName != null) {
92+ helpSb.append(cmdFragment._description).append("\n\n");
93+ }
94+ // サブフラグメントがあるなら再帰してヘルプを追加していく
95+ if (cmdFragment._subFragment != null) {
96+ for (CommandFragment subFragment: cmdFragment._subFragment.values()) {
97+ subFragment.getHelp(subFragment, helpSb);
98+ }
99+ }
100+ }
75101
76102 @Override
77103 public String toString() {