mirror of
https://github.com/DanilaFe/abacus
synced 2026-01-12 01:55:19 +00:00
Add a number implementation selector box.
This commit is contained in:
@@ -72,4 +72,12 @@ public class Configuration {
|
||||
public String getNumberImplementation() {
|
||||
return numberImplementation;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the number implementation for the configuration
|
||||
* @param numberImplementation the number implementation.
|
||||
*/
|
||||
public void setNumberImplementation(String numberImplementation) {
|
||||
this.numberImplementation = numberImplementation;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -30,9 +30,13 @@ public class AbacusController {
|
||||
private TextField inputField;
|
||||
@FXML
|
||||
private Button inputButton;
|
||||
@FXML
|
||||
private ComboBox<String> numberImplementationBox;
|
||||
|
||||
private ObservableList<HistoryModel> historyData;
|
||||
|
||||
private ObservableList<String> numberImplementationOptions;
|
||||
|
||||
private Abacus abacus;
|
||||
|
||||
@FXML
|
||||
@@ -40,9 +44,15 @@ public class AbacusController {
|
||||
Callback<TableColumn<HistoryModel, String>, TableCell<HistoryModel, String>> cellFactory =
|
||||
param -> new CopyableCell<>();
|
||||
|
||||
abacus = new Abacus();
|
||||
historyData = FXCollections.observableArrayList();
|
||||
historyTable.setItems(historyData);
|
||||
numberImplementationOptions = FXCollections.observableArrayList();
|
||||
numberImplementationBox.setItems(numberImplementationOptions);
|
||||
numberImplementationBox.valueProperty().addListener((observable, oldValue, newValue)
|
||||
-> {
|
||||
abacus.getConfiguration().setNumberImplementation(newValue);
|
||||
abacus.getConfiguration().saveTo(Abacus.CONFIG_FILE);
|
||||
});
|
||||
historyTable.getSelectionModel().setCellSelectionEnabled(true);
|
||||
inputColumn.setCellFactory(cellFactory);
|
||||
inputColumn.setCellValueFactory(cell -> cell.getValue().inputProperty());
|
||||
@@ -50,6 +60,12 @@ public class AbacusController {
|
||||
parsedColumn.setCellValueFactory(cell -> cell.getValue().parsedProperty());
|
||||
outputColumn.setCellFactory(cellFactory);
|
||||
outputColumn.setCellValueFactory(cell -> cell.getValue().outputProperty());
|
||||
|
||||
abacus = new Abacus();
|
||||
numberImplementationOptions.addAll(abacus.getPluginManager().getAllNumbers());
|
||||
String actualImplementation = abacus.getConfiguration().getNumberImplementation();
|
||||
String toSelect = (numberImplementationOptions.contains(actualImplementation)) ? actualImplementation : "naive";
|
||||
numberImplementationBox.getSelectionModel().select(toSelect);
|
||||
}
|
||||
|
||||
@FXML
|
||||
|
||||
Reference in New Issue
Block a user