*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License.
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
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;
-
-public class AltosCompanionInfo extends JTable {
- private AltosFlightInfoTableModel model;
+import org.altusmetrum.altoslib_12.*;
+import org.altusmetrum.altosuilib_12.*;
- private Font infoLabelFont = new Font("SansSerif", Font.PLAIN, 14);
- private Font infoValueFont = new Font("Monospaced", Font.PLAIN, 14);
+public class AltosCompanionInfo extends JTable implements AltosFlightDisplay {
+ private AltosFlightInfoTableModel model;
static final int info_columns = 2;
static final int info_rows = 17;
int desired_row_height() {
- FontMetrics infoValueMetrics = getFontMetrics(infoValueFont);
+ FontMetrics infoValueMetrics = getFontMetrics(Altos.table_value_font);
return (infoValueMetrics.getHeight() + infoValueMetrics.getLeading()) * 18 / 10;
}
+ public void font_size_changed(int font_size) {
+ setFont(Altos.table_value_font);
+ setRowHeight(desired_row_height());
+ doLayout();
+ }
+
+ public void units_changed(boolean imperial_units) {
+ }
+
public AltosCompanionInfo() {
super(new AltosFlightInfoTableModel(info_rows, info_columns));
model = (AltosFlightInfoTableModel) getModel();
- setFont(infoValueFont);
setAutoResizeMode(AUTO_RESIZE_ALL_COLUMNS);
setShowGrid(true);
- setRowHeight(desired_row_height());
- doLayout();
+ font_size_changed(AltosUIPreferences.font_size());
}
public Dimension getPreferredScrollableViewportSize() {
return getPreferredSize();
}
- void info_reset() {
+ public void reset() {
model.reset();
}
model.clear();
}
- AltosRecordCompanion companion;
+ AltosCompanion companion;
public String board_name() {
if (companion == null)
return "None";
switch (companion.board_id) {
- case AltosRecordCompanion.board_id_telescience:
+ case AltosCompanion.board_id_telescience:
return "TeleScience";
default:
return String.format("%02x\n", companion.board_id);
}
}
-
- public void show(AltosState state, int crc_errors) {
+
+ public String getName() { return "Companion"; }
+
+ public void show(AltosState state, AltosListenerState listener_state) {
if (state == null)
return;
- if (state.data.companion != null)
- companion = state.data.companion;
- info_reset();
+ if (state.companion != null)
+ companion = state.companion;
+ reset();
info_add_row(0, "Companion board", "%s", board_name());
if (companion != null) {
info_add_row(0, "Last Data", "%5d", companion.tick);