Advertisement
Guest User

Untitled

a guest
Feb 24th, 2020
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.85 KB | None | 0 0
  1. package sample.controllers;
  2.  
  3. import javafx.fxml.FXMLLoader;
  4. import javafx.scene.Parent;
  5. import javafx.scene.Scene;
  6. import javafx.scene.control.Button;
  7. import javafx.scene.control.Label;
  8. import javafx.scene.input.MouseEvent;
  9. import javafx.stage.Modality;
  10. import javafx.stage.Stage;
  11. import sample.Main;
  12. import sample.utils.EvaluateString;
  13.  
  14. import java.io.IOException;
  15. import java.util.ArrayList;
  16.  
  17. public class Controller {
  18.  
  19.     //get the label
  20.     public Label equation = null;
  21.     public Label result = null;
  22.  
  23.     ArrayList<String> insertions = new ArrayList<>();
  24.  
  25.     public void insertOperator(String operator){
  26.         equation.setText(equation.getText() + " " + operator + " ");
  27.         insertions.add(" " + operator + " ");
  28.     }
  29.  
  30.     public void insertNumber(String number){
  31.         equation.setText(equation.getText() + number);
  32.         insertions.add(number);
  33.     }
  34.  
  35.     public void clear(){
  36.         equation.setText("");
  37.         insertions.clear();
  38.     }
  39.  
  40.     public void deleteLast(){
  41.         if (!insertions.isEmpty()){
  42.  
  43.             //remove from the label
  44.             equation.setText(equation.getText().substring(0, (equation.getText().length() - 1) - insertions.get(insertions.size() - 1).length()));
  45.  
  46.             insertions.remove(insertions.size() - 1);
  47.  
  48.         }
  49.     }
  50.  
  51.     public double eval(String expression){
  52.         return EvaluateString.evaluate(expression);
  53.     }
  54.  
  55.     public void updateAnswer(double answer){
  56.         result.setText("= " + answer);
  57.     }
  58.  
  59.     public void openHistoryScene(){
  60.  
  61.         Stage stage = Main.getHistoryStage();
  62.  
  63.         stage.show();
  64.     }
  65.  
  66.     //Button Control Handling
  67.     public void onMouseClicked(MouseEvent mouseEvent) {
  68.  
  69.         Button button = (Button) mouseEvent.getSource();
  70.         String number = button.getText();
  71.  
  72.         switch(button.getText()){
  73.             case "1":
  74.             case "2":
  75.             case "3":
  76.             case "4":
  77.             case "5":
  78.             case "6":
  79.             case "7":
  80.             case "8":
  81.             case "9":
  82.             case "0":
  83.                 insertNumber(number);
  84.                 break;
  85.             case "CLEAR":
  86.                 clear();
  87.                 break;
  88.             case "DELETE":
  89.                 deleteLast();
  90.                 break;
  91.             case "*":
  92.             case "/":
  93.             case "+":
  94.             case "-":
  95.                 insertOperator(button.getText());
  96.                 break;
  97.             case "=":
  98.                 //Do the calculation
  99.                 double result = eval(equation.getText());
  100.                 updateAnswer(result);
  101.                 //Add to history
  102.                 HistoryController.addCalculation(equation.getText(), result);
  103.                 break;
  104.             case "HIST":
  105.                 openHistoryScene();
  106.                 break;
  107.         }
  108.  
  109.     }
  110.  
  111.  
  112. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement