expanded functionality: implemented showAddNewVaultWizard and showAddExistingVaultWizard functions

This commit is contained in:
Jan-Peter Klein
2023-08-15 14:30:55 +02:00
parent 1e6d2bb6fb
commit 17778f32b9
2 changed files with 38 additions and 2 deletions

View File

@@ -22,6 +22,10 @@ public interface AddVaultWizardComponent {
@FxmlScene(FxmlFile.ADDVAULT_WELCOME)
Lazy<Scene> scene();
@FxmlScene(FxmlFile.ADDVAULT_NEW_NAME)
Lazy<Scene> sceneNew();
@FxmlScene(FxmlFile.ADDVAULT_EXISTING)
Lazy<Scene> sceneExisting();
default void showAddVaultWizard() {
Stage stage = window();
@@ -30,6 +34,20 @@ public interface AddVaultWizardComponent {
stage.show();
}
default void showAddNewVaultWizard() {
Stage stage = window();
stage.setScene(sceneNew().get());
stage.sizeToScene();
stage.show();
}
default void showAddExistingVaultWizard() {
Stage stage = window();
stage.setScene(sceneExisting().get());
stage.sizeToScene();
stage.show();
}
@Subcomponent.Builder
interface Builder {

View File

@@ -72,7 +72,14 @@ public class VaultListController implements FxController {
public Button addVaultBtn;
@Inject
VaultListController(@MainWindow Stage mainWindow, ObservableList<Vault> vaults, ObjectProperty<Vault> selectedVault, VaultListCellFactory cellFactory, AddVaultWizardComponent.Builder addVaultWizard, RemoveVaultComponent.Builder removeVaultDialogue, VaultListManager vaultListManager, ResourceBundle resourceBundle) {
VaultListController(@MainWindow Stage mainWindow, //
ObservableList<Vault> vaults, //
ObjectProperty<Vault> selectedVault, //
VaultListCellFactory cellFactory, //
AddVaultWizardComponent.Builder addVaultWizard, //
RemoveVaultComponent.Builder removeVaultDialogue, //
VaultListManager vaultListManager, //
ResourceBundle resourceBundle) {
this.mainWindow = mainWindow;
this.vaults = vaults;
this.selectedVault = selectedVault;
@@ -141,10 +148,11 @@ public class VaultListController implements FxController {
FontAwesome5IconView addIcon = new FontAwesome5IconView();
addIcon.setGlyph(FontAwesome5Icon.PLUS);
MenuItem item1 = new MenuItem(resourceBundle.getString("addvaultwizard.welcome.newButton"), addIcon);
item1.setOnAction(event -> didClickAddNewVault());
FontAwesome5IconView openIcon = new FontAwesome5IconView();
openIcon.setGlyph(FontAwesome5Icon.FOLDER_OPEN);
MenuItem item2 = new MenuItem(resourceBundle.getString("addvaultwizard.welcome.existingButton"), openIcon);
item2.setOnAction(event -> didClickAddVault());
item2.setOnAction(event -> didClickAddExistingVault());
contextMenu.getItems().addAll(item1, item2);
addVaultBtn.setContextMenu(contextMenu);
}
@@ -170,11 +178,21 @@ public class VaultListController implements FxController {
VaultListManager.redetermineVaultState(newValue);
}
@FXML
public void didClickAddNewVault() {
addVaultWizard.build().showAddNewVaultWizard();
}
@FXML
public void didClickAddVault() {
addVaultWizard.build().showAddVaultWizard();
}
@FXML
public void didClickAddExistingVault() {
addVaultWizard.build().showAddExistingVaultWizard();
}
private void pressedShortcutToRemoveVault() {
final var vault = selectedVault.get();
if (vault != null && EnumSet.of(LOCKED, MISSING, ERROR, NEEDS_MIGRATION).contains(vault.getState())) {