-public class AltosPad extends JComponent implements AltosFlightDisplay {
- GridBagLayout layout;
-
- public class LaunchStatus implements AltosFontListener, AltosUnitsListener {
- JLabel label;
- JTextField value;
- AltosLights lights;
-
- void show(AltosState state, AltosListenerState listener_state) {}
-
- void reset() {
- value.setText("");
- lights.set(false);
- }
-
- public void show() {
- label.setVisible(true);
- value.setVisible(true);
- 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);
- lights.setVisible(false);
- }
-
- public void font_size_changed(int font_size) {
- label.setFont(Altos.label_font);
- value.setFont(Altos.value_font);
- }
-
- public void units_changed(boolean imperial_units) {
- }
-
- public void set_label(String text) {
- label.setText(text);
- }
-
- public LaunchStatus (GridBagLayout layout, int y, String text) {
- GridBagConstraints c = new GridBagConstraints();
- c.weighty = 1;
-
- lights = new AltosLights();
- c.gridx = 0; c.gridy = y;
- c.anchor = GridBagConstraints.CENTER;
- c.fill = GridBagConstraints.VERTICAL;
- c.weightx = 0;
- layout.setConstraints(lights, c);
- add(lights);
-
- label = new JLabel(text);
- label.setFont(Altos.label_font);
- label.setHorizontalAlignment(SwingConstants.LEFT);
- c.gridx = 1; c.gridy = y;
- c.insets = new Insets(Altos.tab_elt_pad, Altos.tab_elt_pad, Altos.tab_elt_pad, Altos.tab_elt_pad);
- c.anchor = GridBagConstraints.WEST;
- c.fill = GridBagConstraints.VERTICAL;
- c.weightx = 0;
- layout.setConstraints(label, c);
- add(label);
-
- value = new JTextField(Altos.text_width);
- value.setEditable(false);
- value.setFont(Altos.value_font);
- value.setHorizontalAlignment(SwingConstants.RIGHT);
- c.gridx = 2; c.gridy = y;
- c.anchor = GridBagConstraints.WEST;
- c.fill = GridBagConstraints.BOTH;
- c.weightx = 1;
- layout.setConstraints(value, c);
- add(value);
-
- }
- }
-
- public abstract class LaunchValue implements AltosFontListener, AltosUnitsListener {
- JLabel label;
- JTextField value;
- AltosUnits units;
- double v;
-
- abstract void show(AltosState state, AltosListenerState listener_state);
-
- void show() {
- label.setVisible(true);
- value.setVisible(true);
- }
-
- void hide() {
- label.setVisible(false);
- value.setVisible(false);
- }
-
- public void font_size_changed(int font_size) {
- label.setFont(Altos.label_font);
- value.setFont(Altos.value_font);
- }
-
- public void units_changed(boolean imperial_units) {
- if (units != null)
- show(v);
- }
-
- void show(String s) {
- show();
- value.setText(s);
- }
-
- void show(double v) {
- this.v = v;
- show(units.show(8, v));
- }
-
- void show(String format, double v) {
- show(String.format(format, v));
- }
-
- public void set_label(String text) {
- label.setText(text);
- }
-
- void reset() {
- value.setText("");
- }
-
- public LaunchValue (GridBagLayout layout, int y, AltosUnits units, String text) {
- this.units = units;
-
- GridBagConstraints c = new GridBagConstraints();
- c.insets = new Insets(Altos.tab_elt_pad, Altos.tab_elt_pad, Altos.tab_elt_pad, Altos.tab_elt_pad);
- c.weighty = 1;
-
- label = new JLabel(text);
- label.setFont(Altos.label_font);
- label.setHorizontalAlignment(SwingConstants.LEFT);
- c.gridx = 1; c.gridy = y;
- c.anchor = GridBagConstraints.WEST;
- c.fill = GridBagConstraints.VERTICAL;
- c.weightx = 0;
- layout.setConstraints(label, c);
- add(label);
-
- value = new JTextField(Altos.text_width);
- value.setEditable(false);
- value.setFont(Altos.value_font);
- value.setHorizontalAlignment(SwingConstants.RIGHT);
- c.gridx = 2; c.gridy = y;
- c.anchor = GridBagConstraints.EAST;
- c.fill = GridBagConstraints.BOTH;
- c.weightx = 1;
- layout.setConstraints(value, c);
- add(value);
- }
-
- public LaunchValue (GridBagLayout layout, int y, String text) {
- this(layout, y, null, text);
- }
- }
-
- class Voltage extends LaunchStatus {
-
- double voltage(AltosState state) { return AltosLib.MISSING; };
- double good() { return 0; };
-
- double last_voltage = -1;
-
- void show (AltosState state, AltosListenerState listener_state) {
- double voltage = AltosLib.MISSING;
- if (state != null)
- voltage = voltage(state);
-
- if (voltage != last_voltage) {
- if (voltage == AltosLib.MISSING)
- hide();
- else {
- show("%4.2f V", voltage);
- lights.set(voltage >= good());
- }
- last_voltage = voltage;
- }
- }
- public Voltage (GridBagLayout layout, int y, String name) { super(layout, y, name); }
- }
-
-
- class Battery extends Voltage {
- double voltage(AltosState state) { return state.battery_voltage; }
- double good() { return AltosLib.ao_battery_good; }
-
- public Battery (GridBagLayout layout, int y) {
- super(layout, y, "Battery Voltage");
- }