java: Refactor AltosFlightDisplay units and font update handling
[fw/altos] / altosui / AltosFlightStatus.java
index 9d575e4c8897ebb8c14e651ca94e5c64712348d7..459b0495939a61bd98bfd58258f2166b5dec7e49 100644 (file)
@@ -19,7 +19,8 @@ package altosui;
 
 import java.awt.*;
 import javax.swing.*;
-import org.altusmetrum.altoslib_2.*;
+import org.altusmetrum.altoslib_4.*;
+import org.altusmetrum.altosuilib_2.*;
 
 public class AltosFlightStatus extends JComponent implements AltosFlightDisplay {
        GridBagLayout   layout;
@@ -39,6 +40,11 @@ public class AltosFlightStatus extends JComponent implements AltosFlightDisplay
                        value.setFont(Altos.status_font);
                }
 
+               void setVisible(boolean visible) {
+                       label.setVisible(visible);
+                       value.setVisible(visible);
+               }
+
                public FlightValue (GridBagLayout layout, int x, String text) {
                        GridBagConstraints      c = new GridBagConstraints();
                        c.insets = new Insets(5, 5, 5, 5);
@@ -66,6 +72,10 @@ public class AltosFlightStatus extends JComponent implements AltosFlightDisplay
        class Call extends FlightValue {
                void show(AltosState state, AltosListenerState listener_state) {
                        value.setText(state.callsign);
+                       if (state.callsign == null)
+                               setVisible(false);
+                       else
+                               setVisible(true);
                }
                public Call (GridBagLayout layout, int x) {
                        super (layout, x, "Callsign");
@@ -116,6 +126,10 @@ public class AltosFlightStatus extends JComponent implements AltosFlightDisplay
        class RSSI extends FlightValue {
                void show(AltosState state, AltosListenerState listener_state) {
                        value.setText(String.format("%d", state.rssi()));
+                       if (state.rssi == AltosLib.MISSING)
+                               setVisible(false);
+                       else
+                               setVisible(true);
                }
                public RSSI (GridBagLayout layout, int x) {
                        super (layout, x, "RSSI");
@@ -145,7 +159,7 @@ public class AltosFlightStatus extends JComponent implements AltosFlightDisplay
                last_packet.reset();
        }
 
-       public void set_font () {
+       public void font_size_changed(int font_size) {
                call.set_font();
                serial.set_font();
                flight.set_font();
@@ -154,6 +168,9 @@ public class AltosFlightStatus extends JComponent implements AltosFlightDisplay
                last_packet.set_font();
        }
 
+       public void units_changed(boolean imperial_units) {
+       }
+
        public void show (AltosState state, AltosListenerState listener_state) {
                call.show(state, listener_state);
                serial.show(state, listener_state);