From f20229e10db359e37dc1197efb9cce39c1a97b4f Mon Sep 17 00:00:00 2001
From: Sousfiane <thibaultcroisier@live.com>
Date: Fri, 11 Oct 2024 10:34:16 +0200
Subject: [PATCH] TO COMPLETE

---
 .../fr/univlille/iut/r304/thermo/Main.java    |  2 +-
 .../iut/r304/thermo/model/Thermostat.java     | 23 +++++----
 .../iut/r304/thermo/view/TextView.java        | 50 ++++++++++++++++---
 3 files changed, 56 insertions(+), 19 deletions(-)

diff --git a/src/main/java/fr/univlille/iut/r304/thermo/Main.java b/src/main/java/fr/univlille/iut/r304/thermo/Main.java
index 9ab0f10..42fa5e9 100644
--- a/src/main/java/fr/univlille/iut/r304/thermo/Main.java
+++ b/src/main/java/fr/univlille/iut/r304/thermo/Main.java
@@ -14,7 +14,7 @@ public class Main extends Application {
 	@Override
 	public void start(Stage primaryStage) throws Exception {
 		Thermostat thermo = new Thermostat();
-		new TextView(thermo);
+		 new TextView(thermo);
 	}
 
 }
diff --git a/src/main/java/fr/univlille/iut/r304/thermo/model/Thermostat.java b/src/main/java/fr/univlille/iut/r304/thermo/model/Thermostat.java
index 9d86f76..aed4e7e 100644
--- a/src/main/java/fr/univlille/iut/r304/thermo/model/Thermostat.java
+++ b/src/main/java/fr/univlille/iut/r304/thermo/model/Thermostat.java
@@ -1,29 +1,32 @@
 package fr.univlille.iut.r304.thermo.model;
 
-public class Thermostat implements ITemperature {
+import fr.univlille.iut.r304.utils.ConnectableProperty;
+
+public class Thermostat extends ConnectableProperty implements ITemperature {
+
+    public Thermostat(){
+        super();
+        this.setValue(0.0);
+    }
 
 	@Override
 	public void setTemperature(double d) {
-		// TODO Auto-generated method stub
-		
+        this.setValue(d);
 	}
 
 	@Override
 	public Double getTemperature() {
-		// TODO Auto-generated method stub
-		return null;
+		return (double) this.value;
 	}
 
 	@Override
-	public void incrementTemperature() {
-		// TODO Auto-generated method stub
-		
+	public void incrementTemperature() {	
+        this.setTemperature(this.getTemperature()+5);
 	}
 
 	@Override
 	public void decrementTemperature() {
-		// TODO Auto-generated method stub
-		
+        this.setTemperature(this.getTemperature()-5);
 	}
 
 }
diff --git a/src/main/java/fr/univlille/iut/r304/thermo/view/TextView.java b/src/main/java/fr/univlille/iut/r304/thermo/view/TextView.java
index 4faa759..96f01ad 100644
--- a/src/main/java/fr/univlille/iut/r304/thermo/view/TextView.java
+++ b/src/main/java/fr/univlille/iut/r304/thermo/view/TextView.java
@@ -1,32 +1,66 @@
 package fr.univlille.iut.r304.thermo.view;
 
 import fr.univlille.iut.r304.thermo.model.Thermostat;
+import fr.univlille.iut.r304.utils.Observable;
+import fr.univlille.iut.r304.utils.Observer;
+import javafx.scene.Scene;
+import javafx.scene.control.Button;
+import javafx.scene.control.TextField;
+import javafx.scene.layout.HBox;
 import javafx.stage.Stage;
 
-public class TextView extends Stage implements ITemperatureView {
+public class TextView extends Stage implements ITemperatureView, Observer {
+
+    protected Scene scene;
+    protected HBox root;
+    protected TextField field;
+    protected Button incButton;
+    protected Button decButton;
+    protected Thermostat model;
 
 	public TextView(Thermostat model) {
-		//simplement pour avoir qqch qui s'affiche à la prise en main du dépôt
+        this.model = model;
+        this.model.attach(this);
+        this.field = new TextField();
+        this.incButton = new Button("+");
+        this.decButton = new Button("-");
+        this.root = new HBox();
+        this.root.getChildren().addAll(incButton, field, decButton);
+        this.scene = new Scene(root);
+        this.incButton.setOnMouseClicked(e -> {
+            this.incrementAction();
+        });
+        this.decButton.setOnMouseClicked(e -> {
+            this.decrementAction();
+        });
+        this.update(model);
 		this.setTitle("Thermostat");
+        this.setScene(scene);
 		this.show();
 	}
 
 	@Override
 	public double getDisplayedValue() {
-		// TODO Auto-generated method stub
-		return 0;
+		return Double.parseDouble(this.field.getText());
 	}
 
 	@Override
 	public void incrementAction() {
-		// TODO Auto-generated method stub
-		
+	    this.model.incrementTemperature();	
 	}
 
 	@Override
 	public void decrementAction() {
-		// TODO Auto-generated method stub
-		
+	    this.model.decrementTemperature();	
 	}
 
+    @Override
+    public void update(Observable observable) {
+        this.field.setText(""+this.model.getValue()); 
+    }
+
+    @Override
+    public void update(Observable observable, Object data) {
+    }
+
 }
-- 
GitLab