add margin columns to tables

This commit is contained in:
woodser 2025-05-21 10:37:03 -04:00
parent c14eb2c872
commit bac515d5ca
No known key found for this signature in database
GPG key ID: 55A10DD48ADEE5EF
2 changed files with 27 additions and 4 deletions

View file

@ -1143,7 +1143,7 @@ textfield */
}
.table-view .table-cell.last-column {
-fx-padding: 6 15 4 0;
-fx-padding: 6 0 4 0;
}
.table-view .table-cell.avatar-column {
@ -1152,18 +1152,18 @@ textfield */
}
.table-view .table-cell.first-column {
-fx-padding: 6 0 4 15;
-fx-padding: 6 0 4 0;
}
.table-view .column-header.last-column .label {
}
.table-view .column-header.first-column {
-fx-padding: 0 0 0 15;
-fx-padding: 0 0 0 0;
}
.table-view .column-header.last-column {
-fx-padding: 0 15 0 0;
-fx-padding: 0 0 0 0;
}
.table-view .column-header.avatar-column {

View file

@ -81,6 +81,7 @@ import javafx.scene.control.ListCell;
import javafx.scene.control.ListView;
import javafx.scene.control.ScrollBar;
import javafx.scene.control.ScrollPane;
import javafx.scene.control.TableCell;
import javafx.scene.control.TableColumn;
import javafx.scene.control.TableView;
import javafx.scene.control.TextArea;
@ -1095,6 +1096,7 @@ public class GUIUtil {
public static void applyTableStyle(TableView<?> tableView, boolean applyRoundedArc) {
if (applyRoundedArc) applyRoundedArc(tableView);
addSpacerColumns(tableView);
applyEdgeColumnStyleClasses(tableView);
}
@ -1109,6 +1111,27 @@ public class GUIUtil {
});
}
private static <T> void addSpacerColumns(TableView<T> tableView) {
TableColumn<T, Void> leftSpacer = new TableColumn<>();
TableColumn<T, Void> rightSpacer = new TableColumn<>();
configureSpacerColumn(leftSpacer);
configureSpacerColumn(rightSpacer);
tableView.getColumns().add(0, leftSpacer);
tableView.getColumns().add(rightSpacer);
}
private static void configureSpacerColumn(TableColumn<?, ?> column) {
column.setPrefWidth(15);
column.setMaxWidth(15);
column.setMinWidth(15);
column.setReorderable(false);
column.setResizable(false);
column.setSortable(false);
column.setCellFactory(col -> new TableCell<>()); // empty cell
}
private static <T> void applyEdgeColumnStyleClasses(TableView<T> tableView) {
ListChangeListener<TableColumn<T, ?>> columnListener = change -> {
updateEdgeColumnStyleClasses(tableView);