From dccf428bb88f7aee95708d5e0088337117cad242 Mon Sep 17 00:00:00 2001 From: lieght <49651652+BAFGdeJong@users.noreply.github.com> Date: Sun, 14 Dec 2025 17:18:57 +0100 Subject: [PATCH] TableWidget --- .../toop/app/widget/complex/TableWidget.java | 61 +++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 app/src/main/java/org/toop/app/widget/complex/TableWidget.java diff --git a/app/src/main/java/org/toop/app/widget/complex/TableWidget.java b/app/src/main/java/org/toop/app/widget/complex/TableWidget.java new file mode 100644 index 0000000..8c0c2ae --- /dev/null +++ b/app/src/main/java/org/toop/app/widget/complex/TableWidget.java @@ -0,0 +1,61 @@ +package org.toop.app.widget.complex; + +import javafx.collections.FXCollections; +import javafx.collections.ObservableList; +import javafx.geometry.Pos; +import javafx.scene.control.TableColumn; +import javafx.scene.control.TableView; +import javafx.scene.control.cell.PropertyValueFactory; + +import java.util.ArrayList; +import java.util.List; + +public class TableWidget extends PopupWidget { + private ObservableList serverList = FXCollections.observableArrayList(); + private TableView table = new TableView<>(); + + + public TableWidget(String... columns) { + var cols = new ArrayList>(); + + for (String column : columns) { + TableColumn col = new TableColumn<>(column.toUpperCase()); + col.setCellValueFactory(new PropertyValueFactory<>(column)); + cols.add(col); + } + + table.getColumns().addAll(cols); + update(); + onColumnClicked(); + + add(Pos.CENTER, table); + } + + public void add(DATATYPE serverFound) { + serverList.add(serverFound); + update(); + } + + public void add(List serverFound) { + serverList.addAll(serverFound); + } + + public void remove(DATATYPE serverFound) { + serverList.remove(serverFound); + update(); + } + + public void onColumnClicked() { + table.setOnMouseClicked(event -> { + DATATYPE selected = table.getSelectionModel().getSelectedItem(); + if (selected == null) return; + IO.println(selected.toString()); + }); + } + + private void update() { + table.setItems(serverList); + } + + +}