From eef23fbf8851d24283a3163b5eb5c24e2d88359c Mon Sep 17 00:00:00 2001 From: Christoph Atteneder Date: Tue, 13 Nov 2018 13:39:02 +0100 Subject: [PATCH 1/9] Add offset for ripple to achieve center positioning --- .../bisq/desktop/components/JFXRadioButtonSkinBisqStyle.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/desktop/src/main/java/bisq/desktop/components/JFXRadioButtonSkinBisqStyle.java b/desktop/src/main/java/bisq/desktop/components/JFXRadioButtonSkinBisqStyle.java index d1fa38d55d0..6c3c6bd0fdf 100644 --- a/desktop/src/main/java/bisq/desktop/components/JFXRadioButtonSkinBisqStyle.java +++ b/desktop/src/main/java/bisq/desktop/components/JFXRadioButtonSkinBisqStyle.java @@ -188,6 +188,7 @@ protected void layoutChildren(final double x, final double y, final double w, fi final double labelHeight = Math.min(radioButton.prefHeight(labelWidth), h); final double maxHeight = Math.max(contHeight, labelHeight); final double xOffset = computeXOffset(w, labelWidth + contWidth, radioButton.getAlignment().getHpos()) + x; + final double yOffset = computeYOffset(h, maxHeight, radioButton.getAlignment().getVpos()) + x + 5; layoutLabelInArea(xOffset + contWidth + padding / 3, yOffset, labelWidth, maxHeight, radioButton.getAlignment()); @@ -207,7 +208,7 @@ protected void layoutChildren(final double x, final double y, final double w, fi final double ripplerWidth = width + 2 * padding; final double ripplerHeight = height + 2 * padding; rippler.resizeRelocate((width / 2 + xOffset) - ripplerWidth / 2, - (height / 2 + xOffset) - ripplerHeight / 2, + (height / 2 + yOffset) + 2 - ripplerHeight / 2, ripplerWidth, ripplerHeight); } From c6804cb00dd8105e4efa254bff4ee70408241a8b Mon Sep 17 00:00:00 2001 From: Christoph Atteneder Date: Tue, 13 Nov 2018 13:52:34 +0100 Subject: [PATCH 2/9] Use FormBuilder helper methods for creating UI --- .../UnlockArbitrationRegistrationWindow.java | 36 +++++++------------ 1 file changed, 12 insertions(+), 24 deletions(-) diff --git a/desktop/src/main/java/bisq/desktop/main/overlays/windows/UnlockArbitrationRegistrationWindow.java b/desktop/src/main/java/bisq/desktop/main/overlays/windows/UnlockArbitrationRegistrationWindow.java index 2e3ecf91611..234c0848d03 100644 --- a/desktop/src/main/java/bisq/desktop/main/overlays/windows/UnlockArbitrationRegistrationWindow.java +++ b/desktop/src/main/java/bisq/desktop/main/overlays/windows/UnlockArbitrationRegistrationWindow.java @@ -17,8 +17,6 @@ package bisq.desktop.main.overlays.windows; -import bisq.desktop.components.AutoTooltipButton; -import bisq.desktop.components.AutoTooltipLabel; import bisq.desktop.components.InputTextField; import bisq.desktop.main.overlays.Overlay; import bisq.desktop.main.overlays.popups.Popup; @@ -26,18 +24,18 @@ import bisq.core.locale.Res; import bisq.common.app.DevEnv; +import bisq.common.util.Tuple2; import javafx.scene.Scene; import javafx.scene.control.Button; import javafx.scene.control.Label; import javafx.scene.input.KeyCode; -import javafx.scene.layout.GridPane; -import javafx.scene.layout.HBox; - -import javafx.geometry.Insets; import javafx.beans.value.ChangeListener; +import static bisq.desktop.util.FormBuilder.add2ButtonsAfterGroup; +import static bisq.desktop.util.FormBuilder.addTopLabelInputTextField; + public class UnlockArbitrationRegistrationWindow extends Overlay { private final boolean useDevPrivilegeKeys; private Button unlockButton; @@ -111,25 +109,22 @@ protected void setupKeyHandler(Scene scene) { } private void addInputFields() { - Label label = new AutoTooltipLabel(Res.get("shared.enterPrivKey")); + final Tuple2 labelInputTextFieldTuple2 = addTopLabelInputTextField(gridPane, + ++rowIndex, Res.get("shared.enterPrivKey"), 3); + Label label = labelInputTextFieldTuple2.first; label.setWrapText(true); - GridPane.setMargin(label, new Insets(3, 0, 0, 0)); - GridPane.setRowIndex(label, ++rowIndex); - keyInputTextField = new InputTextField(); + keyInputTextField = labelInputTextFieldTuple2.second; if (useDevPrivilegeKeys) keyInputTextField.setText(DevEnv.DEV_PRIVILEGE_PRIV_KEY); - GridPane.setMargin(keyInputTextField, new Insets(3, 0, 0, 0)); - GridPane.setRowIndex(keyInputTextField, rowIndex); - GridPane.setColumnIndex(keyInputTextField, 1); changeListener = (observable, oldValue, newValue) -> unlockButton.setDisable(newValue.length() == 0); keyInputTextField.textProperty().addListener(changeListener); - gridPane.getChildren().addAll(label, keyInputTextField); } private void addButtons() { - unlockButton = new AutoTooltipButton(Res.get("shared.unlock")); - unlockButton.setDefaultButton(true); + final Tuple2 buttonButtonTuple2 = add2ButtonsAfterGroup(gridPane, ++rowIndex, + Res.get("shared.unlock"), Res.get("shared.close")); + unlockButton = buttonButtonTuple2.first; unlockButton.setDisable(keyInputTextField.getText().length() == 0); unlockButton.setOnAction(e -> { if (privKeyHandler.checkKey(keyInputTextField.getText())) @@ -138,18 +133,11 @@ private void addButtons() { new Popup<>().warning(Res.get("shared.invalidKey")).width(300).onClose(this::blurAgain).show(); }); - Button closeButton = new AutoTooltipButton(Res.get("shared.close")); + Button closeButton = buttonButtonTuple2.second; closeButton.setOnAction(event -> { hide(); closeHandlerOptional.ifPresent(Runnable::run); }); - - HBox hBox = new HBox(); - hBox.setSpacing(10); - GridPane.setRowIndex(hBox, ++rowIndex); - GridPane.setColumnIndex(hBox, 1); - hBox.getChildren().addAll(unlockButton, closeButton); - gridPane.getChildren().add(hBox); } } From 9f158d785c17bed5d23ddcdba7c199380478e561 Mon Sep 17 00:00:00 2001 From: Christoph Atteneder Date: Tue, 13 Nov 2018 14:07:20 +0100 Subject: [PATCH 3/9] Adapt calendar picker --- desktop/src/main/java/bisq/desktop/bisq.css | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/desktop/src/main/java/bisq/desktop/bisq.css b/desktop/src/main/java/bisq/desktop/bisq.css index 71be87d718d..0db0d83b21d 100644 --- a/desktop/src/main/java/bisq/desktop/bisq.css +++ b/desktop/src/main/java/bisq/desktop/bisq.css @@ -527,6 +527,10 @@ bg color of non edit textFields: fafafa -fx-background-color: -jfx-default-color; } +.date-picker-popup .month-year-pane { + -fx-background-color: -bs-rd-green-dark; +} + .scroll-bar { -fx-background-color: transparent; -fx-background-radius: 0; From 05742dc3e497116178952d14d5fcbe6b29c87c91 Mon Sep 17 00:00:00 2001 From: Christoph Atteneder Date: Tue, 13 Nov 2018 14:36:30 +0100 Subject: [PATCH 4/9] Adapt charts in trade statistics --- .../java/bisq/desktop/CandleStickChart.css | 24 +++++-------------- desktop/src/main/java/bisq/desktop/bisq.css | 4 +++- .../main/market/trades/TradesChartsView.java | 7 +++--- 3 files changed, 13 insertions(+), 22 deletions(-) diff --git a/desktop/src/main/java/bisq/desktop/CandleStickChart.css b/desktop/src/main/java/bisq/desktop/CandleStickChart.css index 1e4326cac67..7966922ad30 100644 --- a/desktop/src/main/java/bisq/desktop/CandleStickChart.css +++ b/desktop/src/main/java/bisq/desktop/CandleStickChart.css @@ -39,14 +39,10 @@ } .candlestick-average-line { - -fx-stroke: #00b2ff; + -fx-stroke: -bs-candle-stick-average-line; -fx-stroke-width: 2px; } -.candlestick-candle { - -fx-effect: dropshadow(two-pass-box, rgba(0, 0, 0, 0.4), 10, 0.0, 2, 4); -} - .candlestick-line { -fx-stroke: #666666; -fx-stroke-width: 3px; @@ -54,19 +50,16 @@ .candlestick-bar { -fx-padding: 5; - -demo-bar-fill: #e81a00; - -fx-background-color: linear-gradient(derive(-demo-bar-fill, -30%), derive(-demo-bar-fill, -40%)), - linear-gradient(derive(-demo-bar-fill, 100%), derive(-demo-bar-fill, 10%)), - linear-gradient(derive(-demo-bar-fill, 30%), derive(-demo-bar-fill, -10%)); - -fx-background-insets: 0, 1, 2; + -demo-bar-fill: -bs-sell; + -fx-background-color: -demo-bar-fill; } .candlestick-bar.close-above-open { - -demo-bar-fill: #1bff06; + -demo-bar-fill: -bs-buy; } .candlestick-bar.open-above-close { - -demo-bar-fill: #e81a00; + -demo-bar-fill: -bs-sell; } .candlestick-bar.empty { @@ -75,15 +68,10 @@ .volume-bar { -fx-padding: 5; - -demo-bar-fill: #91b1cc; - -fx-background-color: #91b1cc; + -fx-background-color: -bs-volume-transparent; -fx-background-insets: 0, 1, 2; } -.volume-bar { - -fx-effect: dropshadow(two-pass-box, rgba(0, 0, 0, 0.4), 10, 0.0, 2, 4); -} - .chart-alternative-row-fill { -fx-fill: transparent; -fx-stroke: transparent; diff --git a/desktop/src/main/java/bisq/desktop/bisq.css b/desktop/src/main/java/bisq/desktop/bisq.css index 0db0d83b21d..626e4164019 100644 --- a/desktop/src/main/java/bisq/desktop/bisq.css +++ b/desktop/src/main/java/bisq/desktop/bisq.css @@ -144,6 +144,9 @@ bg color of non edit textFields: fafafa -bs-sell-hover: derive(-bs-sell, -10%); /* 2 usages */ -bs-sell-transparent: rgba(215, 48, 48, 0.3); /* 1 usages */ + -bs-volume-transparent: rgba(0, 134, 198, 0.3); + -bs-candle-stick-average-line: -bs-rd-message-bubble; + -bs-cancel: -bs-bg-grey; /* 5 usages */ -bs-cancel-focus: derive(-bs-cancel, -50%); /* 1 usages */ -bs-cancel-hover: derive(-bs-cancel, -10%); /* 1 usages */ @@ -1587,7 +1590,6 @@ textfield */ -fx-font-size: 0.769em; -fx-alignment: center; } - /******************************************************************************************************************** * * * Highlight buttons * diff --git a/desktop/src/main/java/bisq/desktop/main/market/trades/TradesChartsView.java b/desktop/src/main/java/bisq/desktop/main/market/trades/TradesChartsView.java index 5a6293c1f39..04865a190b5 100644 --- a/desktop/src/main/java/bisq/desktop/main/market/trades/TradesChartsView.java +++ b/desktop/src/main/java/bisq/desktop/main/market/trades/TradesChartsView.java @@ -26,7 +26,6 @@ import bisq.desktop.main.market.trades.charts.price.CandleStickChart; import bisq.desktop.main.market.trades.charts.volume.VolumeChart; import bisq.desktop.util.CurrencyListItem; -import bisq.desktop.util.FormBuilder; import bisq.desktop.util.GUIUtil; import bisq.core.locale.CurrencyUtil; @@ -91,6 +90,8 @@ import org.jetbrains.annotations.NotNull; +import static bisq.desktop.util.FormBuilder.addTopLabelComboBox; + @FxmlView public class TradesChartsView extends ActivatableViewAndModel { private static final Logger log = LoggerFactory.getLogger(TradesChartsView.class); @@ -443,7 +444,8 @@ public Number fromString(String string) { private HBox getToolBox() { - final Tuple3> currencyComboBoxTuple = FormBuilder.addTopLabelComboBox(Res.get("shared.currency"), Res.get("list.currency.select"), 10); + final Tuple3> currencyComboBoxTuple = addTopLabelComboBox(Res.get("shared.currency"), + Res.get("list.currency.select")); currencyComboBox = currencyComboBoxTuple.third; currencyComboBox.setButtonCell(GUIUtil.getCurrencyListItemButtonCell(Res.get("shared.oneOffer"), Res.get("shared.multipleOffers"), model.preferences)); @@ -468,7 +470,6 @@ private HBox getToolBox() { HBox hBox = new HBox(); hBox.setSpacing(0); - hBox.setPadding(new Insets(5, 9, -10, 10)); hBox.setAlignment(Pos.CENTER_LEFT); hBox.getChildren().addAll(currencyComboBoxTuple.first, spacer, label, year, month, week, day, hour, minute10); return hBox; From e85a09ae750b23c840b4181d80ed60581606e7e0 Mon Sep 17 00:00:00 2001 From: Christoph Atteneder Date: Tue, 13 Nov 2018 14:56:19 +0100 Subject: [PATCH 5/9] Revert removed constraints from Overlay --- .../main/java/bisq/desktop/main/overlays/Overlay.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/desktop/src/main/java/bisq/desktop/main/overlays/Overlay.java b/desktop/src/main/java/bisq/desktop/main/overlays/Overlay.java index 0f4fae5293b..1a7a9303cbe 100644 --- a/desktop/src/main/java/bisq/desktop/main/overlays/Overlay.java +++ b/desktop/src/main/java/bisq/desktop/main/overlays/Overlay.java @@ -455,9 +455,12 @@ protected void createGridPane() { gridPane.setPadding(new Insets(64, 64, 64, 64)); gridPane.setPrefWidth(width); - ColumnConstraints columnConstraints = new ColumnConstraints(); - columnConstraints.setPercentWidth(100); - gridPane.getColumnConstraints().add(columnConstraints); + ColumnConstraints columnConstraints1 = new ColumnConstraints(); + columnConstraints1.setHalignment(HPos.RIGHT); + columnConstraints1.setHgrow(Priority.SOMETIMES); + ColumnConstraints columnConstraints2 = new ColumnConstraints(); + columnConstraints2.setHgrow(Priority.ALWAYS); + gridPane.getColumnConstraints().addAll(columnConstraints1, columnConstraints2); } protected void blurAgain() { From 21aa91f41d0f7d40905639ff79f44c19e5f36ec0 Mon Sep 17 00:00:00 2001 From: Christoph Atteneder Date: Tue, 13 Nov 2018 15:47:02 +0100 Subject: [PATCH 6/9] Adapt trade charts styles --- .../resources/i18n/displayStrings.properties | 2 +- .../java/bisq/desktop/CandleStickChart.css | 27 ++++++++---- desktop/src/main/java/bisq/desktop/bisq.css | 42 +++++++++++++------ .../main/market/trades/TradesChartsView.java | 22 ++++++---- .../trades/charts/price/CandleStickChart.java | 2 +- .../trades/charts/volume/VolumeChart.java | 2 +- 6 files changed, 65 insertions(+), 32 deletions(-) diff --git a/core/src/main/resources/i18n/displayStrings.properties b/core/src/main/resources/i18n/displayStrings.properties index d94f5d79c55..1ca4106c73d 100644 --- a/core/src/main/resources/i18n/displayStrings.properties +++ b/core/src/main/resources/i18n/displayStrings.properties @@ -192,7 +192,7 @@ shared.crypto=Crypto shared.all=All shared.edit=Edit shared.advancedOptions=Advanced options - +shared.interval=Interval #################################################################### # UI views diff --git a/desktop/src/main/java/bisq/desktop/CandleStickChart.css b/desktop/src/main/java/bisq/desktop/CandleStickChart.css index 7966922ad30..be787f357b2 100644 --- a/desktop/src/main/java/bisq/desktop/CandleStickChart.css +++ b/desktop/src/main/java/bisq/desktop/CandleStickChart.css @@ -40,26 +40,37 @@ .candlestick-average-line { -fx-stroke: -bs-candle-stick-average-line; - -fx-stroke-width: 2px; + -fx-stroke-width: 1px; } .candlestick-line { - -fx-stroke: #666666; - -fx-stroke-width: 3px; + -stick-line-fill: -bs-sell; + -fx-stroke: -stick-line-fill; + -fx-stroke-width: 1x; +} + +.candlestick-line.close-above-open { + -stick-line-fill: -bs-candle-stick-won; +} + +.candlestick-line.open-above-close { + -stick-line-fill: -bs-candle-stick-loss; } .candlestick-bar { -fx-padding: 5; -demo-bar-fill: -bs-sell; - -fx-background-color: -demo-bar-fill; + -fx-background-color: linear-gradient(derive(-demo-bar-fill, -30%), derive(-demo-bar-fill, -40%)), + -demo-bar-fill; + -fx-background-insets: 0, 1; } .candlestick-bar.close-above-open { - -demo-bar-fill: -bs-buy; + -demo-bar-fill: -bs-candle-stick-won; } .candlestick-bar.open-above-close { - -demo-bar-fill: -bs-sell; + -demo-bar-fill: -bs-candle-stick-loss; } .candlestick-bar.empty { @@ -69,7 +80,7 @@ .volume-bar { -fx-padding: 5; -fx-background-color: -bs-volume-transparent; - -fx-background-insets: 0, 1, 2; + -fx-background-insets: 0; } .chart-alternative-row-fill { @@ -79,5 +90,5 @@ } .chart-plot-background { - -fx-background-color: transparent; + -fx-background-color: -bs-rd-white; } diff --git a/desktop/src/main/java/bisq/desktop/bisq.css b/desktop/src/main/java/bisq/desktop/bisq.css index 626e4164019..c8d37e9158c 100644 --- a/desktop/src/main/java/bisq/desktop/bisq.css +++ b/desktop/src/main/java/bisq/desktop/bisq.css @@ -125,6 +125,7 @@ bg color of non edit textFields: fafafa -bs-rd-separator-dark: #D5E0D6; -bs-rd-error-red: #dd0000; /* 5 usages */ -bs-rd-message-bubble: #0086C6; + -bs-toggle-selected: #7B7B7B; -bs-red: #D73030; /* 5 usages */ -fx-box-border: -bs-rd-grey-medium-light; @@ -146,6 +147,8 @@ bg color of non edit textFields: fafafa -bs-volume-transparent: rgba(0, 134, 198, 0.3); -bs-candle-stick-average-line: -bs-rd-message-bubble; + -bs-candle-stick-loss: #FE3001; + -bs-candle-stick-won: #20B221; -bs-cancel: -bs-bg-grey; /* 5 usages */ -bs-cancel-focus: derive(-bs-cancel, -50%); /* 1 usages */ @@ -1713,24 +1716,39 @@ textfield */ -fx-text-fill: -bs-rd-white; } -.interval-selector { - -fx-cursor: hand; - -fx-background-color: transparent; - -fx-padding: 8 14 8 14; +#toggle-left { + -fx-border-radius: 4 0 0 4; + -fx-border-color: -bs-rd-separator-dark; + -fx-border-style: solid; + -fx-border-width: 0 1 0 0; + -fx-background-radius: 4 0 0 4; + -fx-background-color: -bs-rd-white; + -fx-effect: dropshadow(gaussian, -bs-rd-black-transparent, 4, 0, 0, 0, 2); } -.interval-selector .text { - -fx-fill: -bs-rd-font-light; +#toggle-center { + -fx-border-radius: 0; + -fx-border-color: -bs-rd-separator-dark; + -fx-border-style: solid; + -fx-border-width: 0 1 0 0; + -fx-border-insets: 0; + -fx-background-insets: 0; + -fx-background-radius: 0; + -fx-background-color: -bs-rd-white; + -fx-effect: dropshadow(gaussian, -bs-rd-black-transparent, 4, 0, 0, 0, 2); } -.interval-selector:selected { - -fx-background-color: -bs-rd-nav-selected; - -fx-border-radius: 4; - -fx-effect: dropshadow(gaussian, -bs-rd-black-transparent, 4, 0, 0, 0, 2); +#toggle-center:selected, #toggle-left:selected, #toggle-right:selected { + -fx-text-fill: -bs-rd-white; + -fx-background-color: -bs-toggle-selected; } -.interval-selector:selected .text { - -fx-fill: -bs-rd-white; +#toggle-right { + -fx-border-radius: 0 4 4 0; + -fx-border-width: 0; + -fx-background-radius: 0 4 4 0; + -fx-background-color: -bs-rd-white; + -fx-effect: dropshadow(gaussian, -bs-rd-black-transparent, 4, 0, 0, 0, 2); } /******************************************************************************************************************** diff --git a/desktop/src/main/java/bisq/desktop/main/market/trades/TradesChartsView.java b/desktop/src/main/java/bisq/desktop/main/market/trades/TradesChartsView.java index 04865a190b5..d0a2974e552 100644 --- a/desktop/src/main/java/bisq/desktop/main/market/trades/TradesChartsView.java +++ b/desktop/src/main/java/bisq/desktop/main/market/trades/TradesChartsView.java @@ -38,6 +38,7 @@ import bisq.common.UserThread; import bisq.common.util.MathUtils; +import bisq.common.util.Tuple2; import bisq.common.util.Tuple3; import org.bitcoinj.core.Coin; @@ -91,6 +92,7 @@ import org.jetbrains.annotations.NotNull; import static bisq.desktop.util.FormBuilder.addTopLabelComboBox; +import static bisq.desktop.util.FormBuilder.getTopLabelWithVBox; @FxmlView public class TradesChartsView extends ActivatableViewAndModel { @@ -457,31 +459,33 @@ private HBox getToolBox() { Pane spacer = new Pane(); HBox.setHgrow(spacer, Priority.ALWAYS); - Label label = new AutoTooltipLabel("Interval:"); - label.setPadding(new Insets(0, 4, 0, 0)); - toggleGroup = new ToggleGroup(); ToggleButton year = getToggleButton(Res.get("time.year"), TradesChartsViewModel.TickUnit.YEAR, toggleGroup, "toggle-left"); - ToggleButton month = getToggleButton(Res.get("time.month"), TradesChartsViewModel.TickUnit.MONTH, toggleGroup, "toggle-left"); + ToggleButton month = getToggleButton(Res.get("time.month"), TradesChartsViewModel.TickUnit.MONTH, toggleGroup, "toggle-center"); ToggleButton week = getToggleButton(Res.get("time.week"), TradesChartsViewModel.TickUnit.WEEK, toggleGroup, "toggle-center"); ToggleButton day = getToggleButton(Res.get("time.day"), TradesChartsViewModel.TickUnit.DAY, toggleGroup, "toggle-center"); ToggleButton hour = getToggleButton(Res.get("time.hour"), TradesChartsViewModel.TickUnit.HOUR, toggleGroup, "toggle-center"); - ToggleButton minute10 = getToggleButton(Res.get("time.minute10"), TradesChartsViewModel.TickUnit.MINUTE_10, toggleGroup, "toggle-center"); + ToggleButton minute10 = getToggleButton(Res.get("time.minute10"), TradesChartsViewModel.TickUnit.MINUTE_10, toggleGroup, "toggle-right"); + + HBox toggleBox = new HBox(); + toggleBox.setSpacing(0); + toggleBox.setAlignment(Pos.CENTER_LEFT); + toggleBox.getChildren().addAll(year, month, week, day, hour, minute10); + + final Tuple2 topLabelWithVBox = getTopLabelWithVBox(Res.get("shared.interval"), toggleBox); HBox hBox = new HBox(); hBox.setSpacing(0); hBox.setAlignment(Pos.CENTER_LEFT); - hBox.getChildren().addAll(currencyComboBoxTuple.first, spacer, label, year, month, week, day, hour, minute10); + hBox.getChildren().addAll(currencyComboBoxTuple.first, spacer, topLabelWithVBox.second); return hBox; } private ToggleButton getToggleButton(String label, TradesChartsViewModel.TickUnit tickUnit, ToggleGroup toggleGroup, String style) { ToggleButton toggleButton = new AutoTooltipToggleButton(label); - toggleButton.setPadding(new Insets(0, 5, 0, 5)); toggleButton.setUserData(tickUnit); toggleButton.setToggleGroup(toggleGroup); - toggleButton.getStyleClass().add("interval-selector"); -// toggleButton.setId(style); + toggleButton.setId(style); return toggleButton; } diff --git a/desktop/src/main/java/bisq/desktop/main/market/trades/charts/price/CandleStickChart.java b/desktop/src/main/java/bisq/desktop/main/market/trades/charts/price/CandleStickChart.java index 34374a568c2..6380ebada30 100644 --- a/desktop/src/main/java/bisq/desktop/main/market/trades/charts/price/CandleStickChart.java +++ b/desktop/src/main/java/bisq/desktop/main/market/trades/charts/price/CandleStickChart.java @@ -134,7 +134,7 @@ protected void layoutPlotChildren() { double candleWidth = -1; if (getXAxis() instanceof NumberAxis) { NumberAxis xa = (NumberAxis) getXAxis(); - candleWidth = xa.getDisplayPosition(xa.getTickUnit()) * 0.90; // use 90% width between ticks + candleWidth = xa.getDisplayPosition(xa.getTickUnit()) * 0.60; // use 90% width between ticks } // update candle candle.update(close - y, high - y, low - y, candleWidth); diff --git a/desktop/src/main/java/bisq/desktop/main/market/trades/charts/volume/VolumeChart.java b/desktop/src/main/java/bisq/desktop/main/market/trades/charts/volume/VolumeChart.java index 647fe747723..e80b071e342 100644 --- a/desktop/src/main/java/bisq/desktop/main/market/trades/charts/volume/VolumeChart.java +++ b/desktop/src/main/java/bisq/desktop/main/market/trades/charts/volume/VolumeChart.java @@ -68,7 +68,7 @@ protected void layoutPlotChildren() { double candleWidth = -1; if (getXAxis() instanceof NumberAxis) { NumberAxis xa = (NumberAxis) getXAxis(); - candleWidth = xa.getDisplayPosition(xa.getTickUnit()) * 0.90; // use 90% width between ticks + candleWidth = xa.getDisplayPosition(xa.getTickUnit()) * 0.60; // use 90% width between ticks } // 97 is visible chart data height if chart height is 140. From 0ac911bbdfa3436bb9d3f2d1a71c7db833650af5 Mon Sep 17 00:00:00 2001 From: Christoph Atteneder Date: Tue, 13 Nov 2018 15:58:50 +0100 Subject: [PATCH 7/9] Adapt Arbitrator registration window --- core/src/main/resources/i18n/displayStrings.properties | 2 +- .../ArbitratorRegistrationView.java | 3 ++- .../windows/UnlockArbitrationRegistrationWindow.java | 8 ++++++-- desktop/src/main/java/bisq/desktop/util/FormBuilder.java | 9 ++++++++- 4 files changed, 17 insertions(+), 5 deletions(-) diff --git a/core/src/main/resources/i18n/displayStrings.properties b/core/src/main/resources/i18n/displayStrings.properties index 1ca4106c73d..3f47e6e190b 100644 --- a/core/src/main/resources/i18n/displayStrings.properties +++ b/core/src/main/resources/i18n/displayStrings.properties @@ -157,7 +157,7 @@ shared.tradePrice=Trade price shared.tradeAmount=Trade amount shared.tradeVolume=Trade volume shared.invalidKey=The key you entered was not correct. -shared.enterPrivKey=Enter private key to unlock: +shared.enterPrivKey=Enter private key to unlock shared.makerFeeTxId=Maker fee transaction ID shared.takerFeeTxId=Taker fee transaction ID shared.payoutTxId=Payout transaction ID diff --git a/desktop/src/main/java/bisq/desktop/main/account/arbitratorregistration/ArbitratorRegistrationView.java b/desktop/src/main/java/bisq/desktop/main/account/arbitratorregistration/ArbitratorRegistrationView.java index 2ea0418b8ec..3a36b3510b1 100644 --- a/desktop/src/main/java/bisq/desktop/main/account/arbitratorregistration/ArbitratorRegistrationView.java +++ b/desktop/src/main/java/bisq/desktop/main/account/arbitratorregistration/ArbitratorRegistrationView.java @@ -67,6 +67,7 @@ import static bisq.desktop.util.FormBuilder.add2ButtonsAfterGroup; import static bisq.desktop.util.FormBuilder.addMultilineLabel; import static bisq.desktop.util.FormBuilder.addTitledGroupBg; +import static bisq.desktop.util.FormBuilder.addTopLabelTextField; @FxmlView public class ArbitratorRegistrationView extends ActivatableViewAndModel { @@ -148,7 +149,7 @@ private void buildUI() { root.getChildren().add(gridPane); addTitledGroupBg(gridPane, gridRow, 3, Res.get("account.tab.arbitratorRegistration")); - TextField pubKeyTextField = FormBuilder.addTopLabelTextField(gridPane, gridRow, Res.get("account.arbitratorRegistration.pubKey"), + TextField pubKeyTextField = addTopLabelTextField(gridPane, gridRow, Res.get("account.arbitratorRegistration.pubKey"), model.registrationPubKeyAsHex.get(), Layout.FIRST_ROW_DISTANCE).second; pubKeyTextField.textProperty().bind(model.registrationPubKeyAsHex); diff --git a/desktop/src/main/java/bisq/desktop/main/overlays/windows/UnlockArbitrationRegistrationWindow.java b/desktop/src/main/java/bisq/desktop/main/overlays/windows/UnlockArbitrationRegistrationWindow.java index 234c0848d03..a961d1f5a8c 100644 --- a/desktop/src/main/java/bisq/desktop/main/overlays/windows/UnlockArbitrationRegistrationWindow.java +++ b/desktop/src/main/java/bisq/desktop/main/overlays/windows/UnlockArbitrationRegistrationWindow.java @@ -25,16 +25,19 @@ import bisq.common.app.DevEnv; import bisq.common.util.Tuple2; +import bisq.common.util.Tuple3; import javafx.scene.Scene; import javafx.scene.control.Button; import javafx.scene.control.Label; import javafx.scene.input.KeyCode; +import javafx.scene.layout.GridPane; +import javafx.scene.layout.VBox; import javafx.beans.value.ChangeListener; import static bisq.desktop.util.FormBuilder.add2ButtonsAfterGroup; -import static bisq.desktop.util.FormBuilder.addTopLabelInputTextField; +import static bisq.desktop.util.FormBuilder.addTopLabelInputTextFieldWithVBox; public class UnlockArbitrationRegistrationWindow extends Overlay { private final boolean useDevPrivilegeKeys; @@ -109,8 +112,9 @@ protected void setupKeyHandler(Scene scene) { } private void addInputFields() { - final Tuple2 labelInputTextFieldTuple2 = addTopLabelInputTextField(gridPane, + final Tuple3 labelInputTextFieldTuple2 = addTopLabelInputTextFieldWithVBox(gridPane, ++rowIndex, Res.get("shared.enterPrivKey"), 3); + GridPane.setColumnSpan(labelInputTextFieldTuple2.third, 2); Label label = labelInputTextFieldTuple2.first; label.setWrapText(true); diff --git a/desktop/src/main/java/bisq/desktop/util/FormBuilder.java b/desktop/src/main/java/bisq/desktop/util/FormBuilder.java index 6c45e14bbaf..d2f268058e0 100644 --- a/desktop/src/main/java/bisq/desktop/util/FormBuilder.java +++ b/desktop/src/main/java/bisq/desktop/util/FormBuilder.java @@ -530,11 +530,18 @@ public static Tuple2 addTopLabelInputTextField(GridPane g public static Tuple2 addTopLabelInputTextField(GridPane gridPane, int rowIndex, String title, double top) { + final Tuple3 topLabelWithVBox = addTopLabelInputTextFieldWithVBox(gridPane, rowIndex, title, top); + + return new Tuple2<>(topLabelWithVBox.first, topLabelWithVBox.second); + } + + public static Tuple3 addTopLabelInputTextFieldWithVBox(GridPane gridPane, int rowIndex, String title, double top) { + InputTextField inputTextField = new InputTextField(); final Tuple2 topLabelWithVBox = addTopLabelWithVBox(gridPane, rowIndex, title, inputTextField, top); - return new Tuple2<>(topLabelWithVBox.first, inputTextField); + return new Tuple3<>(topLabelWithVBox.first, inputTextField, topLabelWithVBox.second); } From 887249afe4b22567eeef102340a9c596786c6774 Mon Sep 17 00:00:00 2001 From: Christoph Atteneder Date: Tue, 13 Nov 2018 16:10:46 +0100 Subject: [PATCH 8/9] Reduce padding of action buttons in notification to prevent truncation --- desktop/src/main/java/bisq/desktop/bisq.css | 2 +- .../bisq/desktop/main/overlays/notifications/Notification.java | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/desktop/src/main/java/bisq/desktop/bisq.css b/desktop/src/main/java/bisq/desktop/bisq.css index c8d37e9158c..cf5295b974e 100644 --- a/desktop/src/main/java/bisq/desktop/bisq.css +++ b/desktop/src/main/java/bisq/desktop/bisq.css @@ -295,7 +295,7 @@ bg color of non edit textFields: fafafa -fx-text-fill: -bs-rd-white; } -.compact-button, .table-cell .jfx-button { +.compact-button, .table-cell .jfx-button, .action-button.compact-button { -fx-padding: 0 10 0 10; } diff --git a/desktop/src/main/java/bisq/desktop/main/overlays/notifications/Notification.java b/desktop/src/main/java/bisq/desktop/main/overlays/notifications/Notification.java index 6cc4fa52a84..9909a7b5735 100644 --- a/desktop/src/main/java/bisq/desktop/main/overlays/notifications/Notification.java +++ b/desktop/src/main/java/bisq/desktop/main/overlays/notifications/Notification.java @@ -198,6 +198,7 @@ protected void applyStyles() { headlineIcon.setManaged(true); headlineIcon.setVisible(true); headlineIcon.setPadding(new Insets(1)); + actionButton.getStyleClass().add("compact-button"); FormBuilder.getIconForLabel(AwesomeIcon.INFO_SIGN, headlineIcon, "1em"); } From 7c774b9c7b448113e53734a56f8db46b6b346fcb Mon Sep 17 00:00:00 2001 From: Christoph Atteneder Date: Tue, 13 Nov 2018 17:04:05 +0100 Subject: [PATCH 9/9] Improve layouting of balance to prevent truncation issues --- .../resources/i18n/displayStrings.properties | 2 ++ desktop/src/main/java/bisq/desktop/bisq.css | 2 +- .../main/java/bisq/desktop/main/MainView.java | 18 +++++++++--------- 3 files changed, 12 insertions(+), 10 deletions(-) diff --git a/core/src/main/resources/i18n/displayStrings.properties b/core/src/main/resources/i18n/displayStrings.properties index 3f47e6e190b..092ae2fcc77 100644 --- a/core/src/main/resources/i18n/displayStrings.properties +++ b/core/src/main/resources/i18n/displayStrings.properties @@ -223,6 +223,8 @@ mainView.marketPrice.tooltip.altcoinExtra=If the altcoin is not available at Pol mainView.balance.available=Available balance mainView.balance.reserved=Reserved in offers mainView.balance.locked=Locked in trades +mainView.balance.reserved.short=Reserved +mainView.balance.locked.short=Locked mainView.footer.usingTor=(using Tor) mainView.footer.localhostBitcoinNode=(localhost) diff --git a/desktop/src/main/java/bisq/desktop/bisq.css b/desktop/src/main/java/bisq/desktop/bisq.css index cf5295b974e..2f7d91456c6 100644 --- a/desktop/src/main/java/bisq/desktop/bisq.css +++ b/desktop/src/main/java/bisq/desktop/bisq.css @@ -688,8 +688,8 @@ bg color of non edit textFields: fafafa -fx-background-color: -bs-rd-grey-background; -fx-background-radius: 3; -fx-effect: innershadow(gaussian, -bs-rd-black-transparent, 3, 0, 0, 1); - -fx-pref-width: 585; -fx-pref-height: 41; + -fx-padding: 0 10 0 0; } .nav-price-balance .separator:vertical .line { diff --git a/desktop/src/main/java/bisq/desktop/main/MainView.java b/desktop/src/main/java/bisq/desktop/main/MainView.java index 9874c405b18..c19f1af8d81 100644 --- a/desktop/src/main/java/bisq/desktop/main/MainView.java +++ b/desktop/src/main/java/bisq/desktop/main/MainView.java @@ -239,12 +239,16 @@ protected void initialize() { Tuple2 availableBalanceBox = getBalanceBox(Res.get("mainView.balance.available")); availableBalanceBox.first.textProperty().bind(model.getAvailableBalance()); + availableBalanceBox.first.setPrefWidth(100); + availableBalanceBox.first.setTooltip(new Tooltip(Res.get("mainView.balance.available"))); - Tuple2 reservedBalanceBox = getBalanceBox(Res.get("mainView.balance.reserved")); + Tuple2 reservedBalanceBox = getBalanceBox(Res.get("mainView.balance.reserved.short")); reservedBalanceBox.first.textProperty().bind(model.getReservedBalance()); + reservedBalanceBox.first.setTooltip(new Tooltip(Res.get("mainView.balance.reserved"))); - Tuple2 lockedBalanceBox = getBalanceBox(Res.get("mainView.balance.locked")); + Tuple2 lockedBalanceBox = getBalanceBox(Res.get("mainView.balance.locked.short")); lockedBalanceBox.first.textProperty().bind(model.getLockedBalance()); + lockedBalanceBox.first.setTooltip(new Tooltip(Res.get("mainView.balance.locked"))); HBox primaryNav = new HBox(marketButton, getNavigationSeparator(), buyButton, getNavigationSeparator(), sellButton, getNavigationSeparator(), portfolioButtonWithBadge, getNavigationSeparator(), fundsButton); @@ -262,7 +266,6 @@ protected void initialize() { HBox priceAndBalance = new HBox(marketPriceBox.second, getNavigationSeparator(), availableBalanceBox.second, getNavigationSeparator(), reservedBalanceBox.second, getNavigationSeparator(), lockedBalanceBox.second); - priceAndBalance.setMaxWidth(520); priceAndBalance.setMaxHeight(41); priceAndBalance.setAlignment(Pos.CENTER); @@ -349,15 +352,14 @@ private Region getNavigationSpacer() { private Tuple2 getBalanceBox(String text) { Label balanceDisplay = new Label(); - balanceDisplay.setPrefWidth(93); //140 balanceDisplay.getStyleClass().add("nav-balance-display"); - Label label = new AutoTooltipLabel(text); + Label label = new Label(text); label.getStyleClass().add("nav-balance-label"); + label.maxWidthProperty().bind(balanceDisplay.widthProperty()); label.setPadding(new Insets(0, 0, 0, 0)); - label.setPrefWidth(balanceDisplay.getPrefWidth()); VBox vBox = new VBox(); - vBox.setAlignment(Pos.CENTER); + vBox.setAlignment(Pos.CENTER_LEFT); vBox.getChildren().addAll(balanceDisplay, label); return new Tuple2<>(balanceDisplay, vBox); } @@ -384,8 +386,6 @@ private Tuple2, VBox> getMarketPriceBox() { ComboBox priceComboBox = new JFXComboBox<>(); priceComboBox.setVisibleRowCount(20); - priceComboBox.setMaxWidth(165); - priceComboBox.setMinWidth(165); priceComboBox.setFocusTraversable(false); priceComboBox.setId("price-feed-combo"); priceComboBox.setPadding(new Insets(0, 0, -4, 0));