You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

67 lines
2.0 KiB

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<Capteur> lesCapteurs, String url, String title) throws IOException {
super(url,title);
this.lesCapteurs = lesCapteurs;
TreeItem<Capteur> root=new TreeItem<>();
for (Capteur capteur: lesCapteurs) {
TreeItem<Capteur> item = new TreeItem<>(capteur);
addTreeItem(item);
root.getChildren().add(item);
}
tree=new TreeView<>(root);
}
private void addTreeItem(TreeItem<Capteur> cap){
if (cap.getValue() instanceof CapteurVirtuel){
for (Capteur capteur : ((CapteurVirtuel) cap.getValue()).getLesCapteurs().values()){
TreeItem<Capteur> item = new TreeItem<>(capteur);
addTreeItem(item);
cap.getChildren().add(item);
}
}
cap.getChildren().add(cap);
}
@FXML
private TreeView<Capteur> tree;
@FXML
private TextArea name;
@FXML
private TextArea temperature;
private ObservableList<Capteur> lesCapteurs;
public void initialize() {
tree.getSelectionModel().selectedItemProperty().addListener((observableValue, capteurTreeItem, t1) -> {
name.textProperty().unbindBidirectional(t1.getValue().nomProperty());
temperature.textProperty().unbindBidirectional(t1.getValue().temperatureProperty());
});
}
}