From 17cc2783f05d32f7adf2a0ec410e4e12e982d72a Mon Sep 17 00:00:00 2001
From: Peter Hertkorn <peter.hertkorn@reutlingen-university.de>
Date: Sat, 10 Oct 2020 18:34:35 +0200
Subject: [PATCH] Add history for state

---
 src/soon/PowerOff.java      |  5 +++--
 src/soon/PowerOn.java       |  2 ++
 src/soon/Soon.java          | 10 ++++++++++
 src/soon/SoonTestDrive.java |  2 ++
 4 files changed, 17 insertions(+), 2 deletions(-)

diff --git a/src/soon/PowerOff.java b/src/soon/PowerOff.java
index 0bca943..2643e77 100644
--- a/src/soon/PowerOff.java
+++ b/src/soon/PowerOff.java
@@ -7,7 +7,8 @@ public class PowerOff extends Zustand {
 	}
 	
 	public void powerButton() {
-		s.setZustand(s.getStopZustand());
+		exit();
+		s.setZustand(s.getPowerOnHistory());
 		System.out.println("Anschalten");
-	}
+		s.getZustand().entry();	}
 }
diff --git a/src/soon/PowerOn.java b/src/soon/PowerOn.java
index 545bd85..de675f1 100644
--- a/src/soon/PowerOn.java
+++ b/src/soon/PowerOn.java
@@ -7,6 +7,8 @@ public abstract class PowerOn extends Zustand {
 	}
 	
 	public void powerButton() {
+		exit();
+		s.setPowerOnHistory(s.getZustand());
 		s.setZustand(s.getPowerOffZustand());
 		System.out.println("Ausschalten");
 	}
diff --git a/src/soon/Soon.java b/src/soon/Soon.java
index 201c7b6..bbfaada 100644
--- a/src/soon/Soon.java
+++ b/src/soon/Soon.java
@@ -4,6 +4,7 @@ public class Soon {
 	Zustand stopZustand;
 	Zustand playZustand;
 	Zustand powerOffZustand;
+	Zustand powerOnHistory;
 	
 	Zustand zustand;
 	
@@ -12,6 +13,7 @@ public class Soon {
 		playZustand = new PlayZustand(this);
 		powerOffZustand = new PowerOff(this);
 		zustand = powerOffZustand;
+		powerOnHistory = stopZustand;
 	}
 
 	public Zustand getPowerOffZustand() {
@@ -69,6 +71,14 @@ public class Soon {
 	public void volumeDown() {
 		System.out.println("Leiser");
 	}
+	
+	public Zustand getPowerOnHistory() {
+		return powerOnHistory;
+	}
+	
+	public void setPowerOnHistory(Zustand z) {
+		powerOnHistory = z;
+	}
 
 	public String toString() {
 		StringBuffer result = new StringBuffer();
diff --git a/src/soon/SoonTestDrive.java b/src/soon/SoonTestDrive.java
index 7e3fc47..991af0b 100644
--- a/src/soon/SoonTestDrive.java
+++ b/src/soon/SoonTestDrive.java
@@ -10,6 +10,8 @@ public class SoonTestDrive {
 		player.powerButton();
 		player.playButton();
 		player.volumeUpButton();
+		player.powerButton();
+		player.powerButton();
 		player.volumeDownButton();
 		player.stopButton();
 		player.powerButton();
-- 
GitLab