diff --git a/src/soon/PlayZustand.java b/src/soon/PlayZustand.java index fc8bf7323c5a08220839a5ff1eacb402feaa9a3d..beddd6c8513dc01ba46c9a32a89a938355844a7e 100644 --- a/src/soon/PlayZustand.java +++ b/src/soon/PlayZustand.java @@ -1,15 +1,15 @@ package soon; -public class PlayZustand extends PowerOn { +public class PlayZustand extends PowerOnZustand { - public PlayZustand(Soon s) { - super(s); + public PlayZustand(Soon s, PowerOn p) { + super(s, p); } public void stopButton() { exit(); - s.setZustand(s.getStopZustand()); - s.getZustand().entry(); + p.setZustand(p.getStopZustand()); + p.getZustand().entry(); } public void volumeUpButton() { diff --git a/src/soon/PowerOff.java b/src/soon/PowerOff.java index 2643e779ec328cda517a11c21e63c84e7858f1e1..d4e26c4c1e05a179f9a48cfe78fb2d3b63ed479d 100644 --- a/src/soon/PowerOff.java +++ b/src/soon/PowerOff.java @@ -1,14 +1,15 @@ package soon; public class PowerOff extends Zustand { - + public PowerOff(Soon s) { super(s); } public void powerButton() { exit(); - s.setZustand(s.getPowerOnHistory()); + s.setZustand(s.getPowerOnZustand()); System.out.println("Anschalten"); - s.getZustand().entry(); } + s.getZustand().entry(); + } } diff --git a/src/soon/PowerOn.java b/src/soon/PowerOn.java index de675f1ad5a85a24bdd10ea1e6c08aba8fec94a5..fc3ab60c795ad4ac29427e9ed1db7dc83b923a98 100644 --- a/src/soon/PowerOn.java +++ b/src/soon/PowerOn.java @@ -1,15 +1,64 @@ package soon; -public abstract class PowerOn extends Zustand { +public class PowerOn extends Zustand { + PowerOnZustand playZustand; + PowerOnZustand stopZustand; + PowerOnZustand zustand; + public PowerOn(Soon s) { super(s); + stopZustand = new StopZustand(s, this); + playZustand = new PlayZustand(s, this); + zustand = stopZustand; + } + + public PowerOnZustand getStopZustand() { + return stopZustand; + } + + public PowerOnZustand getPlayZustand() { + return playZustand; + } + + public PowerOnZustand getZustand() { + return zustand; + } + + public void setZustand(PowerOnZustand zustand) { + this.zustand = zustand; + } + + public void playButton() { + zustand.playButton(); } + public void stopButton() { + zustand.stopButton(); + } + + public void volumeUpButton() { + zustand.volumeUpButton(); + } + + public void volumeDownButton() { + zustand.volumeDownButton(); + } + public void powerButton() { exit(); - s.setPowerOnHistory(s.getZustand()); s.setZustand(s.getPowerOffZustand()); System.out.println("Ausschalten"); + s.getZustand().entry(); + } + + public void entry() { + s.powerLED_On(); + zustand.entry(); + } + + public void exit() { + s.powerLED_Off(); + zustand.exit(); } } diff --git a/src/soon/PowerOnZustand.java b/src/soon/PowerOnZustand.java new file mode 100644 index 0000000000000000000000000000000000000000..36589af54d4c3ffd094fce046003047ba4f23c8e --- /dev/null +++ b/src/soon/PowerOnZustand.java @@ -0,0 +1,18 @@ +package soon; + +public abstract class PowerOnZustand { + Soon s; + PowerOn p; + + public PowerOnZustand(Soon s, PowerOn p) { + this.s = s; + this.p = p; + } + + public void playButton() {}; + public void stopButton() {}; + public void volumeUpButton() {}; + public void volumeDownButton() {}; + public void entry() {}; + public void exit() {}; +} diff --git a/src/soon/Soon.java b/src/soon/Soon.java index bbfaadab452f083e06e865a9e4e9e9ccd227227d..d03e0dfb60372f6b9c734f9a268832a2a5317473 100644 --- a/src/soon/Soon.java +++ b/src/soon/Soon.java @@ -1,35 +1,23 @@ package soon; public class Soon { - Zustand stopZustand; - Zustand playZustand; + Zustand powerOnZustand; Zustand powerOffZustand; - Zustand powerOnHistory; Zustand zustand; public Soon () { - stopZustand = new StopZustand(this); - playZustand = new PlayZustand(this); + powerOnZustand = new PowerOn(this); powerOffZustand = new PowerOff(this); zustand = powerOffZustand; - powerOnHistory = stopZustand; } public Zustand getPowerOffZustand() { return powerOffZustand; } - public void powerButton() { - zustand.powerButton(); - } - - public Zustand getStopZustand() { - return stopZustand; - } - - public Zustand getPlayZustand() { - return playZustand; + public Zustand getPowerOnZustand() { + return powerOnZustand; } public Zustand getZustand() { @@ -56,6 +44,10 @@ public class Soon { zustand.volumeDownButton(); } + public void powerButton() { + zustand.powerButton(); + } + public void startPlay() { System.out.println("Musik an"); } @@ -71,13 +63,13 @@ public class Soon { public void volumeDown() { System.out.println("Leiser"); } - - public Zustand getPowerOnHistory() { - return powerOnHistory; + + public void powerLED_On() { + System.out.println("LED on"); } - public void setPowerOnHistory(Zustand z) { - powerOnHistory = z; + public void powerLED_Off() { + System.out.println("LED off"); } public String toString() { diff --git a/src/soon/SoonTestDrive.java b/src/soon/SoonTestDrive.java index 991af0bee6ea248abed10db74636104d36893a3a..7e3fc47a1fa5124ea45a60f906e09080258acd3c 100644 --- a/src/soon/SoonTestDrive.java +++ b/src/soon/SoonTestDrive.java @@ -10,8 +10,6 @@ public class SoonTestDrive { player.powerButton(); player.playButton(); player.volumeUpButton(); - player.powerButton(); - player.powerButton(); player.volumeDownButton(); player.stopButton(); player.powerButton(); diff --git a/src/soon/StopZustand.java b/src/soon/StopZustand.java index 354c263f3e6346baed1047102739bf56d9c858ef..67cf4289004691c324108296a54ce20d56e07d4b 100644 --- a/src/soon/StopZustand.java +++ b/src/soon/StopZustand.java @@ -1,14 +1,14 @@ package soon; -public class StopZustand extends PowerOn { +public class StopZustand extends PowerOnZustand { - public StopZustand(Soon s) { - super(s); + public StopZustand(Soon s, PowerOn p) { + super(s, p); } public void playButton() { exit(); - s.setZustand(s.getPlayZustand()); - s.getZustand().entry(); + p.setZustand(p.getPlayZustand()); + p.getZustand().entry(); } } diff --git a/src/soon/Zustand.java b/src/soon/Zustand.java index f1ab5911767a03473535110cf50113356c44d4c4..8a7d896167da7747dec26764013acccdbfe131e3 100644 --- a/src/soon/Zustand.java +++ b/src/soon/Zustand.java @@ -3,8 +3,8 @@ package soon; public abstract class Zustand { protected Soon s; - public Zustand(Soon k) { - this.s = k; + public Zustand(Soon s) { + this.s = s; } public void playButton() {};