Merge branch 'prefs_interface' into altosdroid
authorMike Beattie <mike@ethernal.org>
Sun, 16 Sep 2012 10:27:04 +0000 (22:27 +1200)
committerMike Beattie <mike@ethernal.org>
Sun, 16 Sep 2012 10:27:04 +0000 (22:27 +1200)
1  2 
altosui/AltosAscent.java
altosui/AltosDescent.java
altosui/AltosKML.java
altosui/AltosLanded.java
altosui/AltosPad.java

diff --combined altosui/AltosAscent.java
index 3fe517aa6bb08388aeef0874e11ff2577dac8e89,945af7e26104665951e0768093e218d8df7358fb..007c74ec639694ea46aeda47d960e1886b3d06be
  package altosui;
  
  import java.awt.*;
- import java.awt.event.*;
  import javax.swing.*;
- import javax.swing.filechooser.FileNameExtensionFilter;
- import javax.swing.table.*;
- import java.io.*;
- import java.util.*;
- import java.text.*;
- import java.util.prefs.*;
- import java.util.concurrent.LinkedBlockingQueue;
  import org.altusmetrum.AltosLib.*;
  
  public class AltosAscent extends JComponent implements AltosFlightDisplay {
                }
  
                void show(AltosState state, int crc_errors) {}
 +
 +              void show(String s) {
 +                      show();
 +                      value.setText(s);
 +              }
 +              
 +              void show(AltosUnits units, double v) {
 +                      show(units.show(8, v));
 +              }
 +
 +              void show(String format, double v) {
 +                      show(String.format(format, v));
 +              }
 +
                void reset() {
                        value.setText("");
                        lights.set(false);
                        value.setVisible(true);
                }
  
 +              void show(String s) {
 +                      show();
 +                      value.setText(s);
 +              }
 +              
 +              void show(AltosUnits units, double v) {
 +                      show(units.show(8, v));
 +              }
 +
 +              void show(String format, double v) {
 +                      show(String.format(format, v));
 +              }
 +
                void hide() {
                        label.setVisible(false);
                        value.setVisible(false);
  
        class Apogee extends AscentStatus {
                void show (AltosState state, int crc_errors) {
 -                      show();
 -                      value.setText(String.format("%4.2f V", state.drogue_sense));
 +                      show("%4.2f V", state.drogue_sense);
                        lights.set(state.drogue_sense > 3.2);
                }
                public Apogee (GridBagLayout layout, int y) {
  
        class Main extends AscentStatus {
                void show (AltosState state, int crc_errors) {
 -                      show();
 -                      value.setText(String.format("%4.2f V", state.main_sense));
 +                      show("%4.2f V", state.main_sense);
                        lights.set(state.main_sense > 3.2);
                }
                public Main (GridBagLayout layout, int y) {
  
        class Lat extends AscentValue {
                void show (AltosState state, int crc_errors) {
 -                      show();
                        if (state.gps != null)
 -                              value.setText(pos(state.gps.lat,"N", "S"));
 +                              show(pos(state.gps.lat,"N", "S"));
                        else
 -                              value.setText("???");
 +                              show("???");
                }
                public Lat (GridBagLayout layout, int y) {
                        super (layout, y, "Latitude");
  
        class Lon extends AscentValue {
                void show (AltosState state, int crc_errors) {
 -                      show();
                        if (state.gps != null)
 -                              value.setText(pos(state.gps.lon,"E", "W"));
 +                              show(pos(state.gps.lon,"E", "W"));
                        else
 -                              value.setText("???");
 +                              show("???");
                }
                public Lon (GridBagLayout layout, int y) {
                        super (layout, y, "Longitude");
index 2fe7d5443cb554a981aa58a0a490bf8d59ed936a,61709afe0e769aaae0333819b1b2c21d6f4c1413..e9ff590b735e6d79dbec25187ad421426bd9f8f0
  package altosui;
  
  import java.awt.*;
- import java.awt.event.*;
  import javax.swing.*;
- import javax.swing.filechooser.FileNameExtensionFilter;
- import javax.swing.table.*;
- import java.io.*;
- import java.util.*;
- import java.text.*;
- import java.util.prefs.*;
- import java.util.concurrent.LinkedBlockingQueue;
  import org.altusmetrum.AltosLib.*;
  
  public class AltosDescent extends JComponent implements AltosFlightDisplay {
                        lights.setVisible(true);
                }
  
 +              void show(String s) {
 +                      show();
 +                      value.setText(s);
 +              }
 +
 +              void show(String format, double value) {
 +                      show(String.format(format, value));
 +              }
 +
                void hide() {
                        label.setVisible(false);
                        value.setVisible(false);
                        value.setVisible(false);
                }
  
 -              void show(AltosUnits units, double v) {
 -                      value.setText(units.show(8, v));
 +              void show(String v) {
 +                      show();
 +                      value.setText(v);
                }
  
 -              void show(String format, double v) {
 -                      value.setText(String.format(format, v));
 +              void show(AltosUnits units, double v) {
 +                      show(units.show(8, v));
                }
  
 -              void show(String v) {
 -                      value.setText(v);
 +              void show(String format, double v) {
 +                      show(String.format(format, v));
                }
  
                void set_font() {
  
        Lon lon;
  
 +      class Distance extends DescentValue {
 +              void show(AltosState state, int crc_errors) {
 +                      show(AltosConvert.distance, state.from_pad.distance);
 +              }
 +
 +              public Distance (GridBagLayout layout, int x, int y) {
 +                      super(layout, x, y, "Ground Distance");
 +              }
 +      }
 +
 +      Distance distance;
 +              
 +
        class Apogee extends DescentStatus {
                void show (AltosState state, int crc_errors) {
 -                      show();
 -                      value.setText(String.format("%4.2f V", state.drogue_sense));
 +                      show("%4.2f V", state.drogue_sense);
                        lights.set(state.drogue_sense > 3.2);
                }
                public Apogee (GridBagLayout layout, int y) {
  
        class Main extends DescentStatus {
                void show (AltosState state, int crc_errors) {
 -                      show();
 -                      value.setText(String.format("%4.2f V", state.main_sense));
 +                      show("%4.2f V", state.main_sense);
                        lights.set(state.main_sense > 3.2);
                }
                public Main (GridBagLayout layout, int y) {
                speed.reset();
                bearing.reset();
                range.reset();
 +              distance.reset();
                elevation.reset();
                main.reset();
                apogee.reset();
                speed.set_font();
                bearing.set_font();
                range.set_font();
 +              distance.set_font();
                elevation.set_font();
                main.set_font();
                apogee.set_font();
                if (state.gps != null && state.gps.connected) {
                        bearing.show(state, crc_errors);
                        range.show(state, crc_errors);
 +                      distance.show(state, crc_errors);
                        elevation.show(state, crc_errors);
                        lat.show(state, crc_errors);
                        lon.show(state, crc_errors);
                } else {
                        bearing.hide();
                        range.hide();
 +                      distance.hide();
                        elevation.hide();
                        lat.hide();
                        lon.hide();
                elevation = new Elevation(layout, 0, 1);
                range = new Range(layout, 2, 1);
                bearing = new Bearing(layout, 0, 2);
 -              lat = new Lat(layout, 0, 3);
 -              lon = new Lon(layout, 2, 3);
 +              distance = new Distance(layout, 0, 3);
 +              lat = new Lat(layout, 0, 4);
 +              lon = new Lon(layout, 2, 4);
  
 -              apogee = new Apogee(layout, 4);
 -              main = new Main(layout, 5);
 +              apogee = new Apogee(layout, 5);
 +              main = new Main(layout, 6);
        }
  }
diff --combined altosui/AltosKML.java
index 73a5ae53d7474e21598c6184593cc350ac4814c4,952fb14147b4b223154551ea7e2fb3eb83cb56ff..57339b1962fd8dd87368817eee9680e361f64721
  
  package altosui;
  
- import java.lang.*;
  import java.io.*;
- import java.text.*;
- import java.util.*;
  import org.altusmetrum.AltosLib.*;
  
  public class AltosKML implements AltosWriter {
  
                if (gps == null)
                        return;
 +
                if ((record.seen & (AltosRecord.seen_flight)) == 0)
                        return;
                if ((record.seen & (AltosRecord.seen_gps_lat)) == 0)
diff --combined altosui/AltosLanded.java
index 68efae8d85ba6e6c1342d404983e9ea057440f3a,c6ef55fd02a8e42b616c1d4d68aede7824290f1d..57c2d476989e9b5b50d1ff2701ea85d59a2d9ca1
@@@ -20,13 -20,7 +20,7 @@@ package altosui
  import java.awt.*;
  import java.awt.event.*;
  import javax.swing.*;
- import javax.swing.filechooser.FileNameExtensionFilter;
- import javax.swing.table.*;
  import java.io.*;
- import java.util.*;
- import java.text.*;
- import java.util.prefs.*;
- import java.util.concurrent.LinkedBlockingQueue;
  import org.altusmetrum.AltosLib.*;
  
  public class AltosLanded extends JComponent implements AltosFlightDisplay, ActionListener {
                        value.setVisible(true);
                }
  
 +              void show(String s) {
 +                      show();
 +                      value.setText(s);
 +              }
 +              
 +              void show(AltosUnits units, double v) {
 +                      show(units.show(8, v));
 +              }
 +
 +              void show(String format, double v) {
 +                      show(String.format(format, v));
 +              }
 +
                public void set_font() {
                        label.setFont(Altos.label_font);
                        value.setFont(Altos.value_font);
                        value.setVisible(false);
                }
  
 -              void show(String format, double v) {
 -                      show();
 -                      value.setText(String.format(format, v));
 -              }
 -
 -
                public LandedValue (GridBagLayout layout, int y, String text) {
                        GridBagConstraints      c = new GridBagConstraints();
                        c.weighty = 1;
  
        class Lat extends LandedValue {
                void show (AltosState state, int crc_errors) {
 -                      show();
                        if (state.gps != null && state.gps.connected)
 -                              value.setText(pos(state.gps.lat,"N", "S"));
 +                              show(pos(state.gps.lat,"N", "S"));
                        else
 -                              value.setText("???");
 +                              show("???");
                }
                public Lat (GridBagLayout layout, int y) {
                        super (layout, y, "Latitude");
                void show (AltosState state, int crc_errors) {
                        show();
                        if (state.gps != null && state.gps.connected)
 -                              value.setText(pos(state.gps.lon,"E", "W"));
 +                              show(pos(state.gps.lon,"E", "W"));
                        else
 -                              value.setText("???");
 +                              show("???");
                }
                public Lon (GridBagLayout layout, int y) {
                        super (layout, y, "Longitude");
                        if (state.from_pad != null)
                                show("%3.0f°", state.from_pad.bearing);
                        else
 -                              value.setText("???");
 +                              show("???");
                }
                public Bearing (GridBagLayout layout, int y) {
                        super (layout, y, "Bearing");
                void show (AltosState state, int crc_errors) {
                        show();
                        if (state.from_pad != null)
 -                              show("%6.0f m", state.from_pad.distance);
 +                              show(AltosConvert.distance, state.from_pad.distance);
                        else
 -                              value.setText("???");
 +                              show("???");
                }
                public Distance (GridBagLayout layout, int y) {
                        super (layout, y, "Distance");
  
        class Height extends LandedValue {
                void show (AltosState state, int crc_errors) {
 -                      show("%6.0f m", state.max_height);
 +                      show(AltosConvert.height, state.max_height);
                }
                public Height (GridBagLayout layout, int y) {
                        super (layout, y, "Maximum Height");
  
        class Speed extends LandedValue {
                void show (AltosState state, int crc_errors) {
 -                      show("%6.0f m/s", state.max_speed);
 +                      show(AltosConvert.speed, state.max_speed);
                }
                public Speed (GridBagLayout layout, int y) {
                        super (layout, y, "Maximum Speed");
  
        class Accel extends LandedValue {
                void show (AltosState state, int crc_errors) {
 -                      show("%6.0f m/s²", state.max_acceleration);
 +                      show(AltosConvert.accel, state.max_acceleration);
                }
                public Accel (GridBagLayout layout, int y) {
                        super (layout, y, "Maximum Acceleration");
diff --combined altosui/AltosPad.java
index 947c754080f7a7499f099c321fda0c3b918c9f16,f2deb165ef5ea7bbf9b48a1b7f3f9177e83a5252..2d9c832317845545b53ca303634732332faa8363
  package altosui;
  
  import java.awt.*;
- import java.awt.event.*;
  import javax.swing.*;
- import javax.swing.filechooser.FileNameExtensionFilter;
- import javax.swing.table.*;
- import java.io.*;
- import java.util.*;
- import java.text.*;
- import java.util.prefs.*;
- import java.util.concurrent.LinkedBlockingQueue;
  import org.altusmetrum.AltosLib.*;
  
  public class AltosPad extends JComponent implements AltosFlightDisplay {
@@@ -38,7 -30,6 +30,7 @@@
                AltosLights     lights;
  
                void show(AltosState state, int crc_errors) {}
 +
                void reset() {
                        value.setText("");
                        lights.set(false);
                        lights.setVisible(true);
                }
  
 +              void show(String s) {
 +                      show();
 +                      value.setText(s);
 +              }
 +
 +              void show(String format, double value) {
 +                      show(String.format(format, value));
 +              }
 +
 +              void show(String format, int value) {
 +                      show(String.format(format, value));
 +              }
 +
                public void hide() {
                        label.setVisible(false);
                        value.setVisible(false);
                        value.setFont(Altos.value_font);
                }
  
 +              void show(String s) {
 +                      show();
 +                      value.setText(s);
 +              }
 +
 +              void show(AltosUnits units, double v) {
 +                      show(units.show(8, v));
 +              }
 +
 +              void show(String format, double v) {
 +                      show(String.format(format, v));
 +              }
 +
                void reset() {
                        value.setText("");
                }
 +
                public LaunchValue (GridBagLayout layout, int y, String text) {
                        GridBagConstraints      c = new GridBagConstraints();
                        c.insets = new Insets(Altos.tab_elt_pad, Altos.tab_elt_pad, Altos.tab_elt_pad, Altos.tab_elt_pad);
  
        class Battery extends LaunchStatus {
                void show (AltosState state, int crc_errors) {
 -                      value.setText(String.format("%4.2f V", state.battery));
 +                      show("%4.2f V", state.battery);
                        lights.set(state.battery > 3.7);
                }
                public Battery (GridBagLayout layout, int y) {
  
        class Apogee extends LaunchStatus {
                void show (AltosState state, int crc_errors) {
 -                      show();
 -                      value.setText(String.format("%4.2f V", state.drogue_sense));
 +                      show("%4.2f V", state.drogue_sense);
                        lights.set(state.drogue_sense > 3.2);
                }
                public Apogee (GridBagLayout layout, int y) {
  
        class Main extends LaunchStatus {
                void show (AltosState state, int crc_errors) {
 -                      show();
 -                      value.setText(String.format("%4.2f V", state.main_sense));
 +                      show("%4.2f V", state.main_sense);
                        lights.set(state.main_sense > 3.2);
                }
                public Main (GridBagLayout layout, int y) {
  
        class LoggingReady extends LaunchStatus {
                void show (AltosState state, int crc_errors) {
 -                      show();
                        if (state.data.flight != 0) {
                                if (state.data.state <= Altos.ao_flight_pad)
 -                                      value.setText("Ready to record");
 +                                      show("Ready to record");
                                else if (state.data.state < Altos.ao_flight_landed)
 -                                      value.setText("Recording data");
 +                                      show("Recording data");
                                else
 -                                      value.setText("Recorded data");
 +                                      show("Recorded data");
                        }
                        else
 -                              value.setText("Storage full");
 +                              show("Storage full");
                        lights.set(state.data.flight != 0);
                }
                public LoggingReady (GridBagLayout layout, int y) {
  
        class GPSLocked extends LaunchStatus {
                void show (AltosState state, int crc_errors) {
 -                      show();
 -                      value.setText(String.format("%4d sats", state.gps.nsat));
 +                      show("%4d sats", state.gps.nsat);
                        lights.set(state.gps.locked && state.gps.nsat >= 4);
                }
                public GPSLocked (GridBagLayout layout, int y) {
  
        class GPSReady extends LaunchStatus {
                void show (AltosState state, int crc_errors) {
 -                      show();
                        if (state.gps_ready)
 -                              value.setText("Ready");
 +                              show("Ready");
                        else
 -                              value.setText(String.format("Waiting %d", state.gps_waiting));
 +                              show("Waiting %d", state.gps_waiting);
                        lights.set(state.gps_ready);
                }
                public GPSReady (GridBagLayout layout, int y) {
  
        class PadLat extends LaunchValue {
                void show (AltosState state, int crc_errors) {
 -                      show();
 -                      value.setText(pos(state.pad_lat,"N", "S"));
 +                      show(pos(state.pad_lat,"N", "S"));
                }
                public PadLat (GridBagLayout layout, int y) {
                        super (layout, y, "Pad Latitude");
  
        class PadLon extends LaunchValue {
                void show (AltosState state, int crc_errors) {
 -                      show();
 -                      value.setText(pos(state.pad_lon,"E", "W"));
 +                      show(pos(state.pad_lon,"E", "W"));
                }
                public PadLon (GridBagLayout layout, int y) {
                        super (layout, y, "Pad Longitude");
  
        class PadAlt extends LaunchValue {
                void show (AltosState state, int crc_errors) {
 -                      value.setText(String.format("%4.0f m", state.pad_alt));
 +                      show("%4.0f m", state.pad_alt);
                }
                public PadAlt (GridBagLayout layout, int y) {
                        super (layout, y, "Pad Altitude");