@Action
public void createEncryptedVaultButtonClicked(final ID sender) {
final Location feature = pool.getFeature(Location.class);
final VaultController sheet = new VaultController(this.getWorkdirFromSelection(), this.getSelectedPath(), cache,
feature != null ? feature.getLocations() : Collections.emptySet(), new VaultController.Callback() {
@Override
public void callback(final Path folder, final String region, final VaultCredentials passphrase) {
background(new WorkerBackgroundAction<Path>(BrowserController.this, pool,
new CreateVaultWorker(region, passphrase, PasswordStoreFactory.get(), VaultFactory.get(folder, DefaultVaultRegistry.DEFAULT_MASTERKEY_FILE_NAME, DefaultVaultRegistry.DEFAULT_PEPPER)) {
@Override
public void cleanup(final Path vault) {
reload(workdir(), Collections.singletonList(folder), Collections.singletonList(folder));
}
})
);
}
});
sheet.beginSheet(this);
}