From ab7611e2c82f2105dd066ef3ff2e17b152a55831 Mon Sep 17 00:00:00 2001 From: Manfred Karrer Date: Fri, 15 Apr 2016 19:10:05 +0200 Subject: [PATCH] Deactivate focus traversal when input fields are deactivated --- .../io/bitsquare/btc/pricefeed/PriceFeed.java | 7 ++-- .../pricefeed/providers/PriceProvider.java | 1 - .../offer/createoffer/CreateOfferView.java | 39 ++++++++++++++----- .../main/offer/takeoffer/TakeOfferView.java | 1 + 4 files changed, 35 insertions(+), 13 deletions(-) diff --git a/core/src/main/java/io/bitsquare/btc/pricefeed/PriceFeed.java b/core/src/main/java/io/bitsquare/btc/pricefeed/PriceFeed.java index 5efb81bc81..a029fa0be0 100644 --- a/core/src/main/java/io/bitsquare/btc/pricefeed/PriceFeed.java +++ b/core/src/main/java/io/bitsquare/btc/pricefeed/PriceFeed.java @@ -22,6 +22,7 @@ import java.util.HashMap; import java.util.Map; import java.util.function.Consumer; +// TODO use https://github.com/timmolter/XChange public class PriceFeed { private static final Logger log = LoggerFactory.getLogger(PriceFeed.class); @@ -44,9 +45,9 @@ public class PriceFeed { } } - private static final long PERIOD_FIAT_SEC = 2 * 60; - private static final long PERIOD_ALL_FIAT_SEC = 60 * 5; - private static final long PERIOD_ALL_CRYPTO_SEC = 60 * 5; + private static final long PERIOD_FIAT_SEC = 90; + private static final long PERIOD_ALL_FIAT_SEC = 60 * 3; + private static final long PERIOD_ALL_CRYPTO_SEC = 60 * 3; private final Map cache = new HashMap<>(); private final PriceProvider fiatPriceProvider = new BitcoinAveragePriceProvider(); diff --git a/core/src/main/java/io/bitsquare/btc/pricefeed/providers/PriceProvider.java b/core/src/main/java/io/bitsquare/btc/pricefeed/providers/PriceProvider.java index 6d564a4d14..36a9e618a0 100644 --- a/core/src/main/java/io/bitsquare/btc/pricefeed/providers/PriceProvider.java +++ b/core/src/main/java/io/bitsquare/btc/pricefeed/providers/PriceProvider.java @@ -7,7 +7,6 @@ import java.io.IOException; import java.io.Serializable; import java.util.Map; -// https://api.bitfinex.com/v1/pubticker/BTCUSD public interface PriceProvider extends Serializable { Map getAllPrices() throws IOException, HttpException; diff --git a/gui/src/main/java/io/bitsquare/gui/main/offer/createoffer/CreateOfferView.java b/gui/src/main/java/io/bitsquare/gui/main/offer/createoffer/CreateOfferView.java index 0e15b05c5c..26ce8eb611 100644 --- a/gui/src/main/java/io/bitsquare/gui/main/offer/createoffer/CreateOfferView.java +++ b/gui/src/main/java/io/bitsquare/gui/main/offer/createoffer/CreateOfferView.java @@ -52,6 +52,7 @@ import javafx.collections.FXCollections; import javafx.event.ActionEvent; import javafx.event.EventHandler; import javafx.geometry.*; +import javafx.scene.Node; import javafx.scene.control.*; import javafx.scene.image.Image; import javafx.scene.image.ImageView; @@ -70,6 +71,8 @@ import org.jetbrains.annotations.NotNull; import javax.inject.Inject; import java.io.ByteArrayInputStream; import java.net.URI; +import java.util.ArrayList; +import java.util.List; import java.util.concurrent.TimeUnit; import static io.bitsquare.gui.util.FormBuilder.*; @@ -123,6 +126,7 @@ public class CreateOfferView extends ActivatableViewAndModel editOfferElements = new ArrayList<>(); /////////////////////////////////////////////////////////////////////////////////////////// @@ -281,15 +285,10 @@ public class CreateOfferView extends ActivatableViewAndModel { + node.setMouseTransparent(true); + node.setFocusTraversable(false); + }); balanceTextField.setTargetAmount(model.dataModel.totalToPayAsCoin.get()); @@ -728,11 +727,14 @@ public class CreateOfferView extends ActivatableViewAndModel currencyComboBoxTuple = addLabelComboBox(gridPane, ++gridRow, "Currency:"); currencyComboBoxLabel = currencyComboBoxTuple.first; + editOfferElements.add(currencyComboBoxLabel); currencyComboBox = currencyComboBoxTuple.second; + editOfferElements.add(currencyComboBox); currencyComboBox.setPromptText("Select currency"); currencyComboBox.setConverter(new StringConverter() { @Override @@ -748,7 +750,9 @@ public class CreateOfferView extends ActivatableViewAndModel currencyTextFieldTuple = addLabelTextField(gridPane, gridRow, "Currency:", "", 5); currencyTextFieldLabel = currencyTextFieldTuple.first; + editOfferElements.add(currencyTextFieldLabel); currencyTextField = currencyTextFieldTuple.second; + editOfferElements.add(currencyTextField); } private void addAmountPriceGroup() { @@ -775,9 +779,11 @@ public class CreateOfferView extends ActivatableViewAndModel tuple = add2ButtonsAfterGroup(gridPane, ++gridRow, BSResources.get("createOffer.amountPriceBox.next"), BSResources.get("shared.cancel")); nextButton = tuple.first; + editOfferElements.add(nextButton); nextButton.disableProperty().bind(model.isNextButtonDisabled); //UserThread.runAfter(() -> nextButton.requestFocus(), 100, TimeUnit.MILLISECONDS); cancelButton1 = tuple.second; + editOfferElements.add(cancelButton1); cancelButton1.setDefaultButton(false); cancelButton1.setOnAction(e -> { close(); @@ -912,9 +918,12 @@ public class CreateOfferView extends ActivatableViewAndModel amountValueCurrencyBoxTuple = FormBuilder.getValueCurrencyBox(BSResources.get("createOffer.amount.prompt")); HBox amountValueCurrencyBox = amountValueCurrencyBoxTuple.first; amountTextField = amountValueCurrencyBoxTuple.second; + editOfferElements.add(amountTextField); amountBtcLabel = amountValueCurrencyBoxTuple.third; + editOfferElements.add(amountBtcLabel); Tuple2 amountInputBoxTuple = getTradeInputBox(amountValueCurrencyBox, model.getAmountDescription()); amountDescriptionLabel = amountInputBoxTuple.first; + editOfferElements.add(amountDescriptionLabel); VBox amountBox = amountInputBoxTuple.second; // x @@ -926,14 +935,18 @@ public class CreateOfferView extends ActivatableViewAndModel priceValueCurrencyBoxTuple = FormBuilder.getValueCurrencyBox(BSResources.get("createOffer.price.prompt")); HBox priceValueCurrencyBox = priceValueCurrencyBoxTuple.first; priceTextField = priceValueCurrencyBoxTuple.second; + editOfferElements.add(priceTextField); priceCurrencyLabel = priceValueCurrencyBoxTuple.third; + editOfferElements.add(priceCurrencyLabel); Tuple2 priceInputBoxTuple = getTradeInputBox(priceValueCurrencyBox, BSResources.get("createOffer.amountPriceBox.priceDescription")); priceDescriptionLabel = priceInputBoxTuple.first; + editOfferElements.add(priceDescriptionLabel); VBox priceBox = priceInputBoxTuple.second; // Fixed/Percentage toggle ToggleGroup toggleGroup = new ToggleGroup(); fixedPriceButton = new ToggleButton("Fixed"); + editOfferElements.add(fixedPriceButton); fixedPriceButton.setId("toggle-price-left"); fixedPriceButton.setToggleGroup(toggleGroup); fixedPriceButton.selectedProperty().addListener((ov, oldValue, newValue) -> { @@ -942,6 +955,7 @@ public class CreateOfferView extends ActivatableViewAndModel { @@ -962,9 +976,12 @@ public class CreateOfferView extends ActivatableViewAndModel volumeValueCurrencyBoxTuple = FormBuilder.getValueCurrencyBox(BSResources.get("createOffer.volume.prompt")); HBox volumeValueCurrencyBox = volumeValueCurrencyBoxTuple.first; volumeTextField = volumeValueCurrencyBoxTuple.second; + editOfferElements.add(volumeTextField); volumeCurrencyLabel = volumeValueCurrencyBoxTuple.third; + editOfferElements.add(volumeCurrencyLabel); Tuple2 volumeInputBoxTuple = getTradeInputBox(volumeValueCurrencyBox, model.volumeDescriptionLabel.get()); volumeDescriptionLabel = volumeInputBoxTuple.first; + editOfferElements.add(volumeDescriptionLabel); VBox volumeBox = volumeInputBoxTuple.second; HBox hBox = new HBox(); @@ -982,7 +999,9 @@ public class CreateOfferView extends ActivatableViewAndModel priceAsPercentageTuple = FormBuilder.getValueCurrencyBox(BSResources.get("createOffer.price.prompt")); HBox priceAsPercentageValueCurrencyBox = priceAsPercentageTuple.first; priceAsPercentageTextField = priceAsPercentageTuple.second; + editOfferElements.add(priceAsPercentageTextField); priceAsPercentageLabel = priceAsPercentageTuple.third; + editOfferElements.add(priceAsPercentageLabel); Tuple2 priceAsPercentageInputBoxTuple = getTradeInputBox(priceAsPercentageValueCurrencyBox, "Distance in % from market price"); priceAsPercentageInputBoxTuple.first.setPrefWidth(200); @@ -995,7 +1014,9 @@ public class CreateOfferView extends ActivatableViewAndModel amountValueCurrencyBoxTuple = getValueCurrencyBox(BSResources.get("createOffer.amount.prompt")); HBox amountValueCurrencyBox = amountValueCurrencyBoxTuple.first; minAmountTextField = amountValueCurrencyBoxTuple.second; + editOfferElements.add(minAmountTextField); minAmountBtcLabel = amountValueCurrencyBoxTuple.third; + editOfferElements.add(minAmountBtcLabel); Tuple2 amountInputBoxTuple = getTradeInputBox(amountValueCurrencyBox, BSResources.get("createOffer.amountPriceBox" + ".minAmountDescription")); diff --git a/gui/src/main/java/io/bitsquare/gui/main/offer/takeoffer/TakeOfferView.java b/gui/src/main/java/io/bitsquare/gui/main/offer/takeoffer/TakeOfferView.java index 742c947ca7..b746f89f27 100644 --- a/gui/src/main/java/io/bitsquare/gui/main/offer/takeoffer/TakeOfferView.java +++ b/gui/src/main/java/io/bitsquare/gui/main/offer/takeoffer/TakeOfferView.java @@ -287,6 +287,7 @@ public class TakeOfferView extends ActivatableViewAndModel