• R/O
  • SSH
  • HTTPS

提交

標籤
無標籤

Frequently used words (click to add to your profile)

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

Commit MetaInfo

修訂7 (tree)
時間2015-06-17 14:41:53
作者ki-chi

Log Message

プロジェクトの共用

Change Summary

差異

--- ConsolePicocalc/build.xml (nonexistent)
+++ ConsolePicocalc/build.xml (revision 7)
@@ -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
--- ConsolePicocalc/conpico.bat (nonexistent)
+++ ConsolePicocalc/conpico.bat (revision 7)
@@ -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
--- ConsolePicocalc/コマンド検討.txt (nonexistent)
+++ ConsolePicocalc/コマンド検討.txt (revision 7)
@@ -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
--- ConsolePicocalc/src/com/nissy_ki_chi/ConsolePicocalc/ConsolePicocalc.java (nonexistent)
+++ ConsolePicocalc/src/com/nissy_ki_chi/ConsolePicocalc/ConsolePicocalc.java (revision 7)
@@ -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
--- ConsolePicocalc/src/com/nissy_ki_chi/ConsolePicocalc/Utils.java (nonexistent)
+++ ConsolePicocalc/src/com/nissy_ki_chi/ConsolePicocalc/Utils.java (revision 7)
@@ -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
--- ConsolePicocalc/src/com/nissy_ki_chi/ConsolePicocalc/TableCommand.java (nonexistent)
+++ ConsolePicocalc/src/com/nissy_ki_chi/ConsolePicocalc/TableCommand.java (revision 7)
@@ -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
--- ConsolePicocalc/src/com/nissy_ki_chi/ConsolePicocalc/SheetCommand.java (nonexistent)
+++ ConsolePicocalc/src/com/nissy_ki_chi/ConsolePicocalc/SheetCommand.java (revision 7)
@@ -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
--- ConsolePicocalc/src/com/nissy_ki_chi/ConsolePicocalc/BookCommand.java (nonexistent)
+++ ConsolePicocalc/src/com/nissy_ki_chi/ConsolePicocalc/BookCommand.java (revision 7)
@@ -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
--- ConsolePicocalc/src/com/nissy_ki_chi/ConsolePicocalc/GroupCommand.java (nonexistent)
+++ ConsolePicocalc/src/com/nissy_ki_chi/ConsolePicocalc/GroupCommand.java (revision 7)
@@ -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
--- ConsolePicocalc/src/com/nissy_ki_chi/ConsolePicocalc/CellCommand.java (nonexistent)
+++ ConsolePicocalc/src/com/nissy_ki_chi/ConsolePicocalc/CellCommand.java (revision 7)
@@ -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