Newer
Older
Harry Linrui XU
committed
package no.ntnu.idatt1002.demo.controller;
import java.io.IOException;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.scene.Node;
Harry Linrui XU
committed
import javafx.scene.control.Button;
import javafx.scene.control.Label;
Harry Linrui XU
committed
import javafx.scene.control.ListView;
import javafx.scene.input.MouseButton;
import javafx.stage.Stage;
import no.ntnu.idatt1002.demo.data.Budget.BudgetRegister;
import no.ntnu.idatt1002.demo.data.Budget.FileHandlingBudget;
import no.ntnu.idatt1002.demo.data.Budget.FileHandlingBudgetArchive;
import no.ntnu.idatt1002.demo.data.Budget.FileHandlingSelectedBudget;
Harry Linrui XU
committed
public class SelectBudgetController {
Harry Linrui XU
committed
@FXML
Button okBtn;
@FXML
private Label errorMsg;
Harry Linrui XU
committed
@FXML
private ListView<String> budgetListView;
private BudgetRegister budgetRegister;
private ObservableList<String> budgetList;
@FXML
public void initialize() throws IOException {
Harry Linrui XU
committed
okBtn.addEventFilter(
ActionEvent.ACTION, event -> {
if (budgetListView.getSelectionModel().getSelectedItem() == null) {
errorMsg.setOpacity(1);
event.consume();
}
});
Harry Linrui XU
committed
try {
if (FileHandlingBudgetArchive.isBudgetRegisterEmpty()) {
Harry Linrui XU
committed
budgetRegister = new BudgetRegister();
} else {
budgetRegister = FileHandlingBudgetArchive.readBudgetArchive("");
Harry Linrui XU
committed
}
} catch (IOException ioe) {
ioe.printStackTrace();
}
System.out.println("budget register is: " + budgetRegister);
Harry Linrui XU
committed
budgetList = FXCollections.observableList(budgetRegister.getBudgetNames());
budgetListView.setItems(budgetList);
budgetListView.setOnMouseClicked(mouseEvent-> {
if(mouseEvent.getButton().equals(MouseButton.PRIMARY)){
if(mouseEvent.getClickCount() == 2){
System.out.println("Double clicked");
}
}
});
}
@FXML
public void selectBudget(ActionEvent event) throws IOException {
String name = budgetListView.getSelectionModel().getSelectedItem();
System.out.println(name);
FileHandlingSelectedBudget.updateSelectedBudget(name);
Harry Linrui XU
committed
final Node source = (Node) event.getSource();
((Stage) source.getScene().getWindow()).close();
}
@FXML
public void exitWindow(ActionEvent event) throws IOException {
Harry Linrui XU
committed
FileHandlingSelectedBudget.clearSelectedBudget();
Harry Linrui XU
committed
final Node source = (Node) event.getSource();
((Stage) source.getScene().getWindow()).close();
}
}