diff --git a/resources/images/cpu.png b/resources/images/cpu.png new file mode 100644 index 0000000..a17de7e Binary files /dev/null and b/resources/images/cpu.png differ diff --git a/resources/images/random.png b/resources/images/random.png new file mode 100644 index 0000000..c63bde1 Binary files /dev/null and b/resources/images/random.png differ diff --git a/resources/images/virtual.png b/resources/images/virtual.png new file mode 100644 index 0000000..8881628 Binary files /dev/null and b/resources/images/virtual.png differ diff --git a/resources/view/TreeView.fxml b/resources/view/TreeView.fxml index 0c0d521..364d79e 100644 --- a/resources/view/TreeView.fxml +++ b/resources/view/TreeView.fxml @@ -8,6 +8,5 @@ prefWidth="600.0" xmlns="http://javafx.com/javafx/15.0.1" xmlns:fx="http://javafx.com/fxml/1"> - diff --git a/src/launcher/Launch.java b/src/launcher/Launch.java index d639e60..c689d77 100644 --- a/src/launcher/Launch.java +++ b/src/launcher/Launch.java @@ -41,11 +41,9 @@ public class Launch extends Application { capteurs.add(captorV); // FXML NOT WORKING - //Stage thermostatStage = new Stage(); - //CapteurView capteurView = new ImageCtrlView(captorV,"view/Image.fxml","mon titre"); - //ThermostatView thermostatView = new ThermostatView(captorV,"view/Thermostat.fxml","mon titre"); + Stage thermostatStage = new Stage(); TreeViewCtrl treeViewCtrl = new TreeViewCtrl(capteurs,"view/TreeView.fxml","treeView"); - + treeViewCtrl.show(); Thread t = new Thread() { public void run() { while (true) { @@ -55,12 +53,12 @@ public class Launch extends Application { } captorV.genTemp(); try { - //((ImageCtrlView) capteurView).changeImage(); + /*((ImageCtrlView) capteurView).changeImage(); System.out.println(captorV.getNom() + ": " + captorV.getTemp().getValue() + " °C"); for (Map.Entry entry : captorV.getCapteurs().entrySet()) { CapteurAbstrait c = entry.getKey(); System.out.println(c.getNom() + ": " + c.getTemp().getValue() + " °C"); - } + }*/ sleep(4000); } catch (InterruptedException e) { throw new RuntimeException(e); diff --git a/src/model/UnitCapteur.java b/src/model/UnitCapteur.java index 4888593..5beb4d5 100644 --- a/src/model/UnitCapteur.java +++ b/src/model/UnitCapteur.java @@ -19,4 +19,8 @@ public class UnitCapteur extends CapteurAbstrait{ public T accept(Visitor v) { return v.visit(this); } + + public StrategyCaptor getStrategie() { + return strategie; + } } diff --git a/src/view/FXMLView.java b/src/view/FXMLView.java index ef1d7e7..1e146c0 100644 --- a/src/view/FXMLView.java +++ b/src/view/FXMLView.java @@ -16,6 +16,5 @@ public class FXMLView extends Stage { Parent root = fxmlLoader.load(); Scene scene = new Scene(root); setScene(scene); - show(); } } diff --git a/src/view/TreeViewCtrl.java b/src/view/TreeViewCtrl.java index b9727d2..edb9c43 100644 --- a/src/view/TreeViewCtrl.java +++ b/src/view/TreeViewCtrl.java @@ -13,62 +13,67 @@ import javafx.scene.control.*; import javafx.scene.image.Image; import javafx.scene.image.ImageView; import javafx.scene.input.MouseEvent; -import model.CapteurAbstrait; -import model.CapteurVirtuel; -import model.TreeItemFactoryVisitor; +import model.*; public class TreeViewCtrl extends FXMLView { @FXML private TreeView treeView; - @FXML - private Spinner spinnerTemp; - private ArrayList capteurAbstraits; + public TreeViewCtrl(ArrayList capteurs, String url, String title) throws IOException { super(url,title); - this.capteurAbstraits = capteurs;; + this.capteurAbstraits = capteurs; + TreeItem root = new TreeItem<>(); - root.setExpanded(true); treeView.setShowRoot(false); + root.setExpanded(true); + //treeView.setRoot(root); TreeItemFactoryVisitor treeItemFactoryVisitor = new TreeItemFactoryVisitor(); + treeView.setVisible(true); - for(CapteurAbstrait capteur: capteurAbstraits){ - TreeItem item = capteur.accept(treeItemFactoryVisitor); - root.getChildren().add(item); + + if (root != null && treeView != null) { + treeView.setRoot(root); + for (CapteurAbstrait capteur : capteurAbstraits) { + TreeItem item = capteur.accept(treeItemFactoryVisitor); + root.getChildren().add(item); + } } +// for(CapteurAbstrait capteur: capteurAbstraits){ +// TreeItem item = capteur.accept(treeItemFactoryVisitor); +// root.getChildren().add(item); +// } this.initializeCapteur(); + } - public void initializeCapteur(){ - treeView.setCellFactory(param -> new TreeCell(){ + public void initializeCapteur() { + treeView.setCellFactory(param -> new TreeCell() { @Override - protected void updateItem(CapteurAbstrait capteur, boolean empty){ - super.updateItem(capteur,empty); - if(empty){ - textProperty().unbind(); - setText(""); - } else { - textProperty().bind(capteur.getNom()); - } - } - }); + protected void updateItem(CapteurAbstrait capteur, boolean empty) { + super.updateItem(capteur, empty); + if (empty || capteur == null) { + textProperty().unbind(); + setText(""); + } else { + textProperty().bind(capteur.getNom()); + String image = "/images/random.png"; + if (capteur.getClass() == CapteurVirtuel.class) { + image = "/images/virtual.png"; + } else if (capteur.getClass() == UnitCapteur.class && ((UnitCapteur) capteur).getStrategie().getClass() == StrategyCPU.class) { + image = "/images/cpu.png"; + } else if (capteur.getClass() == UnitCapteur.class && ((UnitCapteur) capteur).getStrategie().getClass() == StrategyRandom.class) { + image = "/images/random.png"; + } - spinnerTemp.setVisible(true); - - CapteurAbstrait capteur = capteurAbstraits.get(0); - capteur.getTemp().addListener((observable, oldValue, newValue) -> { - System.out.println("Changement de température: " + oldValue + " est passé à " - + newValue); + setGraphic(new ImageView(new Image(image)) {{ + setFitHeight(40); + setFitWidth(40); + }}); + } + } }); - - SpinnerValueFactory spinnerValueFactory = new SpinnerValueFactory.DoubleSpinnerValueFactory(-150,1000,capteur.getTemp().getValue(),0.5); - spinnerTemp.setValueFactory(spinnerValueFactory); - spinnerTemp.getValueFactory().valueProperty().bindBidirectional(capteur.getTemp()); - capteur.genTemp(); - capteur.setTemp(capteur.getTemp().getValue()); - System.out.println("initialize spinner"); - System.out.println(spinnerTemp.getValueFactory().getValue()); - }; + } }