예제 #1
0
 public static void parse(String command, Spreadsheet spreadsheet) { // method to parse user input
   if (command.length() == 2 || command.length() == 3) {
     System.out.println(command + " = " + spreadsheet.getValue(command) + "\n");
   } else if (command.substring(0, 4).equals("exit")) { // allows user to terminate program
     System.out.println("\nFarewell!");
     running = false;
   } else if (command.substring(0, 5).equals("print")) { // prints spreadsheet
     System.out.println();
     spreadsheet.drawSpreadsheet();
   } else if (command.contains(" = ")) { // set cell values
     spreadsheet.setValue(
         command.substring(0, command.indexOf(" = ")),
         command.substring(command.indexOf(" = ") + 3));
   } else if (command.substring(0, 5).equals("clear")) { // clears cells or spreadsheet
     if (command.length() > 5) { // clear specific cell
       spreadsheet.clearCell(command.substring(6));
     } else { // clears entire spreadsheet
       spreadsheet.clear();
     }
   } else if (command.subSequence(0, 4).equals("save")) { // saves spreadsheet to file
     try {
       PersistenceHelper.save(command.substring(5), spreadsheet);
     } catch (Exception e) { // catches file error
       System.out.println("Unable to save to path '" + command.substring(5) + "'\n");
     }
   } else if (command.subSequence(0, 4).equals("load")) { // loads spreadsheet from file
     try {
       PersistenceHelper.load(command.substring(5), spreadsheet);
     } catch (Exception e) { // catches file error
       System.out.println("Unable to load from path '" + command.substring(5) + "'\n");
     }
   } else if (command.substring(0, 5).equals("clash")) {
     try {
       spreadsheet.clash(command.substring(6));
     } catch (IOException | ClashException e) {
       System.out.println(
           "'" + command.substring(6) + "' is not recognized as a valid clan tag.\n");
     }
   } else if (command.substring(0, 7).equals("quizlet")) {
     try {
       spreadsheet.quizlet(command.substring(8));
     } catch (IOException e) {
       System.out.println(
           "Something went wrong when reading Quizlet set #" + command.substring(8) + "\n");
     }
   } else if (command.substring(0, 4).equals("sort")) {
     spreadsheet.sort(command);
   } else if (command.substring(0, 6).equals("resize")) {
     spreadsheet.resize(command.substring(7));
   } else { // notifies user of invalid command
     System.out.println("'" + command + "' is not recognized as a valid command.\n");
   }
 }
예제 #2
0
    @Override
    public Value apply(Spreadsheet s, List<Expression> args) {
      try {
        if (args.get(0).getClass() == Identifier.class) {
          Identifier id = (Identifier) args.get(0);
          s.sort(id.nm.toUpperCase().charAt(0));
          return null;
        }
        Value temp = args.get(0).evaluate(s).resolve(s);
        if (temp.getClass() == Number.class) {
          s.sort((int) (((Number) temp).v));
        }
      } catch (ClassCastException e) {
        System.out.println(
            "Error: "
                + e.getMessage()
                + "\nEnsure that the row/column only contains numbers or strings\n");
      }

      return null;
    }