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.Button; import javafx.scene.control.Label; 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; public class SelectBudgetController { @FXML Button okBtn; @FXML private Label errorMsg; @FXML private ListView<String> budgetListView; private BudgetRegister budgetRegister; private ObservableList<String> budgetList; @FXML public void initialize() throws IOException { okBtn.addEventFilter( ActionEvent.ACTION, event -> { if (budgetListView.getSelectionModel().getSelectedItem() == null) { errorMsg.setOpacity(1); event.consume(); } }); try { if (FileHandlingBudgetArchive.isBudgetRegisterEmpty()) { budgetRegister = new BudgetRegister(); } else { budgetRegister = FileHandlingBudgetArchive.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); FileHandlingSelectedBudget.updateSelectedBudget(name); final Node source = (Node) event.getSource(); ((Stage) source.getScene().getWindow()).close(); } @FXML public void exitWindow(ActionEvent event) throws IOException { FileHandlingSelectedBudget.clearSelectedBudget(); final Node source = (Node) event.getSource(); ((Stage) source.getScene().getWindow()).close(); } }