diff --git a/src/launcher/Launch.java b/src/launcher/Launch.java index 21fb24f..6567581 100644 --- a/src/launcher/Launch.java +++ b/src/launcher/Launch.java @@ -3,6 +3,9 @@ package launcher; import javafx.application.Application; import javafx.stage.Stage; import model.*; +import view.CapteurView; +import view.ImageCtrlView; +import view.ThermostatView; import java.io.IOException; import java.util.Map; @@ -14,22 +17,25 @@ public class Launch extends Application { @Override public void start(Stage primaryStage) throws IOException, InterruptedException { - StrategyRandom captorS = new StrategyRandom(1,"Capteur Simple"); - CapteurIntervalle captorI = new CapteurIntervalle(2,"Capteur Intervalle",0.0,10.0); - CapteurRealiste captorR = new CapteurRealiste(3,"Capteur Realiste", 5.0, 10.0); - CapteurCPU captorC = new CapteurCPU(4,"Capteur CPU"); + + UnitCapteur captorI = new UnitCapteur(2,"Capteur Intervalle",new StrategyCPU()); + UnitCapteur captorR = new UnitCapteur(3,"Capteur Realiste", new StrategyCPU()); + UnitCapteur captorC = new UnitCapteur(4,"Capteur CPU",new StrategyCPU()); CapteurVirtuel captorV = new CapteurVirtuel(5,"CapteurVirtuel"); - captorV.addCapteur(captorS,1); captorV.addCapteur(captorI,1); captorV.addCapteur(captorC,1); captorV.addCapteur(captorR,1); // FXML NOT WORKING - /*Stage thermostatStage = new Stage(); - CapteurView capteurView = new ImageCtrlView(captor,"view/Image.fxml","mon titre"); - ThermostatView thermostatView = new ThermostatView(captor,"view/Thermostat.fxml","mon titre"); - */ + Stage thermostatStage = new Stage(); + CapteurView capteurView = new ImageCtrlView(captorV,"view/Image.fxml","mon titre"); + for (Map.Entry entry : captorV.getCapteurs().entrySet()) { + CapteurAbstrait c = entry.getKey(); + c.genTemp(); + } + ThermostatView thermostatView = new ThermostatView(captorV,"view/Thermostat.fxml","mon titre"); + //Random random = new Random(); Thread t = new Thread() { diff --git a/src/model/CapteurAbstrait.java b/src/model/CapteurAbstrait.java index c62b46d..f1bfd4b 100644 --- a/src/model/CapteurAbstrait.java +++ b/src/model/CapteurAbstrait.java @@ -13,7 +13,7 @@ public abstract class CapteurAbstrait { this.nom = nom; this.temp.setValue(0.0); } - //public abstract void genTemp(); + public abstract void genTemp(); /* Getters - Setters */ public int getId() { diff --git a/src/model/StrategyCPU.java b/src/model/StrategyCPU.java index 67d7d9c..0769361 100644 --- a/src/model/StrategyCPU.java +++ b/src/model/StrategyCPU.java @@ -8,11 +8,11 @@ import java.nio.file.Paths; public class StrategyCPU implements StrategyCaptor { @Override - public void genTemp(CapteurAbstrait c) { + public double genTemp() { try{ String temp = new String(Files.readAllBytes(Paths.get("/sys/class/thermal/thermal_zone0/temp"))); double tempCelsius = Double.parseDouble(temp)/1000.0; - c.setTemp(tempCelsius); + return tempCelsius; } catch (IOException e) { throw new RuntimeException(e); } diff --git a/src/model/StrategyCaptor.java b/src/model/StrategyCaptor.java index ba3b3d4..d6f0f17 100644 --- a/src/model/StrategyCaptor.java +++ b/src/model/StrategyCaptor.java @@ -1,5 +1,5 @@ package model; public interface StrategyCaptor { - public void genTemp(CapteurAbstrait c); + public double genTemp(); } diff --git a/src/model/StrategyRandom.java b/src/model/StrategyRandom.java index 0662f5a..3f94bb3 100644 --- a/src/model/StrategyRandom.java +++ b/src/model/StrategyRandom.java @@ -6,8 +6,8 @@ import java.util.Random; public class StrategyRandom implements StrategyCaptor { @Override - public void genTemp(CapteurAbstrait c) { + public double genTemp() { Random random = new Random(); - c.setTemp(random.nextInt(30)); + return random.nextDouble(30); } } diff --git a/src/model/UnitCapteur.java b/src/model/UnitCapteur.java index c72c464..080d81a 100644 --- a/src/model/UnitCapteur.java +++ b/src/model/UnitCapteur.java @@ -8,7 +8,8 @@ public class UnitCapteur extends CapteurAbstrait{ this.strategie = st; } - public void contexte(){ - this.strategie.genTemp(this); + @Override + public void genTemp() { + strategie.genTemp(); } } diff --git a/src/view/CapteurView.java b/src/view/CapteurView.java index 6ddb007..0901e3f 100644 --- a/src/view/CapteurView.java +++ b/src/view/CapteurView.java @@ -2,6 +2,7 @@ package view; import javafx.fxml.FXML; import javafx.scene.control.Button; +import model.CapteurAbstrait; import model.StrategyRandom; import java.io.IOException; @@ -11,14 +12,14 @@ public abstract class CapteurView extends FXMLView { @FXML Button myBtn; - protected StrategyRandom capteur; + protected CapteurAbstrait capteur; - public CapteurView(StrategyRandom capteur, String url, String title) throws IOException { + public CapteurView(CapteurAbstrait capteur, String url, String title) throws IOException { super(url,title); this.setCapteur(capteur); } - public void setCapteur(StrategyRandom capteur) { + public void setCapteur(CapteurAbstrait capteur) { this.capteur = capteur; } diff --git a/src/view/ImageCtrlView.java b/src/view/ImageCtrlView.java index 518309e..13445bc 100644 --- a/src/view/ImageCtrlView.java +++ b/src/view/ImageCtrlView.java @@ -4,6 +4,7 @@ import javafx.application.Platform; import javafx.fxml.FXML; import javafx.scene.image.Image; import javafx.scene.image.ImageView; +import model.CapteurAbstrait; import model.StrategyRandom; import java.io.IOException; @@ -14,11 +15,11 @@ public class ImageCtrlView extends CapteurView{ Class clazz = this.getClass(); InputStream input; - protected StrategyRandom capteur; + protected CapteurAbstrait capteur; @FXML ImageView imageview; - public ImageCtrlView(StrategyRandom capteur, String url, String title) throws IOException { + public ImageCtrlView(CapteurAbstrait capteur, String url, String title) throws IOException { super(capteur,url,title); this.capteur = capteur; myBtn.setOnAction(e -> Platform.exit()); diff --git a/src/view/ThermostatView.java b/src/view/ThermostatView.java index f798cb7..5eccbe2 100644 --- a/src/view/ThermostatView.java +++ b/src/view/ThermostatView.java @@ -4,6 +4,7 @@ import javafx.application.Platform; import javafx.fxml.FXML; import javafx.scene.control.Spinner; import javafx.scene.control.SpinnerValueFactory; +import model.CapteurAbstrait; import model.StrategyRandom; import java.io.IOException; @@ -14,18 +15,20 @@ public class ThermostatView extends CapteurView{ @FXML Spinner spin; - protected StrategyRandom capteur; + protected CapteurAbstrait capteur; - public ThermostatView(StrategyRandom capteur, String url, String title) throws IOException { + public ThermostatView(CapteurAbstrait capteur, String url, String title) throws IOException { super(capteur,url,title); + this.capteur=capteur; this.spin.setValueFactory(new SpinnerValueFactory.DoubleSpinnerValueFactory(0d,100d)); this.spin.getValueFactory().valueProperty().bindBidirectional(this.capteur.getTemp()); + SpinnerValueFactory valueFactory = new SpinnerValueFactory.DoubleSpinnerValueFactory(capteur.getTemp().getValue(),capteur.getTemp().getValue(), capteur.getTemp().getValue()); + spin.setValueFactory(valueFactory); myBtn.setOnAction(e -> Platform.exit()); } public void initialize() { - SpinnerValueFactory valueFactory = new SpinnerValueFactory.DoubleSpinnerValueFactory(capteur.getTemp().getValue(),capteur.getTemp().getValue(), capteur.getTemp().getValue()); - spin.setValueFactory(valueFactory); + } }