Index: samples/total/src/SYLKProducer.dart |
diff --git a/client/samples/total/src/SYLKReader.dart b/samples/total/src/SYLKProducer.dart |
similarity index 59% |
copy from client/samples/total/src/SYLKReader.dart |
copy to samples/total/src/SYLKProducer.dart |
index 2eb4d62630c2420e0a35176c5f81bf6306bbb7d3..13f25fae9767267757bc7ce1558fadbfc3a4ec12 100644 |
--- a/client/samples/total/src/SYLKReader.dart |
+++ b/samples/total/src/SYLKProducer.dart |
@@ -2,106 +2,39 @@ |
// for details. All rights reserved. Use of this source code is governed by a |
// BSD-style license that can be found in the LICENSE file. |
-class SYLKReader extends Reader { |
+class SYLKProducer { |
+ const SYLKProducer(); |
+ |
+ String listSamples() { |
+ return '''[ |
+"empty", |
+"mortgage", |
+"insertTest", |
+"collatz", |
+]'''; |
+ } |
+ |
+ String makeExample(String id) { |
- SYLKReader() : super() { } |
+ switch (id) { |
+ case 'mortgage': |
+ return Strings.join(_makeMortgageExample(), '\n'); |
- void loadSpreadsheet(Spreadsheet spreadsheet, List<String> sylk) { |
- int row, col; |
- String contents; |
- CellLocation lastLocation; |
+ case 'insertTest': |
+ return Strings.join(_makeInsertTest(), '\n'); |
- for (int i = 0; i < sylk.length; i++) { |
- List<String> parts = StringUtils.split(sylk[i], StringUtils.SEMICOLON); |
- String cmd = parts[0]; |
- switch (cmd) { |
- case "ID": |
- break; |
- case "B": |
- for (int j = 1; j < parts.length; j++) { |
- String part = parts[j]; |
- if (part.startsWith("X")) { |
- col = Math.parseInt(part.substring(1, part.length)); |
- spreadsheet.setColumnCount(col); |
- } else if (part.startsWith("Y")) { |
- row = Math.parseInt(part.substring(1, part.length)); |
- spreadsheet.setRowCount(row); |
- } |
- } |
- break; |
- case "C": |
- row = -1; |
- col = -1; |
- contents = ""; |
- for (int j = 1; j < parts.length; j++) { |
- String part = parts[j]; |
- if (part.startsWith("Y")) { |
- row = Math.parseInt(part.substring(1, part.length)); |
- } else if (part.startsWith("X")) { |
- col = Math.parseInt(part.substring(1, part.length)); |
- } if (part.startsWith("K")) { |
- contents = StringUtils.stripQuotes(part.substring(1, part.length)); |
- } |
- } |
- if (row == -1) { |
- throw new RuntimeException("No row (Y) specified in ${sylk[i]}"); |
- } |
- if (col == -1) { |
- throw new RuntimeException("No col (X) specified in ${sylk[i]}"); |
- } |
- lastLocation = new CellLocation(spreadsheet, new RowCol(row, col)); |
- spreadsheet.execute(new SetCellContentsCommand(lastLocation, contents)); |
- break; |
- case "F": |
- Cell lastCell = lastLocation.getCell(); |
- if (lastCell == null) { |
- break; |
- } |
- Style style = lastCell.style; |
- for (int j = 1; j < parts.length; j++) { |
- String part = parts[j]; |
- if (part.startsWith("P")) { |
- int formatIndex = Math.parseInt(part.substring(1, part.length)); |
- style = style.setNumericFormatByIndex(formatIndex); |
- } else if (part.startsWith("S")) { |
- switch (part[1]) { |
- case "I"[0]: |
- style = style.setTextFormatByIndex(Style.ITALIC); |
- break; |
- case "D"[0]: |
- style = style.setTextFormatByIndex(Style.BOLD); |
- break; |
- } |
- } else if (part.startsWith("F")) { |
- // F;...;F<format><decimal_places><alignment> |
- // Only handle alignment for now |
- switch (part[3]) { |
- case "L"[0]: |
- style = style.setTextAlignment(Style.LEFT); |
- break; |
- case "C"[0]: |
- style = style.setTextAlignment(Style.CENTER); |
- break; |
- case "R"[0]: |
- style = style.setTextAlignment(Style.RIGHT); |
- break; |
- } |
- } |
- } |
- spreadsheet.setCellStyle(lastLocation.rowCol, style); |
- break; |
- } |
+ case 'collatz': |
+ return Strings.join(_makeCollatzTest(), '\n'); |
+ |
+ default: |
+ return Strings.join(_makeEmpty(), '\n'); |
} |
} |
- List<String> makeExample(String id) { |
- if (id == "mortgage") { |
- return _makeMortgageExample(); |
- } else if (id == "insertTest") { |
- return _makeInsertTest(); |
- } else if (id == "collatz") { |
- return _makeCollatzTest(); |
- } |
+ List<String> _makeEmpty() { |
+ List<String> sylk = new List<String>(); |
+ sylk.add('ID;P'); |
+ return sylk; |
} |
List<String> _makeCollatzTest() { |