Files
SoftwareEngineeringCourse-Java/src/lab15_observer/ex2/AnalogTimer.java
2024-11-11 13:26:18 +01:00

104 lines
2.2 KiB
Java

package lab15_observer.ex2;
public class AnalogTimer implements TimerObserver {
private final MyTimer timer;
private static final String[][] digits = {
{
"┌─┐",
"│ │",
"└─┘"
},
{
"",
"",
""
},
{
"╶─┐",
"┌─┘",
"└─╴"
},
{
"╶─┐",
" ─┤",
"╶─┘"
},
{
"╷ ╷",
"└─┤",
""
},
{
"┌─╴",
"└─┐",
"╶─┘"
},
{
"┌─╴",
"├─┐",
"└─┘"
},
{
"╶─┐",
"",
""
},
{
"┌─┐",
"├─┤",
"└─┘"
},
{
"┌─┐",
"└─┤",
"╶─┘"
},
};
public AnalogTimer(MyTimer timer) {
this.timer = timer;
timer.registerObserver(this);
}
public void update(int hours, int minutes, int seconds) {
String[] lines = {"", "", ""};
addDigit(lines, hours / 10);
addSpace(lines);
addDigit(lines, hours % 10);
addSep(lines);
addDigit(lines, minutes / 10);
addSpace(lines);
addDigit(lines, minutes % 10);
addSep(lines);
addDigit(lines, seconds / 10);
addSpace(lines);
addDigit(lines, seconds % 10);
System.out.println(lines[0]);
System.out.println(lines[1]);
System.out.println(lines[2]);
}
private void addDigit(String[] lines, int digit) {
String[] parts = digits[digit];
for (int i = 0; i < 3; i++) {
lines[i] += parts[i];
}
}
private void addSpace(String[] lines) {
lines[0] += " ";
lines[1] += " ";
lines[2] += " ";
}
private void addSep(String[] lines) {
lines[0] += " o ";
lines[1] += " ";
lines[2] += " o ";
}
}