package view; import javafx.beans.property.ListProperty; import javafx.beans.property.Property; import javafx.beans.property.SimpleListProperty; import javafx.beans.value.ChangeListener; import javafx.beans.value.ObservableValue; import javafx.collections.FXCollections; import javafx.collections.ObservableList; import javafx.event.Event; import javafx.event.EventHandler; import javafx.event.EventType; import javafx.fxml.FXML; import javafx.scene.control.*; import javafx.util.converter.NumberStringConverter; import modele.Capteur; import modele.CapteurVirtuel; import java.io.IOException; import java.util.ArrayList; public class TreeViewCapteur extends FxmlWindow { public TreeViewCapteur(ObservableList lesCapteurs, String url, String title) throws IOException { super(url,title); this.lesCapteurs = lesCapteurs; TreeItem root=new TreeItem<>(); for (Capteur capteur: lesCapteurs) { TreeItem item = new TreeItem<>(capteur); addTreeItem(item); root.getChildren().add(item); } tree=new TreeView<>(root); } private void addTreeItem(TreeItem cap){ if (cap.getValue() instanceof CapteurVirtuel){ for (Capteur capteur : ((CapteurVirtuel) cap.getValue()).getLesCapteurs().values()){ TreeItem item = new TreeItem<>(capteur); addTreeItem(item); cap.getChildren().add(item); } } cap.getChildren().add(cap); } @FXML private TreeView tree; @FXML private TextArea name; @FXML private TextArea temperature; private ObservableList lesCapteurs; public void initialize() { tree.getSelectionModel().selectedItemProperty().addListener((observableValue, capteurTreeItem, t1) -> { name.textProperty().unbindBidirectional(t1.getValue().nomProperty()); temperature.textProperty().unbindBidirectional(t1.getValue().temperatureProperty()); }); } }