diff --git a/Source/out/production/ProjetJavaFX/model/CapteurVirtuel.class b/Source/out/production/ProjetJavaFX/model/CapteurVirtuel.class index b58f427..613810c 100644 Binary files a/Source/out/production/ProjetJavaFX/model/CapteurVirtuel.class and b/Source/out/production/ProjetJavaFX/model/CapteurVirtuel.class differ diff --git a/Source/out/production/ProjetJavaFX/view/MainPage$1$1.class b/Source/out/production/ProjetJavaFX/view/MainPage$1$1.class deleted file mode 100644 index f10e158..0000000 Binary files a/Source/out/production/ProjetJavaFX/view/MainPage$1$1.class and /dev/null differ diff --git a/Source/out/production/ProjetJavaFX/view/MainPage$1.class b/Source/out/production/ProjetJavaFX/view/MainPage$1.class deleted file mode 100644 index 8659655..0000000 Binary files a/Source/out/production/ProjetJavaFX/view/MainPage$1.class and /dev/null differ diff --git a/Source/out/production/ProjetJavaFX/view/MainPage.class b/Source/out/production/ProjetJavaFX/view/MainPage.class index 2ae2fa3..668faf3 100644 Binary files a/Source/out/production/ProjetJavaFX/view/MainPage.class and b/Source/out/production/ProjetJavaFX/view/MainPage.class differ diff --git a/Source/src/model/CapteurVirtuel.java b/Source/src/model/CapteurVirtuel.java index 42adccd..b4f6ba8 100644 --- a/Source/src/model/CapteurVirtuel.java +++ b/Source/src/model/CapteurVirtuel.java @@ -32,18 +32,6 @@ public class CapteurVirtuel extends Sujet implements Runnable { return this.tempMoyenne.get(); } - public boolean isNegative(){ - return (this.getTempMoyenne()<0); - } - - public boolean isHot(){ - return (this.getTempMoyenne()>30); - } - - @Override - public String toString(){ - return Double.toString(this.getTempMoyenne()); - } public void addToLesCapteurs(Captor c){ lesCapteurs.put((rand.nextInt()%10),c); @@ -68,7 +56,7 @@ public class CapteurVirtuel extends Sujet implements Runnable { while (true){ Platform.runLater(this::updateData); try{ - Thread.sleep(1); + Thread.sleep(1000); } catch (InterruptedException e){ break; diff --git a/Source/src/view/MainPage.java b/Source/src/view/MainPage.java index efd7c60..c6f5e68 100644 --- a/Source/src/view/MainPage.java +++ b/Source/src/view/MainPage.java @@ -9,27 +9,21 @@ import javafx.scene.image.Image; import javafx.scene.image.ImageView; import javafx.scene.layout.*; import javafx.scene.text.Font; -import javafx.util.Callback; import model.*; -import java.io.IOException; public class MainPage { @FXML private Button FirstButton; - @FXML private Button SecondButton; - @FXML private VBox vb1; - @FXML private VBox vb2; - @FXML private ImageView open; - CPUTemp cpuTemp = new CPUTemp("CPU Captor"); CapteurVirtuel cV1 = new CapteurVirtuel("CaptVirt1"); Captor c1 = new Captor("c1"); Captor c2 = new Captor("c2"); + @FXML public void initialize() { @@ -37,82 +31,18 @@ public class MainPage { SecondButton.textProperty().set(cV1.getName()); - - ListView listview = new ListView<>(); - - - - - - ObservableList captors = FXCollections.observableArrayList( - captor->new ObservableValue[]{ - captor.getTempMoyenneProperty() - } - ); - - captors.addListener((ListChangeListener.Change c) ->{ - while (c.next()){ - if (c.wasUpdated()){ - listview.refresh(); - } - } - }); - - c1.startThread(); - c2.startThread(); - - cV1.addToLesCapteurs(c1); - cV1.addToLesCapteurs(c2); - - cV1.startThread(); - - - captors.add(cV1); - - listview.setCellFactory(new Callback<>() { - - @Override - public ListCell call(ListView captorListView) { - return new ListCell<>() { - @Override - protected void updateItem(CapteurVirtuel value, boolean empty) { - String text = ""; - super.updateItem(value, empty); - if (value != null) { - text = value.getTempMoyenne().toString(); - } - setText(text); - String style = null; - if (!empty) { - assert value != null; - if (value.isNegative()) { - style = "-fx-text-fill : blue"; - } - } - if (!empty && value.isHot()) { - style = "-fx-text-fill : red"; - } - setStyle(style); - } - }; - } - }); - - listview.setItems(captors); + open.setFitWidth(18); + open.setFitHeight(18); FirstButton.setOnAction(e -> { + vb1.getChildren().clear(); - try { - vb1.getChildren().add(setVboxCPUCaptor()); - } catch (IOException ex) { - throw new RuntimeException(ex); - } - }); + vb1.getChildren().add(setVboxCPUCaptor()); - open.setFitWidth(18); - open.setFitHeight(18); + }); SecondButton.setOnAction(e -> { + if (!vb2.getChildren().isEmpty()){ open.setImage(new Image("https://www.citypng.com/public/uploads/preview/download-black-right-triangle-png-31629764954y0662peplm.png")); @@ -120,14 +50,17 @@ public class MainPage { }else{ + vb1.getChildren().clear(); + vb1.getChildren().add(setDisplayVirtualCaptor()); open.setImage(new Image("https://cdn-icons-png.flaticon.com/512/0/159.png")); vb2.getChildren().add(setHBoxFirstCaptor()); vb2.getChildren().add(setHBoxSecondCaptor()); + } }); } - private VBox setVboxCPUCaptor() throws IOException { + private VBox setVboxCPUCaptor() { VBox FirstCaptorCPU = new VBox(); @@ -135,16 +68,24 @@ public class MainPage { ImageView FirstCaptorCPUImage = new ImageView(new Image("https://media.istockphoto.com/id/1204740322/fr/photo/cpu.jpg?s=612x612&w=0&k=20&c=cF154ASgimXysleBPyYsFMI9_GKkkTpDQ0kZTJnm_K0=")); + FirstCaptorCPUImage.setFitWidth(570); + Label FirstCaptorCPULabel = new Label("Temperature"); + FirstCaptorCPULabel.setFont(new Font("Arial", 30)); FirstCaptorCPULabel.setMaxWidth(Double.MAX_VALUE); FirstCaptorCPULabel.setAlignment(Pos.CENTER); FirstCaptorCPULabel.setWrapText(true); + if (cpuTemp.getTemperature()==0.0){ + FirstCaptorCPULabel.setFont(new Font("Arial", 15)); FirstCaptorCPULabel.textProperty().set("Impossible de récupérer la temperature du CPU, possiblement car le fichier qui contient cette temperature n'existe pas ou n'est pas au même endroit que celui utilisé lors du développement."); + }else{ + FirstCaptorCPULabel.textProperty().set("Temperature du CPU : " + cpuTemp.getTemperature() + "°C"); + } @@ -152,21 +93,27 @@ public class MainPage { FirstCaptorCPU.getChildren().add(FirstCaptorCPULabel); ObservableList CPUTemperature = FXCollections.observableArrayList( - captor-> new ObservableValue[]{ - captor.getTemperatureProperty() + + captorCPU-> new ObservableValue[]{ + captorCPU.getTemperatureProperty() } + ); CPUTemperature.addListener((ListChangeListener.Change c) ->{ + while (c.next()){ if (c.wasUpdated()){ FirstCaptorCPULabel.textProperty().set("Temperature du CPU : " + cpuTemp.getTemperature() + "°C"); } } + }); cpuTemp.startThread(); + CPUTemperature.add(cpuTemp); + return FirstCaptorCPU; } @@ -211,4 +158,69 @@ public class MainPage { } + private VBox setDisplayVirtualCaptor(){ + + VBox CaptorVirtual = new VBox(); + + Label ViewTempVirtualCaptor = new Label("Temperature moyenne des sous-capteurs du capteur virtuel : " + cV1.getTempMoyenne() + "°C"); + + ViewTempVirtualCaptor.setFont(new Font("Arial",20)); + ViewTempVirtualCaptor.setMaxWidth(Double.MAX_VALUE); + ViewTempVirtualCaptor.setAlignment(Pos.CENTER); + ViewTempVirtualCaptor.setWrapText(true); + + ImageView VirtualCaptorImage = new ImageView(new Image("https://static.thenounproject.com/png/56610-200.png")); + + VirtualCaptorImage.setFitWidth(500); + VirtualCaptorImage.setFitHeight(300); + + + CaptorVirtual.getChildren().add(VirtualCaptorImage); + CaptorVirtual.getChildren().add(ViewTempVirtualCaptor); + + c1.startThread(); + c2.startThread(); + + cV1.addToLesCapteurs(c1); + cV1.addToLesCapteurs(c2); + + cV1.startThread(); + + ObservableList VirtualCaptor = FXCollections.observableArrayList( + VirtCaptor->new ObservableValue[]{ + VirtCaptor.getTempMoyenneProperty() + } + ); + + VirtualCaptor.addListener((ListChangeListener.Change c) ->{ + while (c.next()){ + + if (c.wasUpdated()){ + + Double temp = cV1.getTempMoyenne(); + + if (temp < 0){ + + ViewTempVirtualCaptor.setStyle("-fx-text-fill : blue"); + + } else if (temp > 30) { + + ViewTempVirtualCaptor.setStyle("-fx-text-fill : red"); + + }else { + + ViewTempVirtualCaptor.setStyle("-fx-text-fill : black"); + + } + ViewTempVirtualCaptor.textProperty().set("Temperature moyenne des sous-capteurs du capteur virtuel : " + Math.round(cV1.getTempMoyenne()*10.0)/10.0 + "°C"); + } + } + }); + + VirtualCaptor.add(cV1); + + + return CaptorVirtual; + } + }