1
0
mirror of https://github.com/DanilaFe/abacus synced 2026-01-12 01:55:19 +00:00

Link up the evaluation and the UI buttons.

This commit is contained in:
2017-07-31 17:17:56 -07:00
parent 27ff1a47b5
commit c655c63233
2 changed files with 39 additions and 3 deletions

View File

@@ -1,10 +1,25 @@
package org.nwapw.abacus.fx;
import javafx.fxml.FXML;
import javafx.scene.control.Button;
import javafx.scene.control.TextField;
import javafx.scene.text.Text;
import org.nwapw.abacus.Abacus;
import org.nwapw.abacus.number.NumberInterface;
import org.nwapw.abacus.tree.TreeNode;
public class AbacusController {
private static final String ERR_SYNTAX = "Syntax Error";
private static final String ERR_EVAL = "Evaluation Error";
@FXML
private Text outputText;
@FXML
private TextField inputField;
@FXML
private Button inputButton;
private Abacus abacus;
@FXML
@@ -12,4 +27,23 @@ public class AbacusController {
abacus = new Abacus();
}
@FXML
private void performCalculation(){
inputButton.setDisable(true);
TreeNode constructedTree = abacus.parseString(inputField.getText());
if(constructedTree == null){
outputText.setText(ERR_SYNTAX);
inputButton.setDisable(false);
return;
}
NumberInterface evaluatedNumber = abacus.evaluateTree(constructedTree);
if(constructedTree == null){
outputText.setText(ERR_EVAL);
inputButton.setDisable(false);
return;
}
inputButton.setDisable(false);
outputText.setText(evaluatedNumber.toString());
}
}