mirror of
https://github.com/haveno-dex/haveno.git
synced 2025-03-06 13:16:02 -05:00
run trade charts view listeners on user thread to fix npe
This commit is contained in:
parent
fff0fa0186
commit
5720ee74b0
@ -208,29 +208,29 @@ public class TradesChartsView extends ActivatableViewAndModel<VBox, TradesCharts
|
|||||||
|
|
||||||
root.getChildren().addAll(toolBox, priceChartPane, volumeChartPane, tableView, footer);
|
root.getChildren().addAll(toolBox, priceChartPane, volumeChartPane, tableView, footer);
|
||||||
|
|
||||||
timeUnitChangeListener = (observable, oldValue, newValue) -> {
|
timeUnitChangeListener = (observable, oldValue, newValue) -> UserThread.execute(() -> {
|
||||||
if (newValue != null) {
|
if (newValue != null) {
|
||||||
model.setTickUnit((TradesChartsViewModel.TickUnit) newValue.getUserData());
|
model.setTickUnit((TradesChartsViewModel.TickUnit) newValue.getUserData());
|
||||||
priceAxisX.setTickLabelFormatter(getTimeAxisStringConverter());
|
priceAxisX.setTickLabelFormatter(getTimeAxisStringConverter());
|
||||||
volumeAxisX.setTickLabelFormatter(getTimeAxisStringConverter());
|
volumeAxisX.setTickLabelFormatter(getTimeAxisStringConverter());
|
||||||
volumeInUsdAxisX.setTickLabelFormatter(getTimeAxisStringConverter());
|
volumeInUsdAxisX.setTickLabelFormatter(getTimeAxisStringConverter());
|
||||||
}
|
}
|
||||||
};
|
});
|
||||||
priceAxisYWidthListener = (observable, oldValue, newValue) -> {
|
priceAxisYWidthListener = (observable, oldValue, newValue) -> UserThread.execute(() -> {
|
||||||
priceAxisYWidth = (double) newValue;
|
priceAxisYWidth = (double) newValue;
|
||||||
layoutChart();
|
layoutChart();
|
||||||
};
|
});
|
||||||
volumeAxisYWidthListener = (observable, oldValue, newValue) -> {
|
volumeAxisYWidthListener = (observable, oldValue, newValue) -> UserThread.execute(() -> {
|
||||||
volumeAxisYWidth = (double) newValue;
|
volumeAxisYWidth = (double) newValue;
|
||||||
layoutChart();
|
layoutChart();
|
||||||
};
|
});
|
||||||
tradeStatisticsByCurrencyListener = c -> {
|
tradeStatisticsByCurrencyListener = c -> UserThread.execute(() -> {
|
||||||
nrOfTradeStatisticsLabel.setText(Res.get("market.trades.nrOfTrades", model.tradeStatisticsByCurrency.size()));
|
nrOfTradeStatisticsLabel.setText(Res.get("market.trades.nrOfTrades", model.tradeStatisticsByCurrency.size()));
|
||||||
fillList();
|
fillList();
|
||||||
};
|
});
|
||||||
parentHeightListener = (observable, oldValue, newValue) -> layout();
|
parentHeightListener = (observable, oldValue, newValue) -> UserThread.execute(this::layout);
|
||||||
|
|
||||||
priceColumnLabelListener = (o, oldVal, newVal) -> priceColumn.setGraphic(new AutoTooltipLabel(newVal));
|
priceColumnLabelListener = (o, oldVal, newVal) -> UserThread.execute(() -> priceColumn.setGraphic(new AutoTooltipLabel(newVal)));
|
||||||
|
|
||||||
// Need to render on next frame as otherwise there are issues in the chart rendering
|
// Need to render on next frame as otherwise there are issues in the chart rendering
|
||||||
itemsChangeListener = c -> UserThread.execute(this::updateChartData);
|
itemsChangeListener = c -> UserThread.execute(this::updateChartData);
|
||||||
@ -238,6 +238,7 @@ public class TradesChartsView extends ActivatableViewAndModel<VBox, TradesCharts
|
|||||||
currencySelectionBinding = EasyBind.combine(
|
currencySelectionBinding = EasyBind.combine(
|
||||||
model.showAllTradeCurrenciesProperty, model.selectedTradeCurrencyProperty,
|
model.showAllTradeCurrenciesProperty, model.selectedTradeCurrencyProperty,
|
||||||
(showAll, selectedTradeCurrency) -> {
|
(showAll, selectedTradeCurrency) -> {
|
||||||
|
UserThread.execute(() -> {
|
||||||
priceChart.setVisible(!showAll);
|
priceChart.setVisible(!showAll);
|
||||||
priceChart.setManaged(!showAll);
|
priceChart.setManaged(!showAll);
|
||||||
priceColumn.setSortable(!showAll);
|
priceColumn.setSortable(!showAll);
|
||||||
@ -263,6 +264,8 @@ public class TradesChartsView extends ActivatableViewAndModel<VBox, TradesCharts
|
|||||||
}
|
}
|
||||||
|
|
||||||
layout();
|
layout();
|
||||||
|
});
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@ -286,14 +289,14 @@ public class TradesChartsView extends ActivatableViewAndModel<VBox, TradesCharts
|
|||||||
currencyComboBox.getSelectionModel().select(model.getSelectedCurrencyListItem().get());
|
currencyComboBox.getSelectionModel().select(model.getSelectedCurrencyListItem().get());
|
||||||
currencyComboBox.getEditor().setText(new CurrencyStringConverter(currencyComboBox).toString(currencyComboBox.getSelectionModel().getSelectedItem()));
|
currencyComboBox.getEditor().setText(new CurrencyStringConverter(currencyComboBox).toString(currencyComboBox.getSelectionModel().getSelectedItem()));
|
||||||
|
|
||||||
currencyComboBox.setOnChangeConfirmed(e -> {
|
currencyComboBox.setOnChangeConfirmed(e -> UserThread.execute(() -> {
|
||||||
if (currencyComboBox.getEditor().getText().isEmpty())
|
if (currencyComboBox.getEditor().getText().isEmpty())
|
||||||
currencyComboBox.getSelectionModel().select(SHOW_ALL);
|
currencyComboBox.getSelectionModel().select(SHOW_ALL);
|
||||||
CurrencyListItem selectedItem = currencyComboBox.getSelectionModel().getSelectedItem();
|
CurrencyListItem selectedItem = currencyComboBox.getSelectionModel().getSelectedItem();
|
||||||
if (selectedItem != null) {
|
if (selectedItem != null) {
|
||||||
model.onSetTradeCurrency(selectedItem.tradeCurrency);
|
model.onSetTradeCurrency(selectedItem.tradeCurrency);
|
||||||
}
|
}
|
||||||
});
|
}));
|
||||||
|
|
||||||
toggleGroup.getToggles().get(model.tickUnit.ordinal()).setSelected(true);
|
toggleGroup.getToggles().get(model.tickUnit.ordinal()).setSelected(true);
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user