summaryrefslogtreecommitdiff
path: root/telegps/TeleGPS.java
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2014-05-29 14:03:58 -0700
committerKeith Packard <keithp@keithp.com>2014-05-29 14:03:58 -0700
commitf80075be4ebb9c5fe00c24b8c7638fad23267424 (patch)
treea8badb211c002391b881109a9b7c0992e3099eaf /telegps/TeleGPS.java
parent71715337eb532a1fbe1a753240e7417d5223489f (diff)
java: Refactor AltosFlightDisplay units and font update handling
Make AltosFlightDisplay explicitly implement AltosFontListener and AltosUnitsListener interfaces to make everyone use the same API. Then, actually go implement units listeners so that changing units updates all of the active displays immediately Signed-off-by: Keith Packard <keithp@keithp.com>
Diffstat (limited to 'telegps/TeleGPS.java')
-rw-r--r--telegps/TeleGPS.java16
1 files changed, 11 insertions, 5 deletions
diff --git a/telegps/TeleGPS.java b/telegps/TeleGPS.java
index d30d8dc5..bef0bbc6 100644
--- a/telegps/TeleGPS.java
+++ b/telegps/TeleGPS.java
@@ -26,7 +26,10 @@ import java.util.*;
import org.altusmetrum.altoslib_4.*;
import org.altusmetrum.altosuilib_2.*;
-public class TeleGPS extends AltosUIFrame implements AltosFlightDisplay, AltosFontListener, ActionListener {
+public class TeleGPS
+ extends AltosUIFrame
+ implements AltosFlightDisplay, AltosFontListener, AltosUnitsListener, ActionListener
+{
static String[] telegps_icon_names = {
"/telegps-16.png",
@@ -126,13 +129,14 @@ public class TeleGPS extends AltosUIFrame implements AltosFlightDisplay, AltosFo
display.reset();
}
- public void set_font() {
+ public void font_size_changed(int font_size) {
for (AltosFlightDisplay display : displays)
- display.set_font();
+ display.font_size_changed(font_size);
}
- public void font_size_changed(int font_size) {
- set_font();
+ public void units_changed(boolean imperial_units) {
+ for (AltosFlightDisplay display : displays)
+ display.units_changed(imperial_units);
}
public void show(AltosState state, AltosListenerState listener_state) {
@@ -343,6 +347,7 @@ public class TeleGPS extends AltosUIFrame implements AltosFlightDisplay, AltosFo
private void close() {
AltosUIPreferences.unregister_font_listener(this);
+ AltosPreferences.unregister_units_listener(this);
setVisible(false);
dispose();
--number_of_windows;
@@ -430,6 +435,7 @@ public class TeleGPS extends AltosUIFrame implements AltosFlightDisplay, AltosFo
setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
AltosUIPreferences.register_font_listener(this);
+ AltosPreferences.register_units_listener(this);
addWindowListener(new WindowAdapter() {
@Override