X-Git-Url: https://git.gag.com/?p=fw%2Faltos;a=blobdiff_plain;f=micropeak%2FMicroStatsTable.java;h=145bb70ea6dd453ec9730beda5e0dde5615808b5;hp=f373e25d4a68f96a5fb67d4c27453059a8163250;hb=0169e56ad030c0096b1068d00f06957990dfb31f;hpb=2bd6aca54fc465995d6985c8799cd0d016c9a543 diff --git a/micropeak/MicroStatsTable.java b/micropeak/MicroStatsTable.java index f373e25d..145bb70e 100644 --- a/micropeak/MicroStatsTable.java +++ b/micropeak/MicroStatsTable.java @@ -19,10 +19,10 @@ package org.altusmetrum.micropeak; import java.awt.*; import javax.swing.*; -import org.altusmetrum.AltosLib.*; -import org.altusmetrum.altosuilib.*; +import org.altusmetrum.altoslib_1.*; +import org.altusmetrum.altosuilib_1.*; -public class MicroStatsTable extends JComponent { +public class MicroStatsTable extends JComponent implements AltosFontListener { GridBagLayout layout; class MicroStat { @@ -35,6 +35,12 @@ public class MicroStatsTable extends JComponent { } } + public void set_font() { + for (int j = 0; j < texts.length; j++) + texts[j].setFont(AltosUILib.value_font); + label.setFont(AltosUILib.label_font); + } + public MicroStat(GridBagLayout layout, int y, String label_text, String ... values) { GridBagConstraints c = new GridBagConstraints(); c.insets = new Insets(AltosUILib.tab_elt_pad, AltosUILib.tab_elt_pad, AltosUILib.tab_elt_pad, AltosUILib.tab_elt_pad); @@ -75,27 +81,39 @@ public class MicroStatsTable extends JComponent { MicroStat flight_time; public void setStats(MicroStats stats) { - max_height.set_values(String.format("%5.0f m", stats.apogee_height), - String.format("%5.0f ft", AltosConvert.meters_to_feet(stats.apogee_height))); - max_speed.set_values(String.format("%5.0f m/s", stats.max_speed), - String.format("%5.0f mph", AltosConvert.meters_to_mph(stats.max_speed)), - String.format("Mach %4.1f", AltosConvert.meters_to_mach(stats.max_speed))); - max_accel.set_values(String.format("%5.0f m/s²", stats.max_accel), - String.format("%5.0f ft/s²", AltosConvert.meters_to_feet(stats.max_accel)), - String.format("%5.0f G", AltosConvert.meters_to_g(stats.max_accel))); - avg_accel.set_values(String.format("%5.0f m/s²", stats.boost_accel(), - String.format("%5.0f ft/s²", AltosConvert.meters_to_feet(stats.boost_accel())), - String.format("%5.0f G", AltosConvert.meters_to_g(stats.boost_accel())))); + max_height.set_values(String.format("%7.1f m", stats.apogee_height), + String.format("%7.1f ft", AltosConvert.meters_to_feet(stats.apogee_height))); + max_speed.set_values(String.format("%7.1f m/s", stats.max_speed), + String.format("%7.1f mph", AltosConvert.meters_to_mph(stats.max_speed)), + String.format("Mach %7.3f", AltosConvert.meters_to_mach(stats.max_speed))); + max_accel.set_values(String.format("%7.1f m/s²", stats.max_accel), + String.format("%7.1f ft/s²", AltosConvert.meters_to_feet(stats.max_accel)), + String.format("%7.3f G", AltosConvert.meters_to_g(stats.max_accel))); + avg_accel.set_values(String.format("%7.1f m/s²", stats.boost_accel(), + String.format("%7.1f ft/s²", AltosConvert.meters_to_feet(stats.boost_accel())), + String.format("%7.3f G", AltosConvert.meters_to_g(stats.boost_accel())))); boost_duration.set_values(String.format("%6.1f s", stats.boost_duration())); coast_duration.set_values(String.format("%6.1f s", stats.coast_duration())); - descent_speed.set_values(String.format("%5.0f m/s", stats.descent_speed()), - String.format("%5.0f ft/s", AltosConvert.meters_to_feet(stats.descent_speed()))); + descent_speed.set_values(String.format("%7.1f m/s", stats.descent_speed()), + String.format("%7.1f ft/s", AltosConvert.meters_to_feet(stats.descent_speed()))); descent_duration.set_values(String.format("%6.1f s", stats.descent_duration())); flight_time.set_values(String.format("%6.1f s", stats.landed_time)); } - public void setData(MicroData data) { - setStats(new MicroStats(data)); + public void set_font() { + max_height.set_font(); + max_speed.set_font(); + max_accel.set_font(); + avg_accel.set_font(); + boost_duration.set_font(); + coast_duration.set_font(); + descent_speed.set_font(); + descent_duration.set_font(); + flight_time.set_font(); + } + + public void font_size_changed(int font_size) { + set_font(); } public MicroStatsTable(MicroStats stats) { @@ -104,31 +122,38 @@ public class MicroStatsTable extends JComponent { setLayout(layout); int y = 0; max_height = new MicroStat(layout, y++, "Maximum height", - String.format("%5.0f m", stats.apogee_height), - String.format("%5.0f ft", AltosConvert.meters_to_feet(stats.apogee_height))); + String.format("%7.1f m", stats.apogee_height), + String.format("%7.1f ft", AltosConvert.meters_to_feet(stats.apogee_height))); max_speed = new MicroStat(layout, y++, "Maximum speed", - String.format("%5.0f m/s", stats.max_speed), - String.format("%5.0f mph", AltosConvert.meters_to_mph(stats.max_speed)), + String.format("%7.1f m/s", stats.max_speed), + String.format("%7.1f mph", AltosConvert.meters_to_mph(stats.max_speed)), String.format("Mach %4.1f", AltosConvert.meters_to_mach(stats.max_speed))); max_accel = new MicroStat(layout, y++, "Maximum boost acceleration", - String.format("%5.0f m/s²", stats.max_accel), - String.format("%5.0f ft/s²", AltosConvert.meters_to_feet(stats.max_accel)), - String.format("%5.0f G", AltosConvert.meters_to_g(stats.max_accel))); + String.format("%7.1f m/s²", stats.max_accel), + String.format("%7.1f ft/s²", AltosConvert.meters_to_feet(stats.max_accel)), + String.format("%7.3f G", AltosConvert.meters_to_g(stats.max_accel))); avg_accel = new MicroStat(layout, y++, "Average boost acceleration", - String.format("%5.0f m/s²", stats.boost_accel(), - String.format("%5.0f ft/s²", AltosConvert.meters_to_feet(stats.boost_accel())), - String.format("%5.0f G", AltosConvert.meters_to_g(stats.boost_accel())))); + String.format("%7.1f m/s²", stats.boost_accel(), + String.format("%7.1f ft/s²", AltosConvert.meters_to_feet(stats.boost_accel())), + String.format("%7.3f G", AltosConvert.meters_to_g(stats.boost_accel())))); boost_duration = new MicroStat(layout, y++, "Boost duration", - String.format("%6.0f s", stats.boost_duration())); + String.format("%6.1f s", stats.boost_duration())); coast_duration = new MicroStat(layout, y++, "Coast duration", String.format("%6.1f s", stats.coast_duration())); descent_speed = new MicroStat(layout, y++, "Descent rate", - String.format("%5.0f m/s", stats.descent_speed()), - String.format("%5.0f ft/s", AltosConvert.meters_to_feet(stats.descent_speed()))); + String.format("%7.1f m/s", stats.descent_speed()), + String.format("%7.1f ft/s", AltosConvert.meters_to_feet(stats.descent_speed()))); descent_duration = new MicroStat(layout, y++, "Descent duration", String.format("%6.1f s", stats.descent_duration())); flight_time = new MicroStat(layout, y++, "Flight Time", - String.format("%6.0f s", stats.landed_time)); + String.format("%6.1f s", stats.landed_time)); + set_font(); + + AltosUIPreferences.register_font_listener(this); + } + + public void tell_closing() { + AltosUIPreferences.unregister_font_listener(this); } public MicroStatsTable() {