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:
@@ -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());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user