• 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

Revision8 (tree)
Time2015-06-17 14:44:18
Authorki-chi

Log Message

trunk下に移動

Change Summary

Incremental Difference

--- ConsolePicocalc/conpico.bat (revision 7)
+++ ConsolePicocalc/conpico.bat (nonexistent)
@@ -1,10 +0,0 @@
1-echo off
2-
3-set EXEDIR=%~dp0
4-set CLASSPATH=%EXEDIR%\ConsolePicocalc-0.1.jar;%EXEDIR%\JPicosheet-0.1.4.jar
5-
6-echo %CLASSPATH%
7-
8-java -classpath %CLASSPATH% com.nissy_ki_chi.ConsolePicocalc.ConsolePicocalc
9-
10-pause
--- ConsolePicocalc/build.xml (revision 7)
+++ ConsolePicocalc/build.xml (nonexistent)
@@ -1,70 +0,0 @@
1-<?xml version="1.0" encoding="UTF-8"?>
2-
3-<project name="ConsolePicocalc" basedir="." default="all">
4-
5- <description>build ConsolePicocalc JAR file</description>
6-
7- <!-- Properties -->
8- <property name="projectName" value="ConsolePicocalc"/>
9- <property name="version" value="0.1"/>
10- <property name="jarFileName" value="${projectName}-${version}.jar"/>
11-
12- <property name="sourceDir" value="src"/>
13- <property name="binDir" value="bin"/>
14- <property name="jarDir" value="jarfile"/>
15- <property name="jarWorkDir" value="jarwork"/>
16- <property name="javadocDir" value="doc"/>
17- <property name="distDir" value="dist"/>
18- <property name="exeDir" value="exe"/>
19-
20- <!-- property name="jpicosheetJar" value="C:/Users/Yusuke/Develop/Java/PicoSheet-Workspace/JPicosheet/jarfile/JPicosheet-0.1.4.jar"/ -->
21- <property name="jpicosheetJar" value="/home/yusuke/Develop/Eclipse-workspaces/PicoSheet-Workspace/JPicosheet/jarfile/JPicosheet-0.1.4.jar"/>
22-
23- <target name="all" depends="init,makedir,copyJarFile,jar,makeExe,clean" />
24-
25- <target name="init">
26- <tstamp></tstamp>
27- <delete dir="${jarWorkDir}"/>
28- <delete file="${jarDir}/${jarFileName}"/>
29- <delete file="${distDir}/${projectName}"/>
30- <delete file="${exeDir}"/>
31- </target>
32-
33- <target name="makedir">
34- <mkdir dir="${jarDir}"/>
35- <mkdir dir="${jarWorkDir}"/>
36- <mkdir dir="${distDir}"/>
37- <mkdir dir="${exeDir}"/>
38- </target>
39-
40- <target name="copyJarFile" depends="makedir">
41- <copy todir="${jarWorkDir}">
42- <fileset dir="${binDir}">
43- <include name="**/*.class"/>
44- <exclude name="test/**"/>
45- </fileset>
46- </copy>
47- </target>
48-
49- <target name="jar" depends="copyJarFile">
50- <jar destfile="${jarDir}/${jarFileName}">
51- <zipfileset dir="${jarWorkDir}" />
52- </jar>
53- </target>
54-
55- <target name="makeExe" depends="jar">
56- <copy todir="${exeDir}">
57- <fileset file="${jpicosheetJar}"/>
58- <fileset file="${jarDir}/${jarFileName}"/>
59- <fileset file="conpico.bat"/>
60- </copy>
61- </target>
62-
63-
64- <target name="clean">
65- <delete dir="${jarWorkDir}"/>
66- </target>
67-
68-
69-</project>
70-
Deleted: svn:mime-type
## -1 +0,0 ##
-text/plain
\ No newline at end of property
--- ConsolePicocalc/コマンド検討.txt (revision 7)
+++ ConsolePicocalc/コマンド検討.txt (nonexistent)
@@ -1,91 +0,0 @@
1-コマンド
2-
3-●●ドット「.」で始まる場合、コマンドである。
4-
5----------------Book用
6-
7-.book.add ブック名
8-新しいブックの作成
9-
10-.book.current ブック名
11-カレントブックの変更
12-
13-.book.list
14-ブックの一覧を表示
15-
16-.book.functions
17-カレントブックで使用可能な関数一覧を表示
18-
19-.book.load
20-カレントブックに指定したファイルの内容を読み込む
21-
22-.book.save
23-カレントブックの内容を指定したファイルに書き込み
24-
25-
26----------------Sheet用
27-
28-.sheet.add シート名
29-カレントブックに新しいシートを追加
30-
31-.sheet.list
32-カレントブックのシート一覧を表示
33-
34-.sheet.current シート名
35-カレントシートの変更
36-
37-
38----------------Cell用
39-.list
40-カレントシートのセル一覧を表示
41-
42-
43----------------Group用
44-.group.list
45-カレントシートのグループ一覧を表示
46-
47-.group.list.cells グループ名
48-カレントシートの指定したグループに属するセル一覧を表示
49-
50-.group.add グループ名
51-カレントシートに新しいグループを追加
52-
53-.group.delete グループ名
54-カレントシートのグループを削除
55-
56-.group.cells.add グループ名 セル名 セル名...
57-カレントシートの指定したグループに指定したセルを追加
58-
59-.group.cells.remove グループ名 セル名 セル名...
60-カレントシートの指定したグループから指定したセルを削除
61-
62-
63-
64----------------Table用
65-
66-.list.tables
67-カレントシートのテーブル一覧を表示
68-
69-.list.table.cells テーブル名
70-カレントシートの指定したテーブルに属するセル一覧を表示
71-
72-
73-
74-●●ドットで始まらない場合、カレントブックのカレントシートにあるセルに対する操作である
75-
76-<セル名>
77-セルの値を表示する
78-
79-<セル名> formula
80-セルの式を表示する。セルが式でない場合エラー。
81-
82-<セル名>=値
83-セルに値をセットする。
84-式をセットする場合、<セル名>==式 とイコールを続けて書く。
85-
86-<セル名>.label ラベル
87-セルにラベルをセットする
88-
89-
90-
91-
Deleted: svn:mime-type
## -1 +0,0 ##
-text/plain
\ No newline at end of property
--- ConsolePicocalc/src/com/nissy_ki_chi/ConsolePicocalc/GroupCommand.java (revision 7)
+++ ConsolePicocalc/src/com/nissy_ki_chi/ConsolePicocalc/GroupCommand.java (nonexistent)
@@ -1,95 +0,0 @@
1-package com.nissy_ki_chi.ConsolePicocalc;
2-
3-import java.util.Set;
4-import java.util.TreeMap;
5-import java.util.TreeSet;
6-
7-import com.nissy_ki_chi.jpicosheet.core.Cell;
8-import com.nissy_ki_chi.jpicosheet.core.Group;
9-import com.nissy_ki_chi.jpicosheet.core.Sheet;
10-
11-public class GroupCommand {
12-
13- void processGroupCmd(Sheet sheet, String[] cmdArr, String argStr) {
14-
15- // このシートのグループ一覧表示
16- if (cmdArr[1].equals("list") && cmdArr.length == 2) {
17- Set<Group> groups = sheet.getGroups();
18- TreeSet<String> gNames = new TreeSet<String>();
19- for (Group g: groups) {
20- gNames.add(g.getName());
21- }
22- for (String s: gNames) {
23- System.out.println(s);
24- }
25- return;
26- }
27-
28- // 指定グループ内のセル表示
29- if (cmdArr[1].equals("list") && cmdArr[2].equals("cells")) {
30- Group group = sheet.getGroup(argStr);
31- TreeMap<String, Cell> tCell = new TreeMap<String, Cell>();
32- for (Cell c: group.getCells()) {
33- tCell.put(c.getName(), c);
34- }
35- for (Cell c: tCell.values()) {
36- Utils.printCell(c);
37- }
38- }
39-
40- // グループ追加
41- if (cmdArr[1].equals("add")) {
42- sheet.addGroup(argStr);
43- }
44-
45- // グループ削除
46- if (cmdArr[1].equals("delete")) {
47- if (sheet.groupExists(argStr)) {
48- sheet.deleteGroup(argStr);
49- }
50- }
51-
52- // グループにセル追加
53- if (cmdArr[1].equals("cells") && cmdArr[2].equals("add")) {
54-
55- Group group = sheet.getGroup(Utils.getTargetHeadFromArgStr(argStr));
56- String[] cellNamesArr = Utils.getTargetBodyFromArgStr(argStr);
57- // セルをグループに追加
58- for (String cellName: cellNamesArr) {
59- cellName = cellName.trim();
60- if (cellName.length() > 0) {
61- group.addCell(cellName);
62- }
63- }
64- }
65-
66- // グループからセル削除
67- if (cmdArr[1].equals("cells") && cmdArr[2].equals("remove")) {
68-
69- Group group = sheet.getGroup(Utils.getTargetHeadFromArgStr(argStr));
70- String[] cellNamesArr = Utils.getTargetBodyFromArgStr(argStr);
71- // セルをグループから削除
72- for (String cellName: cellNamesArr) {
73- cellName = cellName.trim();
74- if (cellName.length() > 0) {
75- group.removeCell(cellName);
76- }
77- }
78-
79- }
80-
81- }
82-
83- void listGroups(Sheet sheet) {
84- for (Group g: sheet.getGroups() ) {
85- System.out.println(g.getName());
86- }
87- }
88-
89- void listGroupCells(Sheet sheet, String groupName) {
90- for (Cell c: new TreeSet<Cell>(sheet.getGroup(groupName).getCells())) {
91- Utils.printCell(c);
92- }
93- }
94-
95-}
Deleted: svn:mime-type
## -1 +0,0 ##
-text/plain
\ No newline at end of property
--- ConsolePicocalc/src/com/nissy_ki_chi/ConsolePicocalc/CellCommand.java (revision 7)
+++ ConsolePicocalc/src/com/nissy_ki_chi/ConsolePicocalc/CellCommand.java (nonexistent)
@@ -1,66 +0,0 @@
1-package com.nissy_ki_chi.ConsolePicocalc;
2-
3-import java.util.TreeSet;
4-
5-import com.nissy_ki_chi.jpicosheet.core.Book;
6-import com.nissy_ki_chi.jpicosheet.core.Cell;
7-import com.nissy_ki_chi.jpicosheet.core.Sheet;
8-
9-public class CellCommand {
10-
11- void processListCmd(Sheet sheet, String[] cmdArr, String argStr) {
12-
13- if (cmdArr[1].equals("list") && cmdArr.length == 2) {
14- listCells(sheet);
15- }
16-
17- if (cmdArr[1].equals("delete") && cmdArr.length == 2) {
18- deleteCells(sheet, argStr);
19- }
20-
21- }
22-
23- private void deleteCells(Sheet sheet, String argStr) {
24-
25- for (String cellName: argStr.split(",")) {
26- sheet.deleteCell(cellName.trim());
27- }
28- }
29-
30- void listCells(Sheet currentSheet) {
31- for (Cell c: new TreeSet<Cell>(currentSheet.getCells())) {
32- Utils.printCell(c);
33- }
34- }
35-
36-
37- void processCell(Book book, String line) {
38-
39- int idx = line.indexOf("=");
40- // "="が含まれている場合、セルへの値セット
41- if ((1 <= idx) && (idx < (line.length() -1))) {
42- String cellName = line.substring(0, idx);
43- String cellValue = line.substring(idx + 1);
44- System.out.println("セル名: " + cellName + " セル値: " + cellValue);
45-
46- Cell targetCell;
47- if (book.getResolver().isFullyQualifiedName(cellName)) {
48- String sheetName = book.getResolver().getSheetNameFromFullyQualifiedName(cellName);
49- targetCell = book.getSheet(sheetName).addCell(cellName);
50- targetCell.setValue(cellValue);
51- } else {
52- targetCell = book.getResolver().getCurrentSheet().addCell(cellName);
53- targetCell.setValue(cellValue);
54- }
55- Utils.printCell(targetCell);
56- } else {
57- // ”=”が含まれない場合、セル値の表示
58- if (book.getResolver().cellExists(line)) {
59- Utils.printCell(book.getResolver().getCell(line));
60- } else {
61- System.out.println(line + "というセルはありません。");
62- }
63- }
64- }
65-
66-}
Deleted: svn:mime-type
## -1 +0,0 ##
-text/plain
\ No newline at end of property
--- ConsolePicocalc/src/com/nissy_ki_chi/ConsolePicocalc/ConsolePicocalc.java (revision 7)
+++ ConsolePicocalc/src/com/nissy_ki_chi/ConsolePicocalc/ConsolePicocalc.java (nonexistent)
@@ -1,185 +0,0 @@
1-package com.nissy_ki_chi.ConsolePicocalc;
2-
3-import java.io.BufferedReader;
4-import java.io.IOException;
5-import java.io.InputStreamReader;
6-import java.io.UnsupportedEncodingException;
7-import java.lang.reflect.Array;
8-import java.nio.file.Files;
9-import java.nio.file.Paths;
10-import java.util.ArrayList;
11-import java.util.HashMap;
12-import java.util.Map;
13-import java.util.TreeSet;
14-
15-import com.nissy_ki_chi.jpicosheet.core.Book;
16-import com.nissy_ki_chi.jpicosheet.core.Sheet;
17-
18-public class ConsolePicocalc {
19-
20-
21-// Map<String, Book> _books = new HashMap<String, Book>();
22-// String _bookCommand.setCurrentBook(null;
23-
24- BookCommand _bookCommand = new BookCommand();
25- SheetCommand _sheetCommand = new SheetCommand();
26- CellCommand _cellCommand = new CellCommand();
27- GroupCommand _groupCommand = new GroupCommand();
28- TableCommand _tableCommand = new TableCommand();
29-
30- /**
31- * @param args
32- */
33- public static void main(String[] args) {
34- // TODO 自動生成されたメソッド・スタブ
35-
36- ConsolePicocalc cp = new ConsolePicocalc();
37- String filePath = null;
38- if (0 < args.length) {
39- filePath = args[0];
40- }
41- cp.start(filePath);
42-
43- }
44-
45-
46- public void ConcolePicocalc() {
47-
48- }
49-
50-
51- public void start(String filePath) {
52-
53- Book book = null;
54- // 引数としてファイルが渡された場合はそれをロードする
55- if (filePath != null && Files.exists(Paths.get(filePath))) {
56- _bookCommand.setCurrentBookName("myBook");
57- book = new Book(_bookCommand.getCurrentBookName());
58- _bookCommand.load(book, filePath);
59- } else {
60- // そうでない場合はデフォルトシートを作成
61- book = new Book("myBook");
62- book.addSheet("Sheet1");
63- this._bookCommand.setCurrentBookName(book.getName());
64- }
65- this._bookCommand.getBooks().put(book.getName(), book);
66-
67- // コンソールから1行づつ読み込んで処理する
68- BufferedReader br = null;
69- try {
70- br = new BufferedReader(new InputStreamReader(System.in, "JISAutoDetect"));
71- } catch (UnsupportedEncodingException e1) {
72- e1.printStackTrace();
73- }
74-
75- try {
76- String line;
77- while(true) {
78- try {
79- // プロンプト表示
80- Book currentBook = _bookCommand.getCurrentBook();
81- System.out.print("[" + _bookCommand.getCurrentBookName() + "]" + currentBook.getResolver().getCurrentSheet().getName() + ": ");
82-
83- // 入力がなくなったら終了
84- if ((line = br.readLine().trim()) == null) {
85- break;
86- }
87-
88- // 未入力だったら何もしない
89- if (line.length() == 0) {
90- continue;
91- }
92-
93- // 終了コマンドが入力されたら終了
94- if (line.equals(".quit")) {
95- break;
96- }
97-
98- // 1文字目がドットか否かでコマンドもしくはセル入力を判断
99- if (line.charAt(0) == '.') {
100- processCommand(line);
101- } else {
102- _cellCommand.processCell(_bookCommand.getCurrentBook(), line);
103- }
104- } catch (Exception e) {
105- e.printStackTrace();
106- }
107- }
108- } finally {
109- try {
110- br.close();
111- } catch (IOException e) {
112- e.printStackTrace();
113- }
114- }
115- }
116-
117-
118- private void processCommand(String line) {
119-
120- String cmdStr;
121- String argStr;
122- int idx = line.indexOf(" ");
123- if (0 < idx) {
124- cmdStr = line.substring(1, line.indexOf(" "));
125- if (idx < line.length()) {
126- argStr = line.substring(idx+1);
127- } else {
128- argStr = "";
129- }
130- } else {
131- cmdStr = line.substring(1);
132- argStr = "";
133- }
134- String[] cmdArr = cmdStr.split("\\.");
135-
136- if (cmdArr[0].equals("book")) {
137- _bookCommand.processBookCmd(cmdArr, argStr);
138- return;
139- }
140-
141- if (cmdArr[0].equals("sheet")) {
142- Book book = _bookCommand.getCurrentBook();
143- _sheetCommand.processSheetCmd(book, cmdArr, argStr);
144- return;
145- }
146-
147- if (cmdArr[0].equals("group")) {
148- Sheet sheet = _bookCommand.getCurrentBook().getResolver().getCurrentSheet();
149- _groupCommand.processGroupCmd(sheet, cmdArr, argStr);
150- return;
151- }
152-
153- if (cmdArr[0].equals("table")) {
154- Sheet sheet = _bookCommand.getCurrentBook().getResolver().getCurrentSheet();
155- _tableCommand.processTableCmd(sheet, cmdArr, argStr);
156- return;
157- }
158-
159- if (cmdArr[0].equals("list") && cmdArr.length == 1) {
160- Sheet sheet = _bookCommand.getCurrentBook().getResolver().getCurrentSheet();
161- _cellCommand.listCells(sheet);
162- _groupCommand.listGroups(sheet);
163- _tableCommand.listTables(sheet);
164- return;
165- } else {
166- Sheet sheet = _bookCommand.getCurrentBook().getResolver().getCurrentSheet();
167- _cellCommand.processListCmd(sheet, cmdArr, argStr);
168- return;
169- }
170-
171-
172- }
173-
174- private void listSheets(Book book) {
175- TreeSet<String> sheetNames = new TreeSet<String>();
176- for (Sheet s: book.getSheets()) {
177- sheetNames.add(s.getName());
178- }
179- for (String sName: sheetNames) {
180- System.out.println(sName);
181- }
182- }
183-
184-
185-}
Deleted: svn:mime-type
## -1 +0,0 ##
-text/plain
\ No newline at end of property
--- ConsolePicocalc/src/com/nissy_ki_chi/ConsolePicocalc/Utils.java (revision 7)
+++ ConsolePicocalc/src/com/nissy_ki_chi/ConsolePicocalc/Utils.java (nonexistent)
@@ -1,52 +0,0 @@
1-package com.nissy_ki_chi.ConsolePicocalc;
2-
3-import com.nissy_ki_chi.jpicosheet.core.Cell;
4-import com.nissy_ki_chi.jpicosheet.core.Group;
5-import com.nissy_ki_chi.jpicosheet.core.Cell.CellType;
6-
7-public class Utils {
8-
9- /**
10- * セルを表示します。
11- * @param c 表示するセル
12- */
13- static void printCell(Cell c) {
14- printCellNoLn(c);
15- System.out.println("");
16- }
17-
18- /**
19- * セルを表示します。セル表示後改行しません。
20- * @param c 表示するセル
21- */
22- static void printCellNoLn(Cell c) {
23- if (c.getCellType() == CellType.FORMULA) {
24- System.out.print(c.getName() + "\t" + c.getFormula() + "\t" + c.getValueString());
25- } else {
26- System.out.print(c.getName() + "\t" + c.getValueString());
27- }
28- }
29-
30- /**
31- * 渡された文字列の先頭から、最初のスペースの前までの文字列を返します。
32- * @param argStr
33- * @return
34- */
35- static String getTargetHeadFromArgStr(String argStr) {
36- // argStr からグループ名と追加するセル名の配列を得る
37- int gnIdx = argStr.indexOf(" ");
38- return argStr.substring(0, gnIdx);
39- }
40-
41- /**
42- * 渡された文字列に含まれる最初のスペース以降の文字列から、カンマで区切られた文字列を配列にして返します。
43- * @param argStr
44- * @return
45- */
46- static String[] getTargetBodyFromArgStr(String argStr) {
47- // argStr からグループ名と追加するセル名の配列を得る
48- int gnIdx = argStr.indexOf(" ");
49- String body = argStr.substring(gnIdx + 1);
50- return body.trim().split(",");
51- }
52-}
Deleted: svn:mime-type
## -1 +0,0 ##
-text/plain
\ No newline at end of property
--- ConsolePicocalc/src/com/nissy_ki_chi/ConsolePicocalc/TableCommand.java (revision 7)
+++ ConsolePicocalc/src/com/nissy_ki_chi/ConsolePicocalc/TableCommand.java (nonexistent)
@@ -1,36 +0,0 @@
1-package com.nissy_ki_chi.ConsolePicocalc;
2-
3-import com.nissy_ki_chi.jpicosheet.core.Cell;
4-import com.nissy_ki_chi.jpicosheet.core.Sheet;
5-import com.nissy_ki_chi.jpicosheet.core.Table;
6-
7-public class TableCommand {
8-
9- void listTableCells(Sheet currentSheet, String tableName) {
10- Table t = currentSheet.getTable(tableName);
11- int rowSize = t.getRowSize();
12- int colSize = t.getColSize();
13- for (int rowIdx = 0; rowIdx < rowSize; rowIdx++) {
14- for (int colIdx = 0; colIdx < colSize; colIdx++) {
15- Cell c = t.getCell(rowIdx, colIdx);
16- Utils.printCellNoLn(c);
17- if (colIdx < colSize -1) {
18- System.out.println("\t");
19- }
20- }
21- System.out.println("");
22- }
23- }
24-
25- void listTables(Sheet currentSheet) {
26- for (Table t: currentSheet.getTables()) {
27- System.out.println(t.getName());
28- }
29- }
30-
31- void processTableCmd(Sheet sheet, String[] cmdArr, String argStr) {
32- // TODO 自動生成されたメソッド・スタブ
33-
34- }
35-
36-}
Deleted: svn:mime-type
## -1 +0,0 ##
-text/plain
\ No newline at end of property
--- ConsolePicocalc/src/com/nissy_ki_chi/ConsolePicocalc/SheetCommand.java (revision 7)
+++ ConsolePicocalc/src/com/nissy_ki_chi/ConsolePicocalc/SheetCommand.java (nonexistent)
@@ -1,36 +0,0 @@
1-package com.nissy_ki_chi.ConsolePicocalc;
2-
3-import java.util.List;
4-import java.util.TreeSet;
5-
6-import com.nissy_ki_chi.jpicosheet.core.Book;
7-import com.nissy_ki_chi.jpicosheet.core.Sheet;
8-
9-public class SheetCommand {
10-
11- public void processSheetCmd(Book book, String[] cmdArr, String argStr) {
12-
13- // シート追加
14- if (cmdArr[1].equals("add")) {
15- book.addSheet(argStr);
16- }
17-
18- // カレントシート変更
19- if (cmdArr[1].equals("current")) {
20- book.getResolver().setCurrentSheet(book.getSheet(argStr));
21- }
22-
23- // シート名一覧
24- if (cmdArr[1].equals("list")) {
25- TreeSet<String> sheetNames = new TreeSet<String>();
26- List<Sheet> sheets = book.getSheets();
27- for (Sheet s: sheets) {
28- sheetNames.add(s.getName());
29- }
30- for (String name: sheetNames) {
31- System.out.println(name);
32- }
33- }
34- }
35-
36-}
Deleted: svn:mime-type
## -1 +0,0 ##
-text/plain
\ No newline at end of property
--- ConsolePicocalc/src/com/nissy_ki_chi/ConsolePicocalc/BookCommand.java (revision 7)
+++ ConsolePicocalc/src/com/nissy_ki_chi/ConsolePicocalc/BookCommand.java (nonexistent)
@@ -1,131 +0,0 @@
1-package com.nissy_ki_chi.ConsolePicocalc;
2-
3-import java.io.BufferedReader;
4-import java.io.BufferedWriter;
5-import java.io.FileInputStream;
6-import java.io.FileWriter;
7-import java.io.IOException;
8-import java.io.InputStreamReader;
9-import java.util.Arrays;
10-import java.util.HashMap;
11-import java.util.Map;
12-import java.util.TreeSet;
13-
14-import com.nissy_ki_chi.jpicosheet.core.Book;
15-import com.nissy_ki_chi.jpicosheet.core.ConcurrentBookWrapper;
16-import com.nissy_ki_chi.jpicosheet.util.SimpleReader;
17-import com.nissy_ki_chi.jpicosheet.util.SimpleWriter;
18-
19-public class BookCommand {
20-
21- String getCurrentBookName() {
22- return _currentBookName;
23- }
24-
25- void setCurrentBookName(String bookName) {
26- this._currentBookName = bookName;
27- }
28-
29- Map<String, Book> getBooks() {
30- return _books;
31- }
32-
33- Book getCurrentBook() {
34- return this._books.get(_currentBookName);
35- }
36-
37- Book getBook(String bookName) {
38- return this._books.get(bookName);
39- }
40-
41- Map<String, Book> _books = new HashMap<String, Book>();
42- String _currentBookName = null;
43-
44- void processBookCmd(String[] cmdArr, String argStr) {
45-
46- if (cmdArr.length == 1) {
47- return;
48- }
49-
50- // 新しいブックの追加
51- if (cmdArr[1].equals("add")) {
52- Book newBook = new Book(argStr);
53- newBook.addSheet("sheet1");
54- _books.put(newBook.getName(), newBook);
55- }
56-
57- // カレントブックの変更
58- if (cmdArr[1].equals("current")) {
59- if (_books.containsKey(argStr)) {
60- this._currentBookName = argStr;
61- }
62- }
63-
64- // ブックの一覧を表示
65- if (cmdArr[1].equals("list")) {
66- for (String bookName: new TreeSet<String>(_books.keySet())) {
67- System.out.println(bookName);
68- }
69- }
70-
71- // カレントブックで使用可能な関数一覧を表示
72- if (cmdArr[1].equals("functions")) {
73- String[] functionNames = _books.get(_currentBookName).getFunctionNames();
74- Arrays.sort(functionNames);
75- for (String funcName: Arrays.asList(functionNames)) {
76- System.out.println(funcName);
77- }
78- }
79-
80- // ファイル読み込み
81- if (cmdArr[1].equals("load")) {
82- String filePath = argStr;
83- Book book = _books.get(_currentBookName);
84- load(book, filePath);
85- }
86-
87- // ファイル書き込み
88- if (cmdArr[1].equals("save")) {
89- String filePath = argStr;
90- Book book = _books.get(_currentBookName);
91- SimpleWriter sw = new SimpleWriter(new ConcurrentBookWrapper(book));
92- BufferedWriter w = null;
93- try {
94- w = new BufferedWriter(new FileWriter(filePath));
95- sw.write(w);
96- } catch (Exception e) {
97- e.printStackTrace();
98- } finally {
99- if (w != null) {
100- try {
101- w.close();
102- } catch (IOException e) {
103- e.printStackTrace();
104- }
105- }
106- }
107- }
108-
109- }
110-
111- void load(Book book, String filePath) {
112- SimpleReader sr = new SimpleReader(new ConcurrentBookWrapper(book));
113- BufferedReader fileBR = null;
114- try {
115- fileBR = new BufferedReader(new InputStreamReader(new FileInputStream(filePath)));
116- sr.Read(fileBR);
117- } catch (Exception e) {
118- e.printStackTrace();
119- } finally {
120- if (fileBR != null) {
121- try {
122- fileBR.close();
123- } catch (IOException e) {
124- e.printStackTrace();
125- }
126- }
127- }
128-
129- }
130-
131-}
Deleted: svn:mime-type
## -1 +0,0 ##
-text/plain
\ No newline at end of property
--- trunk/build.xml (nonexistent)
+++ trunk/build.xml (revision 8)
@@ -0,0 +1,70 @@
1+<?xml version="1.0" encoding="UTF-8"?>
2+
3+<project name="ConsolePicocalc" basedir="." default="all">
4+
5+ <description>build ConsolePicocalc JAR file</description>
6+
7+ <!-- Properties -->
8+ <property name="projectName" value="ConsolePicocalc"/>
9+ <property name="version" value="0.1"/>
10+ <property name="jarFileName" value="${projectName}-${version}.jar"/>
11+
12+ <property name="sourceDir" value="src"/>
13+ <property name="binDir" value="bin"/>
14+ <property name="jarDir" value="jarfile"/>
15+ <property name="jarWorkDir" value="jarwork"/>
16+ <property name="javadocDir" value="doc"/>
17+ <property name="distDir" value="dist"/>
18+ <property name="exeDir" value="exe"/>
19+
20+ <!-- property name="jpicosheetJar" value="C:/Users/Yusuke/Develop/Java/PicoSheet-Workspace/JPicosheet/jarfile/JPicosheet-0.1.4.jar"/ -->
21+ <property name="jpicosheetJar" value="/home/yusuke/Develop/Eclipse-workspaces/PicoSheet-Workspace/JPicosheet/jarfile/JPicosheet-0.1.4.jar"/>
22+
23+ <target name="all" depends="init,makedir,copyJarFile,jar,makeExe,clean" />
24+
25+ <target name="init">
26+ <tstamp></tstamp>
27+ <delete dir="${jarWorkDir}"/>
28+ <delete file="${jarDir}/${jarFileName}"/>
29+ <delete file="${distDir}/${projectName}"/>
30+ <delete file="${exeDir}"/>
31+ </target>
32+
33+ <target name="makedir">
34+ <mkdir dir="${jarDir}"/>
35+ <mkdir dir="${jarWorkDir}"/>
36+ <mkdir dir="${distDir}"/>
37+ <mkdir dir="${exeDir}"/>
38+ </target>
39+
40+ <target name="copyJarFile" depends="makedir">
41+ <copy todir="${jarWorkDir}">
42+ <fileset dir="${binDir}">
43+ <include name="**/*.class"/>
44+ <exclude name="test/**"/>
45+ </fileset>
46+ </copy>
47+ </target>
48+
49+ <target name="jar" depends="copyJarFile">
50+ <jar destfile="${jarDir}/${jarFileName}">
51+ <zipfileset dir="${jarWorkDir}" />
52+ </jar>
53+ </target>
54+
55+ <target name="makeExe" depends="jar">
56+ <copy todir="${exeDir}">
57+ <fileset file="${jpicosheetJar}"/>
58+ <fileset file="${jarDir}/${jarFileName}"/>
59+ <fileset file="conpico.bat"/>
60+ </copy>
61+ </target>
62+
63+
64+ <target name="clean">
65+ <delete dir="${jarWorkDir}"/>
66+ </target>
67+
68+
69+</project>
70+
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
--- trunk/conpico.bat (nonexistent)
+++ trunk/conpico.bat (revision 8)
@@ -0,0 +1,10 @@
1+echo off
2+
3+set EXEDIR=%~dp0
4+set CLASSPATH=%EXEDIR%\ConsolePicocalc-0.1.jar;%EXEDIR%\JPicosheet-0.1.4.jar
5+
6+echo %CLASSPATH%
7+
8+java -classpath %CLASSPATH% com.nissy_ki_chi.ConsolePicocalc.ConsolePicocalc
9+
10+pause
--- trunk/コマンド検討.txt (nonexistent)
+++ trunk/コマンド検討.txt (revision 8)
@@ -0,0 +1,91 @@
1+コマンド
2+
3+●●ドット「.」で始まる場合、コマンドである。
4+
5+---------------Book用
6+
7+.book.add ブック名
8+新しいブックの作成
9+
10+.book.current ブック名
11+カレントブックの変更
12+
13+.book.list
14+ブックの一覧を表示
15+
16+.book.functions
17+カレントブックで使用可能な関数一覧を表示
18+
19+.book.load
20+カレントブックに指定したファイルの内容を読み込む
21+
22+.book.save
23+カレントブックの内容を指定したファイルに書き込み
24+
25+
26+---------------Sheet用
27+
28+.sheet.add シート名
29+カレントブックに新しいシートを追加
30+
31+.sheet.list
32+カレントブックのシート一覧を表示
33+
34+.sheet.current シート名
35+カレントシートの変更
36+
37+
38+---------------Cell用
39+.list
40+カレントシートのセル一覧を表示
41+
42+
43+---------------Group用
44+.group.list
45+カレントシートのグループ一覧を表示
46+
47+.group.list.cells グループ名
48+カレントシートの指定したグループに属するセル一覧を表示
49+
50+.group.add グループ名
51+カレントシートに新しいグループを追加
52+
53+.group.delete グループ名
54+カレントシートのグループを削除
55+
56+.group.cells.add グループ名 セル名 セル名...
57+カレントシートの指定したグループに指定したセルを追加
58+
59+.group.cells.remove グループ名 セル名 セル名...
60+カレントシートの指定したグループから指定したセルを削除
61+
62+
63+
64+---------------Table用
65+
66+.list.tables
67+カレントシートのテーブル一覧を表示
68+
69+.list.table.cells テーブル名
70+カレントシートの指定したテーブルに属するセル一覧を表示
71+
72+
73+
74+●●ドットで始まらない場合、カレントブックのカレントシートにあるセルに対する操作である
75+
76+<セル名>
77+セルの値を表示する
78+
79+<セル名> formula
80+セルの式を表示する。セルが式でない場合エラー。
81+
82+<セル名>=値
83+セルに値をセットする。
84+式をセットする場合、<セル名>==式 とイコールを続けて書く。
85+
86+<セル名>.label ラベル
87+セルにラベルをセットする
88+
89+
90+
91+
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
--- trunk/src/com/nissy_ki_chi/ConsolePicocalc/ConsolePicocalc.java (nonexistent)
+++ trunk/src/com/nissy_ki_chi/ConsolePicocalc/ConsolePicocalc.java (revision 8)
@@ -0,0 +1,185 @@
1+package com.nissy_ki_chi.ConsolePicocalc;
2+
3+import java.io.BufferedReader;
4+import java.io.IOException;
5+import java.io.InputStreamReader;
6+import java.io.UnsupportedEncodingException;
7+import java.lang.reflect.Array;
8+import java.nio.file.Files;
9+import java.nio.file.Paths;
10+import java.util.ArrayList;
11+import java.util.HashMap;
12+import java.util.Map;
13+import java.util.TreeSet;
14+
15+import com.nissy_ki_chi.jpicosheet.core.Book;
16+import com.nissy_ki_chi.jpicosheet.core.Sheet;
17+
18+public class ConsolePicocalc {
19+
20+
21+// Map<String, Book> _books = new HashMap<String, Book>();
22+// String _bookCommand.setCurrentBook(null;
23+
24+ BookCommand _bookCommand = new BookCommand();
25+ SheetCommand _sheetCommand = new SheetCommand();
26+ CellCommand _cellCommand = new CellCommand();
27+ GroupCommand _groupCommand = new GroupCommand();
28+ TableCommand _tableCommand = new TableCommand();
29+
30+ /**
31+ * @param args
32+ */
33+ public static void main(String[] args) {
34+ // TODO 自動生成されたメソッド・スタブ
35+
36+ ConsolePicocalc cp = new ConsolePicocalc();
37+ String filePath = null;
38+ if (0 < args.length) {
39+ filePath = args[0];
40+ }
41+ cp.start(filePath);
42+
43+ }
44+
45+
46+ public void ConcolePicocalc() {
47+
48+ }
49+
50+
51+ public void start(String filePath) {
52+
53+ Book book = null;
54+ // 引数としてファイルが渡された場合はそれをロードする
55+ if (filePath != null && Files.exists(Paths.get(filePath))) {
56+ _bookCommand.setCurrentBookName("myBook");
57+ book = new Book(_bookCommand.getCurrentBookName());
58+ _bookCommand.load(book, filePath);
59+ } else {
60+ // そうでない場合はデフォルトシートを作成
61+ book = new Book("myBook");
62+ book.addSheet("Sheet1");
63+ this._bookCommand.setCurrentBookName(book.getName());
64+ }
65+ this._bookCommand.getBooks().put(book.getName(), book);
66+
67+ // コンソールから1行づつ読み込んで処理する
68+ BufferedReader br = null;
69+ try {
70+ br = new BufferedReader(new InputStreamReader(System.in, "JISAutoDetect"));
71+ } catch (UnsupportedEncodingException e1) {
72+ e1.printStackTrace();
73+ }
74+
75+ try {
76+ String line;
77+ while(true) {
78+ try {
79+ // プロンプト表示
80+ Book currentBook = _bookCommand.getCurrentBook();
81+ System.out.print("[" + _bookCommand.getCurrentBookName() + "]" + currentBook.getResolver().getCurrentSheet().getName() + ": ");
82+
83+ // 入力がなくなったら終了
84+ if ((line = br.readLine().trim()) == null) {
85+ break;
86+ }
87+
88+ // 未入力だったら何もしない
89+ if (line.length() == 0) {
90+ continue;
91+ }
92+
93+ // 終了コマンドが入力されたら終了
94+ if (line.equals(".quit")) {
95+ break;
96+ }
97+
98+ // 1文字目がドットか否かでコマンドもしくはセル入力を判断
99+ if (line.charAt(0) == '.') {
100+ processCommand(line);
101+ } else {
102+ _cellCommand.processCell(_bookCommand.getCurrentBook(), line);
103+ }
104+ } catch (Exception e) {
105+ e.printStackTrace();
106+ }
107+ }
108+ } finally {
109+ try {
110+ br.close();
111+ } catch (IOException e) {
112+ e.printStackTrace();
113+ }
114+ }
115+ }
116+
117+
118+ private void processCommand(String line) {
119+
120+ String cmdStr;
121+ String argStr;
122+ int idx = line.indexOf(" ");
123+ if (0 < idx) {
124+ cmdStr = line.substring(1, line.indexOf(" "));
125+ if (idx < line.length()) {
126+ argStr = line.substring(idx+1);
127+ } else {
128+ argStr = "";
129+ }
130+ } else {
131+ cmdStr = line.substring(1);
132+ argStr = "";
133+ }
134+ String[] cmdArr = cmdStr.split("\\.");
135+
136+ if (cmdArr[0].equals("book")) {
137+ _bookCommand.processBookCmd(cmdArr, argStr);
138+ return;
139+ }
140+
141+ if (cmdArr[0].equals("sheet")) {
142+ Book book = _bookCommand.getCurrentBook();
143+ _sheetCommand.processSheetCmd(book, cmdArr, argStr);
144+ return;
145+ }
146+
147+ if (cmdArr[0].equals("group")) {
148+ Sheet sheet = _bookCommand.getCurrentBook().getResolver().getCurrentSheet();
149+ _groupCommand.processGroupCmd(sheet, cmdArr, argStr);
150+ return;
151+ }
152+
153+ if (cmdArr[0].equals("table")) {
154+ Sheet sheet = _bookCommand.getCurrentBook().getResolver().getCurrentSheet();
155+ _tableCommand.processTableCmd(sheet, cmdArr, argStr);
156+ return;
157+ }
158+
159+ if (cmdArr[0].equals("list") && cmdArr.length == 1) {
160+ Sheet sheet = _bookCommand.getCurrentBook().getResolver().getCurrentSheet();
161+ _cellCommand.listCells(sheet);
162+ _groupCommand.listGroups(sheet);
163+ _tableCommand.listTables(sheet);
164+ return;
165+ } else {
166+ Sheet sheet = _bookCommand.getCurrentBook().getResolver().getCurrentSheet();
167+ _cellCommand.processListCmd(sheet, cmdArr, argStr);
168+ return;
169+ }
170+
171+
172+ }
173+
174+ private void listSheets(Book book) {
175+ TreeSet<String> sheetNames = new TreeSet<String>();
176+ for (Sheet s: book.getSheets()) {
177+ sheetNames.add(s.getName());
178+ }
179+ for (String sName: sheetNames) {
180+ System.out.println(sName);
181+ }
182+ }
183+
184+
185+}
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
--- trunk/src/com/nissy_ki_chi/ConsolePicocalc/Utils.java (nonexistent)
+++ trunk/src/com/nissy_ki_chi/ConsolePicocalc/Utils.java (revision 8)
@@ -0,0 +1,52 @@
1+package com.nissy_ki_chi.ConsolePicocalc;
2+
3+import com.nissy_ki_chi.jpicosheet.core.Cell;
4+import com.nissy_ki_chi.jpicosheet.core.Group;
5+import com.nissy_ki_chi.jpicosheet.core.Cell.CellType;
6+
7+public class Utils {
8+
9+ /**
10+ * セルを表示します。
11+ * @param c 表示するセル
12+ */
13+ static void printCell(Cell c) {
14+ printCellNoLn(c);
15+ System.out.println("");
16+ }
17+
18+ /**
19+ * セルを表示します。セル表示後改行しません。
20+ * @param c 表示するセル
21+ */
22+ static void printCellNoLn(Cell c) {
23+ if (c.getCellType() == CellType.FORMULA) {
24+ System.out.print(c.getName() + "\t" + c.getFormula() + "\t" + c.getValueString());
25+ } else {
26+ System.out.print(c.getName() + "\t" + c.getValueString());
27+ }
28+ }
29+
30+ /**
31+ * 渡された文字列の先頭から、最初のスペースの前までの文字列を返します。
32+ * @param argStr
33+ * @return
34+ */
35+ static String getTargetHeadFromArgStr(String argStr) {
36+ // argStr からグループ名と追加するセル名の配列を得る
37+ int gnIdx = argStr.indexOf(" ");
38+ return argStr.substring(0, gnIdx);
39+ }
40+
41+ /**
42+ * 渡された文字列に含まれる最初のスペース以降の文字列から、カンマで区切られた文字列を配列にして返します。
43+ * @param argStr
44+ * @return
45+ */
46+ static String[] getTargetBodyFromArgStr(String argStr) {
47+ // argStr からグループ名と追加するセル名の配列を得る
48+ int gnIdx = argStr.indexOf(" ");
49+ String body = argStr.substring(gnIdx + 1);
50+ return body.trim().split(",");
51+ }
52+}
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
--- trunk/src/com/nissy_ki_chi/ConsolePicocalc/TableCommand.java (nonexistent)
+++ trunk/src/com/nissy_ki_chi/ConsolePicocalc/TableCommand.java (revision 8)
@@ -0,0 +1,36 @@
1+package com.nissy_ki_chi.ConsolePicocalc;
2+
3+import com.nissy_ki_chi.jpicosheet.core.Cell;
4+import com.nissy_ki_chi.jpicosheet.core.Sheet;
5+import com.nissy_ki_chi.jpicosheet.core.Table;
6+
7+public class TableCommand {
8+
9+ void listTableCells(Sheet currentSheet, String tableName) {
10+ Table t = currentSheet.getTable(tableName);
11+ int rowSize = t.getRowSize();
12+ int colSize = t.getColSize();
13+ for (int rowIdx = 0; rowIdx < rowSize; rowIdx++) {
14+ for (int colIdx = 0; colIdx < colSize; colIdx++) {
15+ Cell c = t.getCell(rowIdx, colIdx);
16+ Utils.printCellNoLn(c);
17+ if (colIdx < colSize -1) {
18+ System.out.println("\t");
19+ }
20+ }
21+ System.out.println("");
22+ }
23+ }
24+
25+ void listTables(Sheet currentSheet) {
26+ for (Table t: currentSheet.getTables()) {
27+ System.out.println(t.getName());
28+ }
29+ }
30+
31+ void processTableCmd(Sheet sheet, String[] cmdArr, String argStr) {
32+ // TODO 自動生成されたメソッド・スタブ
33+
34+ }
35+
36+}
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
--- trunk/src/com/nissy_ki_chi/ConsolePicocalc/SheetCommand.java (nonexistent)
+++ trunk/src/com/nissy_ki_chi/ConsolePicocalc/SheetCommand.java (revision 8)
@@ -0,0 +1,36 @@
1+package com.nissy_ki_chi.ConsolePicocalc;
2+
3+import java.util.List;
4+import java.util.TreeSet;
5+
6+import com.nissy_ki_chi.jpicosheet.core.Book;
7+import com.nissy_ki_chi.jpicosheet.core.Sheet;
8+
9+public class SheetCommand {
10+
11+ public void processSheetCmd(Book book, String[] cmdArr, String argStr) {
12+
13+ // シート追加
14+ if (cmdArr[1].equals("add")) {
15+ book.addSheet(argStr);
16+ }
17+
18+ // カレントシート変更
19+ if (cmdArr[1].equals("current")) {
20+ book.getResolver().setCurrentSheet(book.getSheet(argStr));
21+ }
22+
23+ // シート名一覧
24+ if (cmdArr[1].equals("list")) {
25+ TreeSet<String> sheetNames = new TreeSet<String>();
26+ List<Sheet> sheets = book.getSheets();
27+ for (Sheet s: sheets) {
28+ sheetNames.add(s.getName());
29+ }
30+ for (String name: sheetNames) {
31+ System.out.println(name);
32+ }
33+ }
34+ }
35+
36+}
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
--- trunk/src/com/nissy_ki_chi/ConsolePicocalc/BookCommand.java (nonexistent)
+++ trunk/src/com/nissy_ki_chi/ConsolePicocalc/BookCommand.java (revision 8)
@@ -0,0 +1,131 @@
1+package com.nissy_ki_chi.ConsolePicocalc;
2+
3+import java.io.BufferedReader;
4+import java.io.BufferedWriter;
5+import java.io.FileInputStream;
6+import java.io.FileWriter;
7+import java.io.IOException;
8+import java.io.InputStreamReader;
9+import java.util.Arrays;
10+import java.util.HashMap;
11+import java.util.Map;
12+import java.util.TreeSet;
13+
14+import com.nissy_ki_chi.jpicosheet.core.Book;
15+import com.nissy_ki_chi.jpicosheet.core.ConcurrentBookWrapper;
16+import com.nissy_ki_chi.jpicosheet.util.SimpleReader;
17+import com.nissy_ki_chi.jpicosheet.util.SimpleWriter;
18+
19+public class BookCommand {
20+
21+ String getCurrentBookName() {
22+ return _currentBookName;
23+ }
24+
25+ void setCurrentBookName(String bookName) {
26+ this._currentBookName = bookName;
27+ }
28+
29+ Map<String, Book> getBooks() {
30+ return _books;
31+ }
32+
33+ Book getCurrentBook() {
34+ return this._books.get(_currentBookName);
35+ }
36+
37+ Book getBook(String bookName) {
38+ return this._books.get(bookName);
39+ }
40+
41+ Map<String, Book> _books = new HashMap<String, Book>();
42+ String _currentBookName = null;
43+
44+ void processBookCmd(String[] cmdArr, String argStr) {
45+
46+ if (cmdArr.length == 1) {
47+ return;
48+ }
49+
50+ // 新しいブックの追加
51+ if (cmdArr[1].equals("add")) {
52+ Book newBook = new Book(argStr);
53+ newBook.addSheet("sheet1");
54+ _books.put(newBook.getName(), newBook);
55+ }
56+
57+ // カレントブックの変更
58+ if (cmdArr[1].equals("current")) {
59+ if (_books.containsKey(argStr)) {
60+ this._currentBookName = argStr;
61+ }
62+ }
63+
64+ // ブックの一覧を表示
65+ if (cmdArr[1].equals("list")) {
66+ for (String bookName: new TreeSet<String>(_books.keySet())) {
67+ System.out.println(bookName);
68+ }
69+ }
70+
71+ // カレントブックで使用可能な関数一覧を表示
72+ if (cmdArr[1].equals("functions")) {
73+ String[] functionNames = _books.get(_currentBookName).getFunctionNames();
74+ Arrays.sort(functionNames);
75+ for (String funcName: Arrays.asList(functionNames)) {
76+ System.out.println(funcName);
77+ }
78+ }
79+
80+ // ファイル読み込み
81+ if (cmdArr[1].equals("load")) {
82+ String filePath = argStr;
83+ Book book = _books.get(_currentBookName);
84+ load(book, filePath);
85+ }
86+
87+ // ファイル書き込み
88+ if (cmdArr[1].equals("save")) {
89+ String filePath = argStr;
90+ Book book = _books.get(_currentBookName);
91+ SimpleWriter sw = new SimpleWriter(new ConcurrentBookWrapper(book));
92+ BufferedWriter w = null;
93+ try {
94+ w = new BufferedWriter(new FileWriter(filePath));
95+ sw.write(w);
96+ } catch (Exception e) {
97+ e.printStackTrace();
98+ } finally {
99+ if (w != null) {
100+ try {
101+ w.close();
102+ } catch (IOException e) {
103+ e.printStackTrace();
104+ }
105+ }
106+ }
107+ }
108+
109+ }
110+
111+ void load(Book book, String filePath) {
112+ SimpleReader sr = new SimpleReader(new ConcurrentBookWrapper(book));
113+ BufferedReader fileBR = null;
114+ try {
115+ fileBR = new BufferedReader(new InputStreamReader(new FileInputStream(filePath)));
116+ sr.Read(fileBR);
117+ } catch (Exception e) {
118+ e.printStackTrace();
119+ } finally {
120+ if (fileBR != null) {
121+ try {
122+ fileBR.close();
123+ } catch (IOException e) {
124+ e.printStackTrace();
125+ }
126+ }
127+ }
128+
129+ }
130+
131+}
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
--- trunk/src/com/nissy_ki_chi/ConsolePicocalc/GroupCommand.java (nonexistent)
+++ trunk/src/com/nissy_ki_chi/ConsolePicocalc/GroupCommand.java (revision 8)
@@ -0,0 +1,95 @@
1+package com.nissy_ki_chi.ConsolePicocalc;
2+
3+import java.util.Set;
4+import java.util.TreeMap;
5+import java.util.TreeSet;
6+
7+import com.nissy_ki_chi.jpicosheet.core.Cell;
8+import com.nissy_ki_chi.jpicosheet.core.Group;
9+import com.nissy_ki_chi.jpicosheet.core.Sheet;
10+
11+public class GroupCommand {
12+
13+ void processGroupCmd(Sheet sheet, String[] cmdArr, String argStr) {
14+
15+ // このシートのグループ一覧表示
16+ if (cmdArr[1].equals("list") && cmdArr.length == 2) {
17+ Set<Group> groups = sheet.getGroups();
18+ TreeSet<String> gNames = new TreeSet<String>();
19+ for (Group g: groups) {
20+ gNames.add(g.getName());
21+ }
22+ for (String s: gNames) {
23+ System.out.println(s);
24+ }
25+ return;
26+ }
27+
28+ // 指定グループ内のセル表示
29+ if (cmdArr[1].equals("list") && cmdArr[2].equals("cells")) {
30+ Group group = sheet.getGroup(argStr);
31+ TreeMap<String, Cell> tCell = new TreeMap<String, Cell>();
32+ for (Cell c: group.getCells()) {
33+ tCell.put(c.getName(), c);
34+ }
35+ for (Cell c: tCell.values()) {
36+ Utils.printCell(c);
37+ }
38+ }
39+
40+ // グループ追加
41+ if (cmdArr[1].equals("add")) {
42+ sheet.addGroup(argStr);
43+ }
44+
45+ // グループ削除
46+ if (cmdArr[1].equals("delete")) {
47+ if (sheet.groupExists(argStr)) {
48+ sheet.deleteGroup(argStr);
49+ }
50+ }
51+
52+ // グループにセル追加
53+ if (cmdArr[1].equals("cells") && cmdArr[2].equals("add")) {
54+
55+ Group group = sheet.getGroup(Utils.getTargetHeadFromArgStr(argStr));
56+ String[] cellNamesArr = Utils.getTargetBodyFromArgStr(argStr);
57+ // セルをグループに追加
58+ for (String cellName: cellNamesArr) {
59+ cellName = cellName.trim();
60+ if (cellName.length() > 0) {
61+ group.addCell(cellName);
62+ }
63+ }
64+ }
65+
66+ // グループからセル削除
67+ if (cmdArr[1].equals("cells") && cmdArr[2].equals("remove")) {
68+
69+ Group group = sheet.getGroup(Utils.getTargetHeadFromArgStr(argStr));
70+ String[] cellNamesArr = Utils.getTargetBodyFromArgStr(argStr);
71+ // セルをグループから削除
72+ for (String cellName: cellNamesArr) {
73+ cellName = cellName.trim();
74+ if (cellName.length() > 0) {
75+ group.removeCell(cellName);
76+ }
77+ }
78+
79+ }
80+
81+ }
82+
83+ void listGroups(Sheet sheet) {
84+ for (Group g: sheet.getGroups() ) {
85+ System.out.println(g.getName());
86+ }
87+ }
88+
89+ void listGroupCells(Sheet sheet, String groupName) {
90+ for (Cell c: new TreeSet<Cell>(sheet.getGroup(groupName).getCells())) {
91+ Utils.printCell(c);
92+ }
93+ }
94+
95+}
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
--- trunk/src/com/nissy_ki_chi/ConsolePicocalc/CellCommand.java (nonexistent)
+++ trunk/src/com/nissy_ki_chi/ConsolePicocalc/CellCommand.java (revision 8)
@@ -0,0 +1,66 @@
1+package com.nissy_ki_chi.ConsolePicocalc;
2+
3+import java.util.TreeSet;
4+
5+import com.nissy_ki_chi.jpicosheet.core.Book;
6+import com.nissy_ki_chi.jpicosheet.core.Cell;
7+import com.nissy_ki_chi.jpicosheet.core.Sheet;
8+
9+public class CellCommand {
10+
11+ void processListCmd(Sheet sheet, String[] cmdArr, String argStr) {
12+
13+ if (cmdArr[1].equals("list") && cmdArr.length == 2) {
14+ listCells(sheet);
15+ }
16+
17+ if (cmdArr[1].equals("delete") && cmdArr.length == 2) {
18+ deleteCells(sheet, argStr);
19+ }
20+
21+ }
22+
23+ private void deleteCells(Sheet sheet, String argStr) {
24+
25+ for (String cellName: argStr.split(",")) {
26+ sheet.deleteCell(cellName.trim());
27+ }
28+ }
29+
30+ void listCells(Sheet currentSheet) {
31+ for (Cell c: new TreeSet<Cell>(currentSheet.getCells())) {
32+ Utils.printCell(c);
33+ }
34+ }
35+
36+
37+ void processCell(Book book, String line) {
38+
39+ int idx = line.indexOf("=");
40+ // "="が含まれている場合、セルへの値セット
41+ if ((1 <= idx) && (idx < (line.length() -1))) {
42+ String cellName = line.substring(0, idx);
43+ String cellValue = line.substring(idx + 1);
44+ System.out.println("セル名: " + cellName + " セル値: " + cellValue);
45+
46+ Cell targetCell;
47+ if (book.getResolver().isFullyQualifiedName(cellName)) {
48+ String sheetName = book.getResolver().getSheetNameFromFullyQualifiedName(cellName);
49+ targetCell = book.getSheet(sheetName).addCell(cellName);
50+ targetCell.setValue(cellValue);
51+ } else {
52+ targetCell = book.getResolver().getCurrentSheet().addCell(cellName);
53+ targetCell.setValue(cellValue);
54+ }
55+ Utils.printCell(targetCell);
56+ } else {
57+ // ”=”が含まれない場合、セル値の表示
58+ if (book.getResolver().cellExists(line)) {
59+ Utils.printCell(book.getResolver().getCell(line));
60+ } else {
61+ System.out.println(line + "というセルはありません。");
62+ }
63+ }
64+ }
65+
66+}
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property