Skip to content
Snippets Groups Projects
SelectBudgetController.java 1.94 KiB
Newer Older
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;
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;

public class SelectBudgetController {

  @FXML
  private ListView<String> budgetListView;

  private BudgetRegister budgetRegister;

  private ObservableList<String> budgetList;

  @FXML
  public void initialize() throws IOException {
    try {
      if (FileHandlingBudget.isBudgetRegisterEmpty()) {
        budgetRegister = new BudgetRegister();
      } else {
        budgetRegister = FileHandlingBudget.readBudgetArchive("");
      }
    } catch (IOException ioe) {
      ioe.printStackTrace();
    }
    System.out.println("budget register is: " + budgetRegister);
    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);
    FileHandlingBudget.updateSelectedBudget(name);

    final Node source = (Node) event.getSource();
    ((Stage) source.getScene().getWindow()).close();
  }

  @FXML
  public void exitWindow(ActionEvent event) throws IOException {
    FileHandlingBudget.updateSelectedBudget("");
    final Node source = (Node) event.getSource();
    ((Stage) source.getScene().getWindow()).close();
  }
}