mirror of
https://github.com/haveno-dex/haveno.git
synced 2025-08-08 22:52:18 -04:00
add first and last column classes dynamically
This commit is contained in:
parent
6ec9d7a485
commit
34a6974c07
18 changed files with 82 additions and 66 deletions
|
@ -74,7 +74,7 @@ public class ManageMarketAlertsWindow extends Overlay<ManageMarketAlertsWindow>
|
||||||
|
|
||||||
private void addContent() {
|
private void addContent() {
|
||||||
TableView<MarketAlertFilter> tableView = new TableView<>();
|
TableView<MarketAlertFilter> tableView = new TableView<>();
|
||||||
GUIUtil.applyRoundedArc(tableView);
|
GUIUtil.applyTableStyle(tableView);
|
||||||
GridPane.setRowIndex(tableView, ++rowIndex);
|
GridPane.setRowIndex(tableView, ++rowIndex);
|
||||||
GridPane.setColumnSpan(tableView, 2);
|
GridPane.setColumnSpan(tableView, 2);
|
||||||
GridPane.setMargin(tableView, new Insets(10, 0, 0, 0));
|
GridPane.setMargin(tableView, new Insets(10, 0, 0, 0));
|
||||||
|
|
|
@ -144,7 +144,7 @@ public class DepositView extends ActivatableView<VBox, Void> {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void initialize() {
|
public void initialize() {
|
||||||
GUIUtil.applyRoundedArc(tableView);
|
GUIUtil.applyTableStyle(tableView);
|
||||||
|
|
||||||
paymentLabelString = Res.get("funds.deposit.fundHavenoWallet");
|
paymentLabelString = Res.get("funds.deposit.fundHavenoWallet");
|
||||||
addressColumn.setGraphic(new AutoTooltipLabel(Res.get("shared.address")));
|
addressColumn.setGraphic(new AutoTooltipLabel(Res.get("shared.address")));
|
||||||
|
@ -378,7 +378,6 @@ public class DepositView extends ActivatableView<VBox, Void> {
|
||||||
///////////////////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
private void setUsageColumnCellFactory() {
|
private void setUsageColumnCellFactory() {
|
||||||
usageColumn.getStyleClass().add("last-column");
|
|
||||||
usageColumn.setCellValueFactory((addressListItem) -> new ReadOnlyObjectWrapper<>(addressListItem.getValue()));
|
usageColumn.setCellValueFactory((addressListItem) -> new ReadOnlyObjectWrapper<>(addressListItem.getValue()));
|
||||||
usageColumn.setCellFactory(new Callback<>() {
|
usageColumn.setCellFactory(new Callback<>() {
|
||||||
|
|
||||||
|
@ -402,7 +401,6 @@ public class DepositView extends ActivatableView<VBox, Void> {
|
||||||
}
|
}
|
||||||
|
|
||||||
private void setAddressColumnCellFactory() {
|
private void setAddressColumnCellFactory() {
|
||||||
addressColumn.getStyleClass().add("first-column");
|
|
||||||
addressColumn.setCellValueFactory((addressListItem) -> new ReadOnlyObjectWrapper<>(addressListItem.getValue()));
|
addressColumn.setCellValueFactory((addressListItem) -> new ReadOnlyObjectWrapper<>(addressListItem.getValue()));
|
||||||
|
|
||||||
addressColumn.setCellFactory(
|
addressColumn.setCellFactory(
|
||||||
|
|
|
@ -122,6 +122,7 @@ public class LockedView extends ActivatableView<VBox, Void> {
|
||||||
addressColumn.setGraphic(new AutoTooltipLabel(Res.get("shared.address")));
|
addressColumn.setGraphic(new AutoTooltipLabel(Res.get("shared.address")));
|
||||||
balanceColumn.setGraphic(new AutoTooltipLabel(Res.get("shared.balanceWithCur", Res.getBaseCurrencyCode())));
|
balanceColumn.setGraphic(new AutoTooltipLabel(Res.get("shared.balanceWithCur", Res.getBaseCurrencyCode())));
|
||||||
|
|
||||||
|
GUIUtil.applyTableStyle(tableView);
|
||||||
tableView.setColumnResizePolicy(TableView.CONSTRAINED_RESIZE_POLICY);
|
tableView.setColumnResizePolicy(TableView.CONSTRAINED_RESIZE_POLICY);
|
||||||
tableView.setPlaceholder(new AutoTooltipLabel(Res.get("funds.locked.noFunds")));
|
tableView.setPlaceholder(new AutoTooltipLabel(Res.get("funds.locked.noFunds")));
|
||||||
|
|
||||||
|
@ -250,7 +251,6 @@ public class LockedView extends ActivatableView<VBox, Void> {
|
||||||
///////////////////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
private void setDateColumnCellFactory() {
|
private void setDateColumnCellFactory() {
|
||||||
dateColumn.getStyleClass().add("first-column");
|
|
||||||
dateColumn.setCellValueFactory((addressListItem) -> new ReadOnlyObjectWrapper<>(addressListItem.getValue()));
|
dateColumn.setCellValueFactory((addressListItem) -> new ReadOnlyObjectWrapper<>(addressListItem.getValue()));
|
||||||
dateColumn.setCellFactory(new Callback<>() {
|
dateColumn.setCellFactory(new Callback<>() {
|
||||||
|
|
||||||
|
@ -342,7 +342,6 @@ public class LockedView extends ActivatableView<VBox, Void> {
|
||||||
}
|
}
|
||||||
|
|
||||||
private void setBalanceColumnCellFactory() {
|
private void setBalanceColumnCellFactory() {
|
||||||
balanceColumn.getStyleClass().add("last-column");
|
|
||||||
balanceColumn.setCellValueFactory((addressListItem) -> new ReadOnlyObjectWrapper<>(addressListItem.getValue()));
|
balanceColumn.setCellValueFactory((addressListItem) -> new ReadOnlyObjectWrapper<>(addressListItem.getValue()));
|
||||||
balanceColumn.setCellFactory(
|
balanceColumn.setCellFactory(
|
||||||
new Callback<>() {
|
new Callback<>() {
|
||||||
|
|
|
@ -122,6 +122,7 @@ public class ReservedView extends ActivatableView<VBox, Void> {
|
||||||
addressColumn.setGraphic(new AutoTooltipLabel(Res.get("shared.address")));
|
addressColumn.setGraphic(new AutoTooltipLabel(Res.get("shared.address")));
|
||||||
balanceColumn.setGraphic(new AutoTooltipLabel(Res.get("shared.balanceWithCur", Res.getBaseCurrencyCode())));
|
balanceColumn.setGraphic(new AutoTooltipLabel(Res.get("shared.balanceWithCur", Res.getBaseCurrencyCode())));
|
||||||
|
|
||||||
|
GUIUtil.applyTableStyle(tableView);
|
||||||
tableView.setColumnResizePolicy(TableView.CONSTRAINED_RESIZE_POLICY);
|
tableView.setColumnResizePolicy(TableView.CONSTRAINED_RESIZE_POLICY);
|
||||||
tableView.setPlaceholder(new AutoTooltipLabel(Res.get("funds.reserved.noFunds")));
|
tableView.setPlaceholder(new AutoTooltipLabel(Res.get("funds.reserved.noFunds")));
|
||||||
|
|
||||||
|
@ -249,7 +250,6 @@ public class ReservedView extends ActivatableView<VBox, Void> {
|
||||||
///////////////////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
private void setDateColumnCellFactory() {
|
private void setDateColumnCellFactory() {
|
||||||
dateColumn.getStyleClass().add("first-column");
|
|
||||||
dateColumn.setCellValueFactory((addressListItem) -> new ReadOnlyObjectWrapper<>(addressListItem.getValue()));
|
dateColumn.setCellValueFactory((addressListItem) -> new ReadOnlyObjectWrapper<>(addressListItem.getValue()));
|
||||||
dateColumn.setCellFactory(new Callback<>() {
|
dateColumn.setCellFactory(new Callback<>() {
|
||||||
|
|
||||||
|
@ -313,7 +313,6 @@ public class ReservedView extends ActivatableView<VBox, Void> {
|
||||||
}
|
}
|
||||||
|
|
||||||
private void setAddressColumnCellFactory() {
|
private void setAddressColumnCellFactory() {
|
||||||
addressColumn.getStyleClass().add("last-column");
|
|
||||||
addressColumn.setCellValueFactory((addressListItem) -> new ReadOnlyObjectWrapper<>(addressListItem.getValue()));
|
addressColumn.setCellValueFactory((addressListItem) -> new ReadOnlyObjectWrapper<>(addressListItem.getValue()));
|
||||||
|
|
||||||
addressColumn.setCellFactory(
|
addressColumn.setCellFactory(
|
||||||
|
|
|
@ -127,7 +127,7 @@ public class TransactionsView extends ActivatableView<VBox, Void> {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void initialize() {
|
public void initialize() {
|
||||||
GUIUtil.applyRoundedArc(tableView);
|
GUIUtil.applyTableStyle(tableView);
|
||||||
|
|
||||||
dateColumn.setGraphic(new AutoTooltipLabel(Res.get("shared.dateTime")));
|
dateColumn.setGraphic(new AutoTooltipLabel(Res.get("shared.dateTime")));
|
||||||
detailsColumn.setGraphic(new AutoTooltipLabel(Res.get("shared.details")));
|
detailsColumn.setGraphic(new AutoTooltipLabel(Res.get("shared.details")));
|
||||||
|
@ -171,11 +171,6 @@ public class TransactionsView extends ActivatableView<VBox, Void> {
|
||||||
keyEventEventHandler = event -> {
|
keyEventEventHandler = event -> {
|
||||||
// Not intended to be public to users as the feature is not well tested
|
// Not intended to be public to users as the feature is not well tested
|
||||||
if (Utilities.isAltOrCtrlPressed(KeyCode.R, event)) {
|
if (Utilities.isAltOrCtrlPressed(KeyCode.R, event)) {
|
||||||
if (revertTxColumn.isVisible()) {
|
|
||||||
confidenceColumn.getStyleClass().remove("last-column");
|
|
||||||
} else {
|
|
||||||
confidenceColumn.getStyleClass().add("last-column");
|
|
||||||
}
|
|
||||||
revertTxColumn.setVisible(!revertTxColumn.isVisible());
|
revertTxColumn.setVisible(!revertTxColumn.isVisible());
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
@ -267,7 +262,6 @@ public class TransactionsView extends ActivatableView<VBox, Void> {
|
||||||
///////////////////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
private void setDateColumnCellFactory() {
|
private void setDateColumnCellFactory() {
|
||||||
dateColumn.getStyleClass().add("first-column");
|
|
||||||
dateColumn.setCellValueFactory((addressListItem) ->
|
dateColumn.setCellValueFactory((addressListItem) ->
|
||||||
new ReadOnlyObjectWrapper<>(addressListItem.getValue()));
|
new ReadOnlyObjectWrapper<>(addressListItem.getValue()));
|
||||||
dateColumn.setMaxWidth(200);
|
dateColumn.setMaxWidth(200);
|
||||||
|
@ -479,7 +473,6 @@ public class TransactionsView extends ActivatableView<VBox, Void> {
|
||||||
}
|
}
|
||||||
|
|
||||||
private void setConfidenceColumnCellFactory() {
|
private void setConfidenceColumnCellFactory() {
|
||||||
confidenceColumn.getStyleClass().add("last-column");
|
|
||||||
confidenceColumn.setCellValueFactory((addressListItem) ->
|
confidenceColumn.setCellValueFactory((addressListItem) ->
|
||||||
new ReadOnlyObjectWrapper<>(addressListItem.getValue()));
|
new ReadOnlyObjectWrapper<>(addressListItem.getValue()));
|
||||||
confidenceColumn.setCellFactory(
|
confidenceColumn.setCellFactory(
|
||||||
|
@ -506,7 +499,6 @@ public class TransactionsView extends ActivatableView<VBox, Void> {
|
||||||
}
|
}
|
||||||
|
|
||||||
private void setRevertTxColumnCellFactory() {
|
private void setRevertTxColumnCellFactory() {
|
||||||
revertTxColumn.getStyleClass().add("last-column");
|
|
||||||
revertTxColumn.setCellValueFactory((addressListItem) ->
|
revertTxColumn.setCellValueFactory((addressListItem) ->
|
||||||
new ReadOnlyObjectWrapper<>(addressListItem.getValue()));
|
new ReadOnlyObjectWrapper<>(addressListItem.getValue()));
|
||||||
revertTxColumn.setCellFactory(
|
revertTxColumn.setCellFactory(
|
||||||
|
|
|
@ -428,7 +428,7 @@ public class OfferBookChartView extends ActivatableViewAndModel<VBox, OfferBookC
|
||||||
|
|
||||||
private Tuple4<TableView<OfferListItem>, VBox, Button, Label> getOfferTable(OfferDirection direction) {
|
private Tuple4<TableView<OfferListItem>, VBox, Button, Label> getOfferTable(OfferDirection direction) {
|
||||||
TableView<OfferListItem> tableView = new TableView<>();
|
TableView<OfferListItem> tableView = new TableView<>();
|
||||||
GUIUtil.applyRoundedArc(tableView);
|
GUIUtil.applyTableStyle(tableView);
|
||||||
tableView.setMinHeight(initialOfferTableViewHeight);
|
tableView.setMinHeight(initialOfferTableViewHeight);
|
||||||
tableView.setPrefHeight(initialOfferTableViewHeight);
|
tableView.setPrefHeight(initialOfferTableViewHeight);
|
||||||
tableView.setMinWidth(480);
|
tableView.setMinWidth(480);
|
||||||
|
@ -492,7 +492,7 @@ public class OfferBookChartView extends ActivatableViewAndModel<VBox, OfferBookC
|
||||||
volumeColumn.setMinWidth(115);
|
volumeColumn.setMinWidth(115);
|
||||||
volumeColumn.setSortable(false);
|
volumeColumn.setSortable(false);
|
||||||
volumeColumn.textProperty().bind(volumeColumnLabel);
|
volumeColumn.textProperty().bind(volumeColumnLabel);
|
||||||
volumeColumn.getStyleClass().addAll("number-column", "first-column");
|
volumeColumn.getStyleClass().addAll("number-column");
|
||||||
volumeColumn.setCellValueFactory((offer) -> new ReadOnlyObjectWrapper<>(offer.getValue()));
|
volumeColumn.setCellValueFactory((offer) -> new ReadOnlyObjectWrapper<>(offer.getValue()));
|
||||||
volumeColumn.setCellFactory(
|
volumeColumn.setCellFactory(
|
||||||
new Callback<>() {
|
new Callback<>() {
|
||||||
|
@ -585,7 +585,7 @@ public class OfferBookChartView extends ActivatableViewAndModel<VBox, OfferBookC
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
avatarColumn.getStyleClass().addAll("last-column", "avatar-column");
|
avatarColumn.getStyleClass().addAll("avatar-column");
|
||||||
avatarColumn.setCellValueFactory((offer) -> new ReadOnlyObjectWrapper<>(offer.getValue()));
|
avatarColumn.setCellValueFactory((offer) -> new ReadOnlyObjectWrapper<>(offer.getValue()));
|
||||||
avatarColumn.setCellFactory(
|
avatarColumn.setCellFactory(
|
||||||
new Callback<>() {
|
new Callback<>() {
|
||||||
|
|
|
@ -65,7 +65,7 @@ public class SpreadView extends ActivatableViewAndModel<GridPane, SpreadViewMode
|
||||||
@Override
|
@Override
|
||||||
public void initialize() {
|
public void initialize() {
|
||||||
tableView = new TableView<>();
|
tableView = new TableView<>();
|
||||||
GUIUtil.applyRoundedArc(tableView);
|
GUIUtil.applyTableStyle(tableView);
|
||||||
|
|
||||||
int gridRow = 0;
|
int gridRow = 0;
|
||||||
GridPane.setRowIndex(tableView, gridRow);
|
GridPane.setRowIndex(tableView, gridRow);
|
||||||
|
@ -145,7 +145,7 @@ public class SpreadView extends ActivatableViewAndModel<GridPane, SpreadViewMode
|
||||||
setMinWidth(160);
|
setMinWidth(160);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
column.getStyleClass().addAll("number-column", "first-column");
|
column.getStyleClass().addAll("number-column");
|
||||||
column.setCellValueFactory((item) -> new ReadOnlyObjectWrapper<>(item.getValue()));
|
column.setCellValueFactory((item) -> new ReadOnlyObjectWrapper<>(item.getValue()));
|
||||||
column.setCellFactory(
|
column.setCellFactory(
|
||||||
new Callback<>() {
|
new Callback<>() {
|
||||||
|
@ -290,7 +290,7 @@ public class SpreadView extends ActivatableViewAndModel<GridPane, SpreadViewMode
|
||||||
setMinWidth(110);
|
setMinWidth(110);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
column.getStyleClass().addAll("number-column", "last-column");
|
column.getStyleClass().addAll("number-column");
|
||||||
column.setCellValueFactory((item) -> new ReadOnlyObjectWrapper<>(item.getValue()));
|
column.setCellValueFactory((item) -> new ReadOnlyObjectWrapper<>(item.getValue()));
|
||||||
column.setCellFactory(
|
column.setCellFactory(
|
||||||
new Callback<>() {
|
new Callback<>() {
|
||||||
|
|
|
@ -731,7 +731,7 @@ public class TradesChartsView extends ActivatableViewAndModel<VBox, TradesCharts
|
||||||
|
|
||||||
private void createTable() {
|
private void createTable() {
|
||||||
tableView = new TableView<>();
|
tableView = new TableView<>();
|
||||||
GUIUtil.applyRoundedArc(tableView);
|
GUIUtil.applyTableStyle(tableView);
|
||||||
VBox.setVgrow(tableView, Priority.ALWAYS);
|
VBox.setVgrow(tableView, Priority.ALWAYS);
|
||||||
|
|
||||||
// date
|
// date
|
||||||
|
@ -741,7 +741,7 @@ public class TradesChartsView extends ActivatableViewAndModel<VBox, TradesCharts
|
||||||
setMaxWidth(240);
|
setMaxWidth(240);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
dateColumn.getStyleClass().addAll("number-column", "first-column");
|
dateColumn.getStyleClass().addAll("number-column");
|
||||||
dateColumn.setCellValueFactory((tradeStatistics) -> new ReadOnlyObjectWrapper<>(tradeStatistics.getValue()));
|
dateColumn.setCellValueFactory((tradeStatistics) -> new ReadOnlyObjectWrapper<>(tradeStatistics.getValue()));
|
||||||
dateColumn.setCellFactory(
|
dateColumn.setCellFactory(
|
||||||
new Callback<>() {
|
new Callback<>() {
|
||||||
|
@ -867,7 +867,7 @@ public class TradesChartsView extends ActivatableViewAndModel<VBox, TradesCharts
|
||||||
|
|
||||||
// paymentMethod
|
// paymentMethod
|
||||||
TableColumn<TradeStatistics3ListItem, TradeStatistics3ListItem> paymentMethodColumn = new AutoTooltipTableColumn<>(Res.get("shared.paymentMethod"));
|
TableColumn<TradeStatistics3ListItem, TradeStatistics3ListItem> paymentMethodColumn = new AutoTooltipTableColumn<>(Res.get("shared.paymentMethod"));
|
||||||
paymentMethodColumn.getStyleClass().addAll("number-column", "last-column");
|
paymentMethodColumn.getStyleClass().addAll("number-column");
|
||||||
paymentMethodColumn.setCellValueFactory((tradeStatistics) -> new ReadOnlyObjectWrapper<>(tradeStatistics.getValue()));
|
paymentMethodColumn.setCellValueFactory((tradeStatistics) -> new ReadOnlyObjectWrapper<>(tradeStatistics.getValue()));
|
||||||
paymentMethodColumn.setCellFactory(
|
paymentMethodColumn.setCellFactory(
|
||||||
new Callback<>() {
|
new Callback<>() {
|
||||||
|
|
|
@ -230,7 +230,7 @@ abstract public class OfferBookView<R extends GridPane, M extends OfferBookViewM
|
||||||
root.getChildren().add(offerToolsBox);
|
root.getChildren().add(offerToolsBox);
|
||||||
|
|
||||||
tableView = new TableView<>();
|
tableView = new TableView<>();
|
||||||
GUIUtil.applyRoundedArc(tableView);
|
GUIUtil.applyTableStyle(tableView);
|
||||||
|
|
||||||
GridPane.setRowIndex(tableView, ++gridRow);
|
GridPane.setRowIndex(tableView, ++gridRow);
|
||||||
GridPane.setColumnIndex(tableView, 0);
|
GridPane.setColumnIndex(tableView, 0);
|
||||||
|
@ -408,14 +408,12 @@ abstract public class OfferBookView<R extends GridPane, M extends OfferBookViewM
|
||||||
if (showAll) {
|
if (showAll) {
|
||||||
volumeColumn.setTitleWithHelpText(Res.get("shared.amountMinMax"), Res.get("shared.amountHelp"));
|
volumeColumn.setTitleWithHelpText(Res.get("shared.amountMinMax"), Res.get("shared.amountHelp"));
|
||||||
priceColumn.setTitle(Res.get("shared.price"));
|
priceColumn.setTitle(Res.get("shared.price"));
|
||||||
priceColumn.getStyleClass().remove("first-column");
|
|
||||||
|
|
||||||
if (!tableView.getColumns().contains(marketColumn))
|
if (!tableView.getColumns().contains(marketColumn))
|
||||||
tableView.getColumns().add(0, marketColumn);
|
tableView.getColumns().add(0, marketColumn);
|
||||||
} else {
|
} else {
|
||||||
volumeColumn.setTitleWithHelpText(Res.get("offerbook.volume", code), Res.get("shared.amountHelp"));
|
volumeColumn.setTitleWithHelpText(Res.get("offerbook.volume", code), Res.get("shared.amountHelp"));
|
||||||
priceColumn.setTitle(CurrencyUtil.getPriceWithCurrencyCode(code));
|
priceColumn.setTitle(CurrencyUtil.getPriceWithCurrencyCode(code));
|
||||||
priceColumn.getStyleClass().add("first-column");
|
|
||||||
|
|
||||||
tableView.getColumns().remove(marketColumn);
|
tableView.getColumns().remove(marketColumn);
|
||||||
}
|
}
|
||||||
|
@ -818,7 +816,7 @@ abstract public class OfferBookView<R extends GridPane, M extends OfferBookViewM
|
||||||
setMinWidth(40);
|
setMinWidth(40);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
column.getStyleClass().addAll("number-column", "first-column");
|
column.getStyleClass().addAll("number-column");
|
||||||
column.setCellValueFactory((offer) -> new ReadOnlyObjectWrapper<>(offer.getValue()));
|
column.setCellValueFactory((offer) -> new ReadOnlyObjectWrapper<>(offer.getValue()));
|
||||||
column.setCellFactory(
|
column.setCellFactory(
|
||||||
new Callback<>() {
|
new Callback<>() {
|
||||||
|
@ -1246,7 +1244,7 @@ abstract public class OfferBookView<R extends GridPane, M extends OfferBookViewM
|
||||||
setSortable(true);
|
setSortable(true);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
column.getStyleClass().addAll("last-column", "avatar-column");
|
column.getStyleClass().addAll("avatar-column");
|
||||||
column.setCellValueFactory((offer) -> new ReadOnlyObjectWrapper<>(offer.getValue()));
|
column.setCellValueFactory((offer) -> new ReadOnlyObjectWrapper<>(offer.getValue()));
|
||||||
column.setCellFactory(
|
column.setCellFactory(
|
||||||
new Callback<>() {
|
new Callback<>() {
|
||||||
|
|
|
@ -156,7 +156,7 @@ public class ClosedTradesView extends ActivatableViewAndModel<VBox, ClosedTrades
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void initialize() {
|
public void initialize() {
|
||||||
GUIUtil.applyRoundedArc(tableView);
|
GUIUtil.applyTableStyle(tableView);
|
||||||
|
|
||||||
widthListener = (observable, oldValue, newValue) -> onWidthChange((double) newValue);
|
widthListener = (observable, oldValue, newValue) -> onWidthChange((double) newValue);
|
||||||
tradeFeeColumn.setGraphic(new AutoTooltipLabel(ColumnNames.TRADE_FEE.toString().replace(" BTC", "")));
|
tradeFeeColumn.setGraphic(new AutoTooltipLabel(ColumnNames.TRADE_FEE.toString().replace(" BTC", "")));
|
||||||
|
@ -328,7 +328,6 @@ public class ClosedTradesView extends ActivatableViewAndModel<VBox, ClosedTrades
|
||||||
}
|
}
|
||||||
|
|
||||||
private void setTradeIdColumnCellFactory() {
|
private void setTradeIdColumnCellFactory() {
|
||||||
tradeIdColumn.getStyleClass().add("first-column");
|
|
||||||
tradeIdColumn.setCellValueFactory((offerListItem) -> new ReadOnlyObjectWrapper<>(offerListItem.getValue()));
|
tradeIdColumn.setCellValueFactory((offerListItem) -> new ReadOnlyObjectWrapper<>(offerListItem.getValue()));
|
||||||
tradeIdColumn.setCellFactory(
|
tradeIdColumn.setCellFactory(
|
||||||
new Callback<>() {
|
new Callback<>() {
|
||||||
|
@ -465,7 +464,7 @@ public class ClosedTradesView extends ActivatableViewAndModel<VBox, ClosedTrades
|
||||||
|
|
||||||
@SuppressWarnings("UnusedReturnValue")
|
@SuppressWarnings("UnusedReturnValue")
|
||||||
private TableColumn<ClosedTradesListItem, ClosedTradesListItem> setAvatarColumnCellFactory() {
|
private TableColumn<ClosedTradesListItem, ClosedTradesListItem> setAvatarColumnCellFactory() {
|
||||||
avatarColumn.getStyleClass().addAll("last-column", "avatar-column");
|
avatarColumn.getStyleClass().add("avatar-column");
|
||||||
avatarColumn.setCellValueFactory((item) -> new ReadOnlyObjectWrapper<>(item.getValue()));
|
avatarColumn.setCellValueFactory((item) -> new ReadOnlyObjectWrapper<>(item.getValue()));
|
||||||
avatarColumn.setCellFactory(
|
avatarColumn.setCellFactory(
|
||||||
new Callback<>() {
|
new Callback<>() {
|
||||||
|
|
|
@ -115,7 +115,7 @@ public class FailedTradesView extends ActivatableViewAndModel<VBox, FailedTrades
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void initialize() {
|
public void initialize() {
|
||||||
GUIUtil.applyRoundedArc(tableView);
|
GUIUtil.applyTableStyle(tableView);
|
||||||
|
|
||||||
priceColumn.setGraphic(new AutoTooltipLabel(Res.get("shared.price")));
|
priceColumn.setGraphic(new AutoTooltipLabel(Res.get("shared.price")));
|
||||||
amountColumn.setGraphic(new AutoTooltipLabel(Res.get("shared.amountWithCur", Res.getBaseCurrencyCode())));
|
amountColumn.setGraphic(new AutoTooltipLabel(Res.get("shared.amountWithCur", Res.getBaseCurrencyCode())));
|
||||||
|
@ -387,7 +387,6 @@ public class FailedTradesView extends ActivatableViewAndModel<VBox, FailedTrades
|
||||||
}
|
}
|
||||||
|
|
||||||
private void setTradeIdColumnCellFactory() {
|
private void setTradeIdColumnCellFactory() {
|
||||||
tradeIdColumn.getStyleClass().add("first-column");
|
|
||||||
tradeIdColumn.setCellValueFactory((offerListItem) -> new ReadOnlyObjectWrapper<>(offerListItem.getValue()));
|
tradeIdColumn.setCellValueFactory((offerListItem) -> new ReadOnlyObjectWrapper<>(offerListItem.getValue()));
|
||||||
tradeIdColumn.setCellFactory(
|
tradeIdColumn.setCellFactory(
|
||||||
new Callback<>() {
|
new Callback<>() {
|
||||||
|
@ -457,7 +456,6 @@ public class FailedTradesView extends ActivatableViewAndModel<VBox, FailedTrades
|
||||||
}
|
}
|
||||||
|
|
||||||
private void setStateColumnCellFactory() {
|
private void setStateColumnCellFactory() {
|
||||||
stateColumn.getStyleClass().add("last-column");
|
|
||||||
stateColumn.setCellValueFactory((trade) -> new ReadOnlyObjectWrapper<>(trade.getValue()));
|
stateColumn.setCellValueFactory((trade) -> new ReadOnlyObjectWrapper<>(trade.getValue()));
|
||||||
stateColumn.setCellFactory(
|
stateColumn.setCellFactory(
|
||||||
new Callback<>() {
|
new Callback<>() {
|
||||||
|
|
|
@ -156,7 +156,7 @@ public class OpenOffersView extends ActivatableViewAndModel<VBox, OpenOffersView
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void initialize() {
|
public void initialize() {
|
||||||
GUIUtil.applyRoundedArc(tableView);
|
GUIUtil.applyTableStyle(tableView);
|
||||||
|
|
||||||
widthListener = (observable, oldValue, newValue) -> onWidthChange((double) newValue);
|
widthListener = (observable, oldValue, newValue) -> onWidthChange((double) newValue);
|
||||||
groupIdColumn.setGraphic(new AutoTooltipLabel(ColumnNames.GROUP_ID.toString()));
|
groupIdColumn.setGraphic(new AutoTooltipLabel(ColumnNames.GROUP_ID.toString()));
|
||||||
|
@ -529,7 +529,7 @@ public class OpenOffersView extends ActivatableViewAndModel<VBox, OpenOffersView
|
||||||
|
|
||||||
private void setOfferIdColumnCellFactory() {
|
private void setOfferIdColumnCellFactory() {
|
||||||
offerIdColumn.setCellValueFactory((openOfferListItem) -> new ReadOnlyObjectWrapper<>(openOfferListItem.getValue()));
|
offerIdColumn.setCellValueFactory((openOfferListItem) -> new ReadOnlyObjectWrapper<>(openOfferListItem.getValue()));
|
||||||
offerIdColumn.getStyleClass().addAll("number-column", "first-column");
|
offerIdColumn.getStyleClass().addAll("number-column");
|
||||||
offerIdColumn.setCellFactory(
|
offerIdColumn.setCellFactory(
|
||||||
new Callback<>() {
|
new Callback<>() {
|
||||||
|
|
||||||
|
@ -905,7 +905,7 @@ public class OpenOffersView extends ActivatableViewAndModel<VBox, OpenOffersView
|
||||||
}
|
}
|
||||||
|
|
||||||
private void setRemoveColumnCellFactory() {
|
private void setRemoveColumnCellFactory() {
|
||||||
removeItemColumn.getStyleClass().addAll("last-column", "avatar-column");
|
removeItemColumn.getStyleClass().addAll("avatar-column");
|
||||||
removeItemColumn.setCellValueFactory((offerListItem) -> new ReadOnlyObjectWrapper<>(offerListItem.getValue()));
|
removeItemColumn.setCellValueFactory((offerListItem) -> new ReadOnlyObjectWrapper<>(offerListItem.getValue()));
|
||||||
removeItemColumn.setCellFactory(
|
removeItemColumn.setCellFactory(
|
||||||
new Callback<>() {
|
new Callback<>() {
|
||||||
|
|
|
@ -172,7 +172,7 @@ public class PendingTradesView extends ActivatableViewAndModel<VBox, PendingTrad
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void initialize() {
|
public void initialize() {
|
||||||
GUIUtil.applyRoundedArc(tableView);
|
GUIUtil.applyTableStyle(tableView);
|
||||||
|
|
||||||
priceColumn.setGraphic(new AutoTooltipLabel(Res.get("shared.price")));
|
priceColumn.setGraphic(new AutoTooltipLabel(Res.get("shared.price")));
|
||||||
amountColumn.setGraphic(new AutoTooltipLabel(Res.get("shared.amountWithCur", Res.getBaseCurrencyCode())));
|
amountColumn.setGraphic(new AutoTooltipLabel(Res.get("shared.amountWithCur", Res.getBaseCurrencyCode())));
|
||||||
|
@ -610,7 +610,6 @@ public class PendingTradesView extends ActivatableViewAndModel<VBox, PendingTrad
|
||||||
///////////////////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
private void setTradeIdColumnCellFactory() {
|
private void setTradeIdColumnCellFactory() {
|
||||||
tradeIdColumn.getStyleClass().add("first-column");
|
|
||||||
tradeIdColumn.setCellValueFactory((pendingTradesListItem) -> new ReadOnlyObjectWrapper<>(pendingTradesListItem.getValue()));
|
tradeIdColumn.setCellValueFactory((pendingTradesListItem) -> new ReadOnlyObjectWrapper<>(pendingTradesListItem.getValue()));
|
||||||
tradeIdColumn.setCellFactory(
|
tradeIdColumn.setCellFactory(
|
||||||
new Callback<>() {
|
new Callback<>() {
|
||||||
|
@ -824,7 +823,7 @@ public class PendingTradesView extends ActivatableViewAndModel<VBox, PendingTrad
|
||||||
@SuppressWarnings("UnusedReturnValue")
|
@SuppressWarnings("UnusedReturnValue")
|
||||||
private TableColumn<PendingTradesListItem, PendingTradesListItem> setAvatarColumnCellFactory() {
|
private TableColumn<PendingTradesListItem, PendingTradesListItem> setAvatarColumnCellFactory() {
|
||||||
avatarColumn.setCellValueFactory((trade) -> new ReadOnlyObjectWrapper<>(trade.getValue()));
|
avatarColumn.setCellValueFactory((trade) -> new ReadOnlyObjectWrapper<>(trade.getValue()));
|
||||||
avatarColumn.getStyleClass().addAll("last-column", "avatar-column");
|
avatarColumn.getStyleClass().add("avatar-column");
|
||||||
avatarColumn.setCellFactory(
|
avatarColumn.setCellFactory(
|
||||||
new Callback<>() {
|
new Callback<>() {
|
||||||
|
|
||||||
|
@ -863,7 +862,7 @@ public class PendingTradesView extends ActivatableViewAndModel<VBox, PendingTrad
|
||||||
@SuppressWarnings("UnusedReturnValue")
|
@SuppressWarnings("UnusedReturnValue")
|
||||||
private TableColumn<PendingTradesListItem, PendingTradesListItem> setChatColumnCellFactory() {
|
private TableColumn<PendingTradesListItem, PendingTradesListItem> setChatColumnCellFactory() {
|
||||||
chatColumn.setCellValueFactory((trade) -> new ReadOnlyObjectWrapper<>(trade.getValue()));
|
chatColumn.setCellValueFactory((trade) -> new ReadOnlyObjectWrapper<>(trade.getValue()));
|
||||||
chatColumn.getStyleClass().addAll("last-column", "avatar-column");
|
chatColumn.getStyleClass().addAll("avatar-column");
|
||||||
chatColumn.setSortable(false);
|
chatColumn.setSortable(false);
|
||||||
chatColumn.setCellFactory(
|
chatColumn.setCellFactory(
|
||||||
new Callback<>() {
|
new Callback<>() {
|
||||||
|
|
|
@ -149,8 +149,8 @@ public class NetworkSettingsView extends ActivatableView<GridPane, Void> {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void initialize() {
|
public void initialize() {
|
||||||
GUIUtil.applyRoundedArc(p2pPeersTableView);
|
GUIUtil.applyTableStyle(p2pPeersTableView);
|
||||||
GUIUtil.applyRoundedArc(moneroConnectionsTableView);
|
GUIUtil.applyTableStyle(moneroConnectionsTableView);
|
||||||
|
|
||||||
onionAddress.getStyleClass().add("label-float");
|
onionAddress.getStyleClass().add("label-float");
|
||||||
sentDataTextField.getStyleClass().add("label-float");
|
sentDataTextField.getStyleClass().add("label-float");
|
||||||
|
@ -169,7 +169,6 @@ public class NetworkSettingsView extends ActivatableView<GridPane, Void> {
|
||||||
useTorForXmrOnRadio.setText(Res.get("settings.net.useTorForXmrOnRadio"));
|
useTorForXmrOnRadio.setText(Res.get("settings.net.useTorForXmrOnRadio"));
|
||||||
moneroNodesLabel.setText(Res.get("settings.net.moneroNodesLabel"));
|
moneroNodesLabel.setText(Res.get("settings.net.moneroNodesLabel"));
|
||||||
moneroConnectionAddressColumn.setGraphic(new AutoTooltipLabel(Res.get("shared.address")));
|
moneroConnectionAddressColumn.setGraphic(new AutoTooltipLabel(Res.get("shared.address")));
|
||||||
moneroConnectionAddressColumn.getStyleClass().add("first-column");
|
|
||||||
moneroConnectionConnectedColumn.setGraphic(new AutoTooltipLabel(Res.get("settings.net.connection")));
|
moneroConnectionConnectedColumn.setGraphic(new AutoTooltipLabel(Res.get("settings.net.connection")));
|
||||||
localhostXmrNodeInfoLabel.setText(Res.get("settings.net.localhostXmrNodeInfo"));
|
localhostXmrNodeInfoLabel.setText(Res.get("settings.net.localhostXmrNodeInfo"));
|
||||||
useProvidedNodesRadio.setText(Res.get("settings.net.useProvidedNodesRadio"));
|
useProvidedNodesRadio.setText(Res.get("settings.net.useProvidedNodesRadio"));
|
||||||
|
@ -179,7 +178,6 @@ public class NetworkSettingsView extends ActivatableView<GridPane, Void> {
|
||||||
rescanOutputsButton.updateText(Res.get("settings.net.rescanOutputsButton"));
|
rescanOutputsButton.updateText(Res.get("settings.net.rescanOutputsButton"));
|
||||||
p2PPeersLabel.setText(Res.get("settings.net.p2PPeersLabel"));
|
p2PPeersLabel.setText(Res.get("settings.net.p2PPeersLabel"));
|
||||||
onionAddressColumn.setGraphic(new AutoTooltipLabel(Res.get("settings.net.onionAddressColumn")));
|
onionAddressColumn.setGraphic(new AutoTooltipLabel(Res.get("settings.net.onionAddressColumn")));
|
||||||
onionAddressColumn.getStyleClass().add("first-column");
|
|
||||||
creationDateColumn.setGraphic(new AutoTooltipLabel(Res.get("settings.net.creationDateColumn")));
|
creationDateColumn.setGraphic(new AutoTooltipLabel(Res.get("settings.net.creationDateColumn")));
|
||||||
connectionTypeColumn.setGraphic(new AutoTooltipLabel(Res.get("settings.net.connectionTypeColumn")));
|
connectionTypeColumn.setGraphic(new AutoTooltipLabel(Res.get("settings.net.connectionTypeColumn")));
|
||||||
sentDataTextField.setPromptText(Res.get("settings.net.sentDataLabel"));
|
sentDataTextField.setPromptText(Res.get("settings.net.sentDataLabel"));
|
||||||
|
@ -190,7 +188,6 @@ public class NetworkSettingsView extends ActivatableView<GridPane, Void> {
|
||||||
sentBytesColumn.setGraphic(new AutoTooltipLabel(Res.get("settings.net.sentBytesColumn")));
|
sentBytesColumn.setGraphic(new AutoTooltipLabel(Res.get("settings.net.sentBytesColumn")));
|
||||||
receivedBytesColumn.setGraphic(new AutoTooltipLabel(Res.get("settings.net.receivedBytesColumn")));
|
receivedBytesColumn.setGraphic(new AutoTooltipLabel(Res.get("settings.net.receivedBytesColumn")));
|
||||||
peerTypeColumn.setGraphic(new AutoTooltipLabel(Res.get("settings.net.peerTypeColumn")));
|
peerTypeColumn.setGraphic(new AutoTooltipLabel(Res.get("settings.net.peerTypeColumn")));
|
||||||
peerTypeColumn.getStyleClass().add("last-column");
|
|
||||||
openTorSettingsButton.updateText(Res.get("settings.net.openTorSettingsButton"));
|
openTorSettingsButton.updateText(Res.get("settings.net.openTorSettingsButton"));
|
||||||
|
|
||||||
// TODO: hiding button to rescan outputs until supported
|
// TODO: hiding button to rescan outputs until supported
|
||||||
|
|
|
@ -311,7 +311,7 @@ public abstract class DisputeView extends ActivatableView<VBox, Void> implements
|
||||||
VBox.setVgrow(filterBox, Priority.NEVER);
|
VBox.setVgrow(filterBox, Priority.NEVER);
|
||||||
|
|
||||||
tableView = new TableView<>();
|
tableView = new TableView<>();
|
||||||
GUIUtil.applyRoundedArc(tableView);
|
GUIUtil.applyTableStyle(tableView);
|
||||||
VBox.setVgrow(tableView, Priority.SOMETIMES);
|
VBox.setVgrow(tableView, Priority.SOMETIMES);
|
||||||
tableView.setMinHeight(150);
|
tableView.setMinHeight(150);
|
||||||
|
|
||||||
|
@ -958,7 +958,7 @@ public abstract class DisputeView extends ActivatableView<VBox, Void> implements
|
||||||
{
|
{
|
||||||
setMaxWidth(80);
|
setMaxWidth(80);
|
||||||
setMinWidth(65);
|
setMinWidth(65);
|
||||||
getStyleClass().addAll("first-column", "avatar-column");
|
getStyleClass().addAll("avatar-column");
|
||||||
setSortable(false);
|
setSortable(false);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
@ -1355,7 +1355,6 @@ public abstract class DisputeView extends ActivatableView<VBox, Void> implements
|
||||||
setMinWidth(50);
|
setMinWidth(50);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
column.getStyleClass().add("last-column");
|
|
||||||
column.setCellValueFactory((dispute) -> new ReadOnlyObjectWrapper<>(dispute.getValue()));
|
column.setCellValueFactory((dispute) -> new ReadOnlyObjectWrapper<>(dispute.getValue()));
|
||||||
column.setCellFactory(
|
column.setCellFactory(
|
||||||
new Callback<>() {
|
new Callback<>() {
|
||||||
|
|
|
@ -208,7 +208,6 @@ public abstract class DisputeAgentView extends DisputeView implements MultipleHo
|
||||||
protected void setupTable() {
|
protected void setupTable() {
|
||||||
super.setupTable();
|
super.setupTable();
|
||||||
|
|
||||||
stateColumn.getStyleClass().remove("last-column");
|
|
||||||
tableView.getColumns().add(getAlertColumn());
|
tableView.getColumns().add(getAlertColumn());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -243,7 +242,6 @@ public abstract class DisputeAgentView extends DisputeView implements MultipleHo
|
||||||
setMinWidth(50);
|
setMinWidth(50);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
column.getStyleClass().add("last-column");
|
|
||||||
column.setCellValueFactory((dispute) -> new ReadOnlyObjectWrapper<>(dispute.getValue()));
|
column.setCellValueFactory((dispute) -> new ReadOnlyObjectWrapper<>(dispute.getValue()));
|
||||||
column.setCellFactory(
|
column.setCellFactory(
|
||||||
c -> new TableCell<>() {
|
c -> new TableCell<>() {
|
||||||
|
|
|
@ -2466,7 +2466,7 @@ public class FormBuilder {
|
||||||
if (groupStyle != null) titledGroupBg.getStyleClass().add(groupStyle);
|
if (groupStyle != null) titledGroupBg.getStyleClass().add(groupStyle);
|
||||||
|
|
||||||
TableView<T> tableView = new TableView<>();
|
TableView<T> tableView = new TableView<>();
|
||||||
GUIUtil.applyRoundedArc(tableView);
|
GUIUtil.applyTableStyle(tableView);
|
||||||
GridPane.setRowIndex(tableView, rowIndex);
|
GridPane.setRowIndex(tableView, rowIndex);
|
||||||
GridPane.setMargin(tableView, new Insets(top + 30, -10, 5, -10));
|
GridPane.setMargin(tableView, new Insets(top + 30, -10, 5, -10));
|
||||||
gridPane.getChildren().add(tableView);
|
gridPane.getChildren().add(tableView);
|
||||||
|
|
|
@ -65,6 +65,7 @@ import haveno.desktop.main.account.content.traditionalaccounts.TraditionalAccoun
|
||||||
import haveno.desktop.main.overlays.popups.Popup;
|
import haveno.desktop.main.overlays.popups.Popup;
|
||||||
import haveno.network.p2p.P2PService;
|
import haveno.network.p2p.P2PService;
|
||||||
import javafx.collections.FXCollections;
|
import javafx.collections.FXCollections;
|
||||||
|
import javafx.collections.ListChangeListener;
|
||||||
import javafx.geometry.HPos;
|
import javafx.geometry.HPos;
|
||||||
import javafx.geometry.Orientation;
|
import javafx.geometry.Orientation;
|
||||||
import javafx.scene.Node;
|
import javafx.scene.Node;
|
||||||
|
@ -76,6 +77,7 @@ import javafx.scene.control.ListCell;
|
||||||
import javafx.scene.control.ListView;
|
import javafx.scene.control.ListView;
|
||||||
import javafx.scene.control.ScrollBar;
|
import javafx.scene.control.ScrollBar;
|
||||||
import javafx.scene.control.ScrollPane;
|
import javafx.scene.control.ScrollPane;
|
||||||
|
import javafx.scene.control.TableColumn;
|
||||||
import javafx.scene.control.TableView;
|
import javafx.scene.control.TableView;
|
||||||
import javafx.scene.control.TextArea;
|
import javafx.scene.control.TextArea;
|
||||||
import javafx.scene.control.TextField;
|
import javafx.scene.control.TextField;
|
||||||
|
@ -1048,17 +1050,6 @@ public class GUIUtil {
|
||||||
gridPane.getColumnConstraints().addAll(columnConstraints1, columnConstraints2);
|
gridPane.getColumnConstraints().addAll(columnConstraints1, columnConstraints2);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void applyRoundedArc(TableView<?> tableView) {
|
|
||||||
Rectangle clip = new Rectangle();
|
|
||||||
clip.setArcWidth(Layout.ROUNDED_ARC);
|
|
||||||
clip.setArcHeight(Layout.ROUNDED_ARC);
|
|
||||||
tableView.setClip(clip);
|
|
||||||
tableView.layoutBoundsProperty().addListener((obs, oldVal, newVal) -> {
|
|
||||||
clip.setWidth(newVal.getWidth());
|
|
||||||
clip.setHeight(newVal.getHeight());
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void initFilledStyle(TextField textField) {
|
public static void initFilledStyle(TextField textField) {
|
||||||
textField.textProperty().addListener((observable, oldValue, newValue) -> {
|
textField.textProperty().addListener((observable, oldValue, newValue) -> {
|
||||||
setFilledStyle(textField);
|
setFilledStyle(textField);
|
||||||
|
@ -1090,4 +1081,53 @@ public class GUIUtil {
|
||||||
comboBox.getStyleClass().remove("filled");
|
comboBox.getStyleClass().remove("filled");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void applyTableStyle(TableView<?> tableView) {
|
||||||
|
applyRoundedArc(tableView);
|
||||||
|
applyEdgeColumnStyleClasses(tableView);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void applyRoundedArc(TableView<?> tableView) {
|
||||||
|
Rectangle clip = new Rectangle();
|
||||||
|
clip.setArcWidth(Layout.ROUNDED_ARC);
|
||||||
|
clip.setArcHeight(Layout.ROUNDED_ARC);
|
||||||
|
tableView.setClip(clip);
|
||||||
|
tableView.layoutBoundsProperty().addListener((obs, oldVal, newVal) -> {
|
||||||
|
clip.setWidth(newVal.getWidth());
|
||||||
|
clip.setHeight(newVal.getHeight());
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
private static <T> void applyEdgeColumnStyleClasses(TableView<T> tableView) {
|
||||||
|
ListChangeListener<TableColumn<T, ?>> listener = change -> {
|
||||||
|
while (change.next()) {
|
||||||
|
if (change.wasPermutated() || change.wasReplaced()
|
||||||
|
|| change.wasAdded() || change.wasRemoved()) {
|
||||||
|
updateEdgeColumnStyleClasses(tableView);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
tableView.getColumns().addListener(listener);
|
||||||
|
updateEdgeColumnStyleClasses(tableView);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static <T> void updateEdgeColumnStyleClasses(TableView<T> tableView) {
|
||||||
|
var columns = tableView.getColumns();
|
||||||
|
for (TableColumn<T, ?> col : columns) {
|
||||||
|
col.getStyleClass().removeAll("first-column", "last-column");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!columns.isEmpty()) {
|
||||||
|
TableColumn<T, ?> first = columns.get(0);
|
||||||
|
TableColumn<T, ?> last = columns.get(columns.size() - 1);
|
||||||
|
|
||||||
|
if (!first.getStyleClass().contains("first-column")) {
|
||||||
|
first.getStyleClass().add("first-column");
|
||||||
|
}
|
||||||
|
if (!last.getStyleClass().contains("last-column")) {
|
||||||
|
last.getStyleClass().add("last-column");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue