clean up vault list controller

This commit is contained in:
Sebastian Stenzel
2019-09-10 09:40:47 +02:00
parent d27466d49e
commit 3fa1ed1928
3 changed files with 15 additions and 7 deletions

View File

@@ -5,8 +5,8 @@ import javafx.beans.binding.BooleanBinding;
import javafx.beans.property.ObjectProperty;
import javafx.collections.ListChangeListener;
import javafx.collections.ObservableList;
import javafx.fxml.FXML;
import javafx.scene.control.ListView;
import javafx.scene.layout.AnchorPane;
import org.cryptomator.common.vaults.Vault;
import org.cryptomator.ui.addvaultwizard.AddVaultWizardComponent;
import org.cryptomator.ui.common.FxController;
@@ -23,12 +23,12 @@ public class VaultListController implements FxController {
private final ObservableList<Vault> vaults;
private final ObjectProperty<Vault> selectedVault;
private final BooleanBinding noVaultSelected;
private final VaultListCellFactory cellFactory;
private final AddVaultWizardComponent.Builder addVaultWizard;
private final RemoveVaultComponent.Builder removeVault;
private final BooleanBinding noVaultSelected;
private final BooleanBinding emptyVaultList;
public ListView<Vault> vaultList;
public AnchorPane onboardingOverlay;
@Inject
VaultListController(ObservableList<Vault> vaults, ObjectProperty<Vault> selectedVault, VaultListCellFactory cellFactory, AddVaultWizardComponent.Builder addVaultWizard, RemoveVaultComponent.Builder removeVault) {
@@ -38,10 +38,10 @@ public class VaultListController implements FxController {
this.addVaultWizard = addVaultWizard;
this.removeVault = removeVault;
this.noVaultSelected = selectedVault.isNull();
this.emptyVaultList = Bindings.isEmpty(vaults);
}
public void initialize() {
onboardingOverlay.visibleProperty().bind(Bindings.isEmpty(vaults));
vaultList.setItems(vaults);
vaultList.setCellFactory(cellFactory);
selectedVault.bind(vaultList.getSelectionModel().selectedItemProperty());
@@ -54,10 +54,12 @@ public class VaultListController implements FxController {
});
}
@FXML
public void didClickAddVault() {
addVaultWizard.build().showAddVaultWizard();
}
@FXML
public void didClickRemoveVault() {
Vault v = selectedVault.get();
if (v != null) {
@@ -69,6 +71,14 @@ public class VaultListController implements FxController {
// Getter and Setter
public BooleanBinding emptyVaultListProperty() {
return emptyVaultList;
}
public boolean isEmptyVaultList() {
return emptyVaultList.get();
}
public BooleanBinding noVaultSelectedProperty() {
return noVaultSelected;
}

View File

@@ -20,13 +20,12 @@
<contextMenu>
<ContextMenu>
<items>
<MenuItem text="%main.vaultlist.contextMenu.add" onAction="#didClickAddVault"/>
<MenuItem text="%main.vaultlist.contextMenu.remove" onAction="#didClickRemoveVault" disable="${controller.noVaultSelected}"/>
</items>
</ContextMenu>
</contextMenu>
</ListView>
<AnchorPane fx:id="onboardingOverlay">
<AnchorPane visible="${controller.emptyVaultList}">
<HBox AnchorPane.leftAnchor="10" AnchorPane.rightAnchor="10" AnchorPane.bottomAnchor="100" alignment="BOTTOM_LEFT">
<Label textAlignment="CENTER" text="%main.vaultlist.emptyList.onboardingInstruction" wrapText="true"/>
</HBox>

View File

@@ -116,7 +116,6 @@ main.closeBtn.tooltip=Close
main.preferencesBtn.tooltip=Preferences
## Vault List
main.vaultlist.emptyList.onboardingInstruction=Click here to add a vault
main.vaultlist.contextMenu.add=Add Vault
main.vaultlist.contextMenu.remove=Remove Vault
main.vaultlist.addVaultBtn=Add Vault
## Vault Detail