mirror of
https://github.com/bisq-network/bisq.git
synced 2025-02-23 15:00:30 +01:00
Merge pull request #6525 from yonson2023/fix_ui_filter
Fix UI filter box.
This commit is contained in:
commit
df39805c87
8 changed files with 32 additions and 19 deletions
|
@ -53,20 +53,33 @@ public class FilterBox extends HBox {
|
|||
TableView<? extends FilterableListItem> tableView) {
|
||||
this.filteredList = filteredList;
|
||||
listener = (observable, oldValue, newValue) -> {
|
||||
tableView.getSelectionModel().clearSelection();
|
||||
applyFilteredListPredicate(textField.getText());
|
||||
applyFilter(tableView, null);
|
||||
};
|
||||
}
|
||||
|
||||
public void initializeWithCallback(FilteredList<? extends FilterableListItem> filteredList,
|
||||
TableView<? extends FilterableListItem> tableView, Runnable callback) {
|
||||
this.filteredList = filteredList;
|
||||
listener = (observable, oldValue, newValue) -> applyFilter(tableView, callback);
|
||||
applyFilter(tableView, callback); // first time init
|
||||
}
|
||||
|
||||
public void activate() {
|
||||
textField.textProperty().addListener(listener);
|
||||
applyFilteredListPredicate(textField.getText());
|
||||
}
|
||||
|
||||
public void deactivate() {
|
||||
textField.textProperty().removeListener(listener);
|
||||
}
|
||||
|
||||
private void applyFilter(TableView<? extends FilterableListItem> tableView, Runnable callback) {
|
||||
tableView.getSelectionModel().clearSelection();
|
||||
applyFilteredListPredicate(textField.getText());
|
||||
if (callback != null) {
|
||||
callback.run();
|
||||
}
|
||||
}
|
||||
|
||||
private void applyFilteredListPredicate(String filterString) {
|
||||
filteredList.setPredicate(item -> item.match(filterString));
|
||||
}
|
||||
|
|
|
@ -132,7 +132,6 @@ public class LockedView extends ActivatableView<VBox, Void> {
|
|||
|
||||
@Override
|
||||
public void initialize() {
|
||||
filterBox.initialize(filteredList, tableView);
|
||||
dateColumn.setGraphic(new AutoTooltipLabel(Res.get("shared.dateTime")));
|
||||
tradeIdColumn.setGraphic(new AutoTooltipLabel(Res.get("shared.tradeId")));
|
||||
detailsColumn.setGraphic(new AutoTooltipLabel(Res.get("shared.details")));
|
||||
|
@ -168,6 +167,8 @@ public class LockedView extends ActivatableView<VBox, Void> {
|
|||
HBox.setHgrow(spacer, Priority.ALWAYS);
|
||||
numItems.setId("num-offers");
|
||||
numItems.setPadding(new Insets(-5, 0, 0, 10));
|
||||
filterBox.initializeWithCallback(filteredList, tableView, () ->
|
||||
numItems.setText(Res.get("shared.numItemsLabel", sortedList.size())));
|
||||
exportButton.updateText(Res.get("shared.exportCSV"));
|
||||
}
|
||||
|
||||
|
@ -182,7 +183,6 @@ public class LockedView extends ActivatableView<VBox, Void> {
|
|||
|
||||
btcWalletService.addBalanceListener(balanceListener);
|
||||
|
||||
numItems.setText(Res.get("shared.numItemsLabel", sortedList.size()));
|
||||
exportButton.setOnAction(event -> {
|
||||
ObservableList<TableColumn<LockedListItem, ?>> tableColumns = tableView.getColumns();
|
||||
int reportColumns = tableColumns.size();
|
||||
|
|
|
@ -132,7 +132,6 @@ public class ReservedView extends ActivatableView<VBox, Void> {
|
|||
|
||||
@Override
|
||||
public void initialize() {
|
||||
filterBox.initialize(filteredList, tableView);
|
||||
dateColumn.setGraphic(new AutoTooltipLabel(Res.get("shared.dateTime")));
|
||||
offerIdColumn.setGraphic(new AutoTooltipLabel(Res.get("shared.offerId")));
|
||||
detailsColumn.setGraphic(new AutoTooltipLabel(Res.get("shared.details")));
|
||||
|
@ -173,16 +172,17 @@ public class ReservedView extends ActivatableView<VBox, Void> {
|
|||
|
||||
@Override
|
||||
protected void activate() {
|
||||
filterBox.activate();
|
||||
openOfferManager.getObservableList().addListener(openOfferListChangeListener);
|
||||
tradeManager.getObservableList().addListener(tradeListChangeListener);
|
||||
sortedList.comparatorProperty().bind(tableView.comparatorProperty());
|
||||
tableView.setItems(sortedList);
|
||||
updateList();
|
||||
filterBox.initializeWithCallback(filteredList, tableView, () ->
|
||||
numItems.setText(Res.get("shared.numItemsLabel", sortedList.size())));
|
||||
filterBox.activate();
|
||||
|
||||
btcWalletService.addBalanceListener(balanceListener);
|
||||
|
||||
numItems.setText(Res.get("shared.numItemsLabel", sortedList.size()));
|
||||
exportButton.setOnAction(event -> {
|
||||
ObservableList<TableColumn<ReservedListItem, ?>> tableColumns = tableView.getColumns();
|
||||
int reportColumns = tableColumns.size();
|
||||
|
|
|
@ -176,7 +176,6 @@ public class TransactionsView extends ActivatableView<VBox, Void> {
|
|||
|
||||
@Override
|
||||
public void initialize() {
|
||||
filterBox.initialize(filteredList, tableView);
|
||||
dateColumn.setGraphic(new AutoTooltipLabel(Res.get("shared.dateTime")));
|
||||
tradeIdColumn.setGraphic(new AutoTooltipLabel(Res.get("shared.tradeId")));
|
||||
detailsColumn.setGraphic(new AutoTooltipLabel(Res.get("shared.details")));
|
||||
|
@ -231,15 +230,18 @@ public class TransactionsView extends ActivatableView<VBox, Void> {
|
|||
HBox.setHgrow(spacer, Priority.ALWAYS);
|
||||
numItems.setId("num-offers");
|
||||
numItems.setPadding(new Insets(-5, 0, 0, 10));
|
||||
|
||||
exportButton.updateText(Res.get("shared.exportCSV"));
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void activate() {
|
||||
filterBox.activate();
|
||||
sortedList.comparatorProperty().bind(tableView.comparatorProperty());
|
||||
tableView.setItems(sortedList);
|
||||
updateList();
|
||||
filterBox.initializeWithCallback(filteredList, tableView, () ->
|
||||
numItems.setText(Res.get("shared.numItemsLabel", sortedList.size())));
|
||||
filterBox.activate();
|
||||
|
||||
btcWalletService.addChangeEventListener(walletChangeEventListener);
|
||||
|
||||
|
@ -247,7 +249,6 @@ public class TransactionsView extends ActivatableView<VBox, Void> {
|
|||
if (scene != null)
|
||||
scene.addEventHandler(KeyEvent.KEY_RELEASED, keyEventEventHandler);
|
||||
|
||||
numItems.setText(Res.get("shared.numItemsLabel", sortedList.size()));
|
||||
exportButton.setOnAction(event -> {
|
||||
final ObservableList<TableColumn<TransactionsListItem, ?>> tableColumns = tableView.getColumns();
|
||||
final int reportColumns = tableColumns.size() - 1; // CSV report excludes the last column (an icon)
|
||||
|
|
|
@ -219,10 +219,10 @@ public class UnconfirmedBsqSwapsView extends ActivatableViewAndModel<VBox, Uncon
|
|||
|
||||
tableView.setItems(sortedList);
|
||||
|
||||
filterBox.initialize(filteredList, tableView); // here because filteredList is instantiated here
|
||||
filterBox.initializeWithCallback(filteredList, tableView, () ->
|
||||
numItems.setText(Res.get("shared.numItemsLabel", sortedList.size())));
|
||||
filterBox.activate();
|
||||
|
||||
numItems.setText(Res.get("shared.numItemsLabel", sortedList.size()));
|
||||
exportButton.setOnAction(event -> {
|
||||
CSVEntryConverter<UnconfirmedBsqSwapsListItem> headerConverter = item -> {
|
||||
String[] columns = new String[ColumnNames.values().length];
|
||||
|
|
|
@ -291,10 +291,10 @@ public class ClosedTradesView extends ActivatableViewAndModel<VBox, ClosedTrades
|
|||
|
||||
tableView.setItems(sortedList);
|
||||
|
||||
filterBox.initialize(filteredList, tableView); // here because filteredList is instantiated here
|
||||
filterBox.initializeWithCallback(filteredList, tableView, () ->
|
||||
numItems.setText(Res.get("shared.numItemsLabel", filteredList.size())));
|
||||
filterBox.activate();
|
||||
|
||||
numItems.setText(Res.get("shared.numItemsLabel", sortedList.size()));
|
||||
exportButton.setOnAction(event -> {
|
||||
CSVEntryConverter<ClosedTradesListItem> headerConverter = item -> {
|
||||
String[] columns = new String[ColumnNames.values().length];
|
||||
|
|
|
@ -181,10 +181,10 @@ public class FailedTradesView extends ActivatableViewAndModel<VBox, FailedTrades
|
|||
sortedList.comparatorProperty().bind(tableView.comparatorProperty());
|
||||
tableView.setItems(sortedList);
|
||||
|
||||
filterBox.initialize(filteredList, tableView); // here because filteredList is instantiated here
|
||||
filterBox.initializeWithCallback(filteredList, tableView, () ->
|
||||
numItems.setText(Res.get("shared.numItemsLabel", sortedList.size())));
|
||||
filterBox.activate();
|
||||
|
||||
numItems.setText(Res.get("shared.numItemsLabel", sortedList.size()));
|
||||
exportButton.setOnAction(event -> {
|
||||
ObservableList<TableColumn<FailedTradesListItem, ?>> tableColumns = tableView.getColumns();
|
||||
int reportColumns = tableColumns.size() - 1; // CSV report excludes the last column (an icon)
|
||||
|
|
|
@ -245,7 +245,7 @@ public class OpenOffersView extends ActivatableViewAndModel<VBox, OpenOffersView
|
|||
sortedList.addListener(sortedListeChangedListener);
|
||||
tableView.setItems(sortedList);
|
||||
|
||||
filterBox.initialize(filteredList, tableView); // here because filteredList is instantiated here
|
||||
filterBox.initializeWithCallback(filteredList, tableView, this::updateNumberOfOffers);
|
||||
filterBox.activate();
|
||||
|
||||
updateSelectToggleButtonState();
|
||||
|
@ -261,7 +261,6 @@ public class OpenOffersView extends ActivatableViewAndModel<VBox, OpenOffersView
|
|||
tableView.refresh();
|
||||
});
|
||||
|
||||
updateNumberOfOffers();
|
||||
exportButton.setOnAction(event -> {
|
||||
CSVEntryConverter<OpenOfferListItem> headerConverter = item -> {
|
||||
String[] columns = new String[ColumnNames.values().length];
|
||||
|
|
Loading…
Add table
Reference in a new issue