Search in sources :

Example 1 with Budget

use of jgnash.engine.budget.Budget in project jgnash by ccavanaugh.

the class BudgetManagerDialogController method loadBudgetListView.

private void loadBudgetListView() {
    final Engine engine = EngineFactory.getEngine(EngineFactory.DEFAULT);
    Objects.requireNonNull(engine);
    // Create a sorted List of active budgets
    final List<Budget> budgetList = engine.getBudgetList();
    Collections.sort(budgetList);
    budgetListView.getItems().setAll(budgetList);
}
Also used : Budget(jgnash.engine.budget.Budget) Engine(jgnash.engine.Engine)

Example 2 with Budget

use of jgnash.engine.budget.Budget in project jgnash by ccavanaugh.

the class BudgetManagerDialogController method handleNewAction.

@FXML
private void handleNewAction() {
    final Engine engine = EngineFactory.getEngine(EngineFactory.DEFAULT);
    Objects.requireNonNull(engine);
    final Budget newBudget = new Budget();
    String name = resources.getString("Word.NewBudget");
    int count = 2;
    while (true) {
        boolean nameIsUnique = true;
        for (final Budget budget : engine.getBudgetList()) {
            if (budget.getName().equals(name)) {
                name = resources.getString("Word.NewBudget") + " " + count;
                count++;
                nameIsUnique = false;
            }
        }
        if (nameIsUnique) {
            break;
        }
    }
    newBudget.setName(name);
    newBudget.setDescription(resources.getString("Word.NewBudget"));
    if (!engine.addBudget(newBudget)) {
        StaticUIMethods.displayError(resources.getString("Message.Error.NewBudget"));
    }
}
Also used : Budget(jgnash.engine.budget.Budget) Engine(jgnash.engine.Engine) FXML(javafx.fxml.FXML)

Example 3 with Budget

use of jgnash.engine.budget.Budget in project jgnash by ccavanaugh.

the class BudgetManagerDialogController method handleDeleteAction.

@FXML
private void handleDeleteAction() {
    final Engine engine = EngineFactory.getEngine(EngineFactory.DEFAULT);
    Objects.requireNonNull(engine);
    final List<Budget> selected = new ArrayList<>(budgetListView.getSelectionModel().getSelectedItems());
    if (!selected.isEmpty()) {
        final String message = selected.size() == 1 ? resources.getString("Message.ConfirmBudgetDelete") : resources.getString("Message.ConfirmMultipleBudgetDelete");
        if (StaticUIMethods.showConfirmationDialog(resources.getString("Title.Confirm"), message).getButtonData() == ButtonBar.ButtonData.YES) {
            selected.stream().filter(value -> !engine.removeBudget(value)).forEach(value -> StaticUIMethods.displayError(resources.getString("Message.Error.BudgetRemove")));
        }
    }
}
Also used : Button(javafx.scene.control.Button) Engine(jgnash.engine.Engine) ListView(javafx.scene.control.ListView) EngineFactory(jgnash.engine.EngineFactory) ResourceUtils(jgnash.util.ResourceUtils) MessageBus(jgnash.engine.message.MessageBus) ChannelEvent(jgnash.engine.message.ChannelEvent) ArrayList(java.util.ArrayList) Level(java.util.logging.Level) Budget(jgnash.engine.budget.Budget) ResourceBundle(java.util.ResourceBundle) MessageChannel(jgnash.engine.message.MessageChannel) MessageListener(jgnash.engine.message.MessageListener) ButtonBar(javafx.scene.control.ButtonBar) StaticUIMethods(jgnash.uifx.StaticUIMethods) TextInputDialog(jgnash.uifx.control.TextInputDialog) FXMLUtils(jgnash.uifx.util.FXMLUtils) Logger(java.util.logging.Logger) Objects(java.util.Objects) Platform(javafx.application.Platform) FXML(javafx.fxml.FXML) List(java.util.List) SelectionMode(javafx.scene.control.SelectionMode) Stage(javafx.stage.Stage) Optional(java.util.Optional) Collections(java.util.Collections) Message(jgnash.engine.message.Message) ArrayList(java.util.ArrayList) Budget(jgnash.engine.budget.Budget) Engine(jgnash.engine.Engine) FXML(javafx.fxml.FXML)

Example 4 with Budget

use of jgnash.engine.budget.Budget in project jgnash by ccavanaugh.

the class HistoricalBudgetDialogController method handleOkAction.

@FXML
private void handleOkAction() {
    final Engine engine = EngineFactory.getEngine(EngineFactory.DEFAULT);
    Objects.requireNonNull(engine);
    final Budget budget = BudgetFactory.buildAverageBudget(periodComboBox.getValue(), nameTextField.getText(), roundupCheckBox.isSelected());
    new Thread(() -> {
        if (!engine.addBudget(budget)) {
            StaticUIMethods.displayError(resources.getString("Message.Error.NewBudget"));
        }
    }).start();
    ((Stage) okButton.getScene().getWindow()).close();
}
Also used : Stage(javafx.stage.Stage) Budget(jgnash.engine.budget.Budget) Engine(jgnash.engine.Engine) FXML(javafx.fxml.FXML)

Example 5 with Budget

use of jgnash.engine.budget.Budget in project jgnash by ccavanaugh.

the class BudgetPeriodModel method updateBudgetPeriod.

private void updateBudgetPeriod(final Message message) {
    Budget updatedBudget = message.getObject(MessageProperty.BUDGET);
    if (updatedBudget.equals(budget)) {
        Account account = message.getObject(MessageProperty.ACCOUNT);
        fireUpdate(account.getAncestors());
    }
}
Also used : Account(jgnash.engine.Account) Budget(jgnash.engine.budget.Budget)

Aggregations

Budget (jgnash.engine.budget.Budget)14 Engine (jgnash.engine.Engine)11 FXML (javafx.fxml.FXML)5 Stage (javafx.stage.Stage)2 Account (jgnash.engine.Account)2 TextInputDialog (jgnash.uifx.control.TextInputDialog)2 Dimension (java.awt.Dimension)1 BigDecimal (java.math.BigDecimal)1 ArrayList (java.util.ArrayList)1 Collections (java.util.Collections)1 List (java.util.List)1 Objects (java.util.Objects)1 Optional (java.util.Optional)1 ResourceBundle (java.util.ResourceBundle)1 ExecutionException (java.util.concurrent.ExecutionException)1 Level (java.util.logging.Level)1 Logger (java.util.logging.Logger)1 Preferences (java.util.prefs.Preferences)1 Platform (javafx.application.Platform)1 Button (javafx.scene.control.Button)1