* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altosuilib_2;
+package org.altusmetrum.altosuilib_3;
import java.awt.*;
+import java.awt.event.*;
import javax.swing.*;
import javax.swing.table.*;
-import org.altusmetrum.altoslib_4.*;
+import org.altusmetrum.altoslib_5.*;
-public class AltosInfoTable extends JTable implements AltosFlightDisplay {
+public class AltosInfoTable extends JTable implements AltosFlightDisplay, HierarchyListener {
private AltosFlightInfoTableModel model;
static final int info_columns = 3;
static final int info_rows = 17;
+ private AltosState last_state;
+ private AltosListenerState last_listener_state;
+
int desired_row_height() {
FontMetrics infoValueMetrics = getFontMetrics(AltosUILib.table_value_font);
return (infoValueMetrics.getHeight() + infoValueMetrics.getLeading()) * 18 / 10;
super(new AltosFlightInfoTableModel(info_rows, info_columns));
model = (AltosFlightInfoTableModel) getModel();
setFont(AltosUILib.table_value_font);
+ addHierarchyListener(this);
setAutoResizeMode(AUTO_RESIZE_ALL_COLUMNS);
setShowGrid(true);
set_layout();
doLayout();
}
- public void set_font() {
+ public void font_size_changed(int font_size) {
setFont(AltosUILib.table_value_font);
set_layout();
doLayout();
}
+ public void units_changed(boolean imperial_units) {
+ }
+
+ public void hierarchyChanged(HierarchyEvent e) {
+ if (last_state != null && isShowing()) {
+ AltosState state = last_state;
+ AltosListenerState listener_state = last_listener_state;
+
+ last_state = null;
+ last_listener_state = null;
+ show(state, listener_state);
+ }
+ }
+
public Dimension getPreferredScrollableViewportSize() {
return getPreferredSize();
}
model.clear();
}
+ public String getName() { return "Table"; }
+
public void show(AltosState state, AltosListenerState listener_state) {
+
+ if (!isShowing()) {
+ last_state = state;
+ last_listener_state = listener_state;
+ return;
+ }
+
reset();
if (state != null) {
if (state.device_type != AltosLib.MISSING)