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
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());
|
|
});
|
|
|
|
}
|
|
}
|