fix combobox texfield repeat selection

This commit is contained in:
Craig Raw 2021-11-11 15:32:37 +02:00
parent c3778b6419
commit e26587e807
3 changed files with 14 additions and 4 deletions

View file

@ -1,5 +1,6 @@
package com.sparrowwallet.sparrow.control; package com.sparrowwallet.sparrow.control;
import javafx.application.Platform;
import javafx.beans.property.ObjectProperty; import javafx.beans.property.ObjectProperty;
import javafx.beans.property.SimpleObjectProperty; import javafx.beans.property.SimpleObjectProperty;
import javafx.scene.Cursor; import javafx.scene.Cursor;
@ -12,12 +13,13 @@ import org.controlsfx.control.textfield.CustomTextField;
public class ComboBoxTextField extends CustomTextField { public class ComboBoxTextField extends CustomTextField {
private final ObjectProperty<ComboBox<?>> comboProperty = new SimpleObjectProperty<>(); private final ObjectProperty<ComboBox<?>> comboProperty = new SimpleObjectProperty<>();
private boolean initialized;
private boolean comboShowing; private boolean comboShowing;
public ComboBoxTextField() { public ComboBoxTextField() {
super(); super();
getStyleClass().add("combo-text-field"); getStyleClass().add("combo-text-field");
setupCopyButtonField(super.rightProperty()); setupComboButtonField(super.rightProperty());
disabledProperty().addListener((observable, oldValue, newValue) -> { disabledProperty().addListener((observable, oldValue, newValue) -> {
if(comboProperty.isNotNull().get()) { if(comboProperty.isNotNull().get()) {
@ -26,7 +28,7 @@ public class ComboBoxTextField extends CustomTextField {
}); });
} }
private void setupCopyButtonField(ObjectProperty<Node> rightProperty) { private void setupComboButtonField(ObjectProperty<Node> rightProperty) {
Region showComboButton = new Region(); Region showComboButton = new Region();
showComboButton.getStyleClass().addAll("graphic"); //$NON-NLS-1$ showComboButton.getStyleClass().addAll("graphic"); //$NON-NLS-1$
StackPane showComboButtonPane = new StackPane(showComboButton); StackPane showComboButtonPane = new StackPane(showComboButton);
@ -41,6 +43,14 @@ public class ComboBoxTextField extends CustomTextField {
} }
comboShowing = !comboShowing; comboShowing = !comboShowing;
if(!initialized) {
comboProperty.get().valueProperty().addListener((observable, oldValue, newValue) -> {
comboShowing = false;
Platform.runLater(() -> comboProperty.get().getSelectionModel().clearSelection());
});
initialized = true;
}
} }
}); });

View file

@ -85,7 +85,7 @@ public class ColdcardMultisig implements WalletImport, KeystoreFileImport, Walle
@Override @Override
public String getKeystoreImportDescription() { public String getKeystoreImportDescription() {
return "Import file created by using the Settings > Multisig Wallets > Export XPUB feature on your Coldcard."; return "Import file created by using the Settings > Multisig Wallets > Export XPUB > 0 feature on your Coldcard.";
} }
@Override @Override

View file

@ -29,7 +29,7 @@ public class ColdcardSinglesig implements KeystoreFileImport, WalletImport {
@Override @Override
public String getKeystoreImportDescription() { public String getKeystoreImportDescription() {
return "Import file created by using the Advanced > MicroSD > Export Wallet > Generic JSON feature on your Coldcard. Note this requires firmware version 3.1.3 or later."; return "Import file created by using the Advanced > MicroSD > Export Wallet > Generic JSON > 0 feature on your Coldcard. Note this requires firmware version 3.1.3 or later.";
} }
@Override @Override