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 9ab0f10c6f1bcbd671d681229e4934137cea4279..d920feb1223916fec7e9e535c2983bdf744d790a 100644
--- a/src/main/java/fr/univlille/iut/r304/thermo/Main.java
+++ b/src/main/java/fr/univlille/iut/r304/thermo/Main.java
@@ -1,20 +1,28 @@
 package fr.univlille.iut.r304.thermo;
 
 import fr.univlille.iut.r304.thermo.model.Thermostat;
+import fr.univlille.iut.r304.thermo.view.SliderView;
 import fr.univlille.iut.r304.thermo.view.TextView;
 import javafx.application.Application;
+
 import javafx.stage.Stage;
 
+
+import java.awt.*;
+
 public class Main extends Application {
 
+	Thermostat thermo = new Thermostat();
+
 	public static void main(String[] args) {
 		launch(args);
 	}
 
+
 	@Override
 	public void start(Stage primaryStage) throws Exception {
-		Thermostat thermo = new Thermostat();
 		new TextView(thermo);
+		new SliderView(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 9d86f764c0563d05a0e479f4ddbe891165ad9758..e83cdbc65d0a054b64f9fa2fa44d6bcad90f9241 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,27 @@
 package fr.univlille.iut.r304.thermo.model;
+import fr.univlille.iut.r304.utils.*;
 
-public class Thermostat implements ITemperature {
+public class Thermostat extends ConnectableProperty implements ITemperature{
+
+	private double temperature;
 
 	@Override
 	public void setTemperature(double d) {
-		// TODO Auto-generated method stub
-		
+		this.temperature = d;
 	}
 
 	@Override
 	public Double getTemperature() {
-		// TODO Auto-generated method stub
-		return null;
+		return this.temperature;
 	}
 
 	@Override
 	public void incrementTemperature() {
-		// TODO Auto-generated method stub
-		
+		this.setTemperature(this.getTemperature() + 1);
 	}
 
 	@Override
 	public void decrementTemperature() {
-		// TODO Auto-generated method stub
-		
+		this.setTemperature(this.getTemperature() - 1);
 	}
-
 }
diff --git a/src/main/java/fr/univlille/iut/r304/thermo/view/SliderView.java b/src/main/java/fr/univlille/iut/r304/thermo/view/SliderView.java
new file mode 100644
index 0000000000000000000000000000000000000000..a5a86d66a080adebaf814cc6b338d8d47ceaf15c
--- /dev/null
+++ b/src/main/java/fr/univlille/iut/r304/thermo/view/SliderView.java
@@ -0,0 +1,97 @@
+package fr.univlille.iut.r304.thermo.view;
+
+import fr.univlille.iut.r304.thermo.model.Thermostat;
+import fr.univlille.iut.r304.utils.ConnectableProperty;
+import fr.univlille.iut.r304.utils.Observable;
+import fr.univlille.iut.r304.utils.Observer;
+import javafx.geometry.Orientation;
+import javafx.geometry.Pos;
+import javafx.scene.Scene;
+import javafx.scene.control.Button;
+import javafx.scene.control.Slider;
+import javafx.scene.control.TextField;
+import javafx.scene.layout.HBox;
+import javafx.scene.layout.VBox;
+import javafx.scene.text.Text;
+import javafx.stage.Stage;
+
+public class SliderView extends Stage implements ITemperatureView, Observer{
+
+    private static final String TITLE = "Thermostat";
+    protected Thermostat model;
+    protected boolean wasUpdated = false;
+    Slider slider = new Slider(0, 100, 0);
+
+    public SliderView(Thermostat model) {
+        this.model = model;
+        model.attach(this);
+
+
+
+        Stage primaryStage = new Stage();
+        VBox root = new VBox();
+        Scene scene = new Scene(root, 300, 200);
+        primaryStage.setScene(scene);
+        primaryStage.setTitle(TITLE);
+
+        Button incrementButton = new Button("+");
+        Button decrementButton = new Button("-");
+
+        slider.setOrientation(Orientation.VERTICAL);
+        slider.setShowTickLabels(true);
+
+
+        slider.valueProperty().addListener((observable, oldValue, newValue) -> {
+            newValue = (int) Math.round(newValue.doubleValue());
+            model.setTemperature(newValue.doubleValue());
+            model.notifyObservers(model.getTemperature());
+        });
+
+        incrementButton.setOnAction(e -> {
+            model.setTemperature(model.getTemperature() + 5);
+            model.notifyObservers(model.getTemperature());
+        });
+
+        decrementButton.setOnAction(e -> {
+            model.setTemperature(model.getTemperature() -5);
+            model.notifyObservers(model.getTemperature());
+        });
+
+        root.getChildren().addAll(incrementButton, slider, decrementButton);
+        root.setAlignment(Pos.CENTER);
+
+        primaryStage.show();
+    }
+
+    @Override
+    public double getDisplayedValue() {
+        return model.getTemperature();
+    }
+
+    @Override
+    public void incrementAction() {
+        model.incrementTemperature();
+    }
+
+    @Override
+    public void decrementAction() {
+        model.decrementTemperature();
+    }
+
+    public void update(Observable o) {
+        if (o instanceof Thermostat) {
+            wasUpdated = true;
+        }
+    }
+
+    public void update(Observable o, Object arg) {
+        if (o instanceof Thermostat) {
+            wasUpdated = true;
+            if (arg instanceof Double) {
+                System.out.println("Temperature : " + arg);
+                slider.setValue((double) arg);
+            }
+        }
+    }
+
+}
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 4faa759f6764a99144422ba1e6c9d45da0a15810..5828a6e31b9ec8e4c440c2e4095634dd9e28e6b3 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,100 @@
 package fr.univlille.iut.r304.thermo.view;
 
 import fr.univlille.iut.r304.thermo.model.Thermostat;
+import fr.univlille.iut.r304.utils.ConnectableProperty;
+import fr.univlille.iut.r304.utils.Observable;
+import fr.univlille.iut.r304.utils.Observer;
+import javafx.geometry.Pos;
+import javafx.scene.Scene;
+import javafx.scene.control.Button;
+import javafx.scene.control.TextField;
+import javafx.scene.layout.HBox;
+import javafx.scene.layout.VBox;
+import javafx.scene.text.Text;
 import javafx.stage.Stage;
 
-public class TextView extends Stage implements ITemperatureView {
+public class TextView extends Stage implements ITemperatureView, Observer{
+
+	private static final String TITLE = "Thermostat";
+	protected Thermostat model;
+	protected boolean wasUpdated = false;
+	protected TextField temperatureField = new TextField();
 
 	public TextView(Thermostat model) {
-		//simplement pour avoir qqch qui s'affiche à la prise en main du dépôt
-		this.setTitle("Thermostat");
-		this.show();
+		this.model = model;
+		model.attach(this);
+
+		Stage primaryStage = new Stage();
+		VBox root = new VBox();
+		HBox hbox = new HBox();
+		Scene scene = new Scene(root, 300, 200);
+		primaryStage.setScene(scene);
+		primaryStage.setTitle(TITLE);
+
+		Text text = new Text("Température en Celsius");
+		temperatureField.setText(this.getDisplayedValue() + "°C");
+		Button incrementButton = new Button("+");
+		Button decrementButton = new Button("-");
+
+		temperatureField.setOnAction(e -> {
+			try {
+				double newTemp = Double.parseDouble(temperatureField.getText().substring(0, temperatureField.getText().length() - 2));
+				model.setTemperature(newTemp);
+				temperatureField.setText(this.getDisplayedValue() + "°C");
+				model.notifyObservers(model.getTemperature());
+			} catch (NumberFormatException ex) {
+				temperatureField.setText("0°C");
+			}
+		});
+
+		incrementButton.setOnAction(e -> {
+			model.incrementTemperature();
+			temperatureField.setText(this.getDisplayedValue() + "°C");
+			model.notifyObservers(model.getTemperature());
+		});
+
+		decrementButton.setOnAction(e -> {
+			model.decrementTemperature();
+			temperatureField.setText(this.getDisplayedValue() + "°C");
+			model.notifyObservers(model.getTemperature());
+		});
+
+		hbox.getChildren().addAll(decrementButton, temperatureField, incrementButton);
+		hbox.setAlignment(Pos.CENTER);
+		root.getChildren().addAll(text, hbox);
+		root.setAlignment(Pos.CENTER);
+		primaryStage.show();
 	}
 
 	@Override
 	public double getDisplayedValue() {
-		// TODO Auto-generated method stub
-		return 0;
+		return model.getTemperature();
 	}
 
 	@Override
 	public void incrementAction() {
-		// TODO Auto-generated method stub
-		
+		model.incrementTemperature();
 	}
 
 	@Override
 	public void decrementAction() {
-		// TODO Auto-generated method stub
-		
+		model.decrementTemperature();
+	}
+
+	public void update(Observable o) {
+		if (o instanceof Thermostat) {
+			wasUpdated = true;
+		}
+	}
+
+	public void update(Observable o, Object arg) {
+		if (o instanceof Thermostat) {
+			wasUpdated = true;
+			if (arg instanceof Double) {
+				System.out.println("Temperature : " + arg);
+				temperatureField.setText(arg + "°C");
+			}
+		}
 	}
 
 }
diff --git a/src/main/java/fr/univlille/iut/r304/utils/Observable.java b/src/main/java/fr/univlille/iut/r304/utils/Observable.java
index c2445c7c1e20b885949f0fd1677288d4c3cbf07f..361ccc358bf7f31110b635b1af87c69c6ef7f64b 100644
--- a/src/main/java/fr/univlille/iut/r304/utils/Observable.java
+++ b/src/main/java/fr/univlille/iut/r304/utils/Observable.java
@@ -22,7 +22,7 @@ public abstract class Observable {
         }
     }
 
-    protected void notifyObservers(Object data) {
+    public void notifyObservers(Object data) {
         this.updateList();
         for (Observer o : attached) {
             o.update(this, data);