X-Git-Url: https://git.gag.com/?p=fw%2Faltos;a=blobdiff_plain;f=ao-tools%2Faltosui%2FAltosFlightUI.java;h=7fcfb8be6da68d5f356dd723ea146cf195089127;hp=d5bcdb104d8f63a00224259155fe6fc67cf8a046;hb=357826aa9c7b42c59f5d52b8eb016d73b6da0c7f;hpb=ece2c86e2641b2cd613791293526c492b1606aa1 diff --git a/ao-tools/altosui/AltosFlightUI.java b/ao-tools/altosui/AltosFlightUI.java index d5bcdb10..7fcfb8be 100644 --- a/ao-tools/altosui/AltosFlightUI.java +++ b/ao-tools/altosui/AltosFlightUI.java @@ -42,27 +42,22 @@ public class AltosFlightUI extends JFrame implements AltosFlightDisplay { AltosAscent ascent; AltosDescent descent; AltosLanded landed; + AltosSiteMap sitemap; private AltosFlightStatus flightStatus; private AltosInfoTable flightInfo; - static final int tab_pad = 1; - static final int tab_ascent = 2; - static final int tab_descent = 3; - static final int tab_landed = 4; - - int cur_tab = 0; - boolean exit_on_close = false; - int which_tab(AltosState state) { + JComponent cur_tab = null; + JComponent which_tab(AltosState state) { if (state.state < Altos.ao_flight_boost) - return tab_pad; + return pad; if (state.state <= Altos.ao_flight_coast) - return tab_ascent; + return ascent; if (state.state <= Altos.ao_flight_main) - return tab_descent; - return tab_landed; + return descent; + return landed; } void stop_display() { @@ -85,32 +80,24 @@ public class AltosFlightUI extends JFrame implements AltosFlightDisplay { descent.reset(); landed.reset(); flightInfo.clear(); + sitemap.reset(); } public void show(AltosState state, int crc_errors) { - int tab = which_tab(state); + JComponent tab = which_tab(state); pad.show(state, crc_errors); ascent.show(state, crc_errors); descent.show(state, crc_errors); landed.show(state, crc_errors); if (tab != cur_tab) { - switch (tab) { - case tab_pad: - pane.setSelectedComponent(pad); - break; - case tab_ascent: - pane.setSelectedComponent(ascent); - break; - case tab_descent: - pane.setSelectedComponent(descent); - break; - case tab_landed: - pane.setSelectedComponent(landed); + if (cur_tab == pane.getSelectedComponent()) { + pane.setSelectedComponent(tab); } cur_tab = tab; } flightStatus.show(state, crc_errors); flightInfo.show(state, crc_errors); + sitemap.show(state, crc_errors); } public void set_exit_on_close() { @@ -142,12 +129,11 @@ public class AltosFlightUI extends JFrame implements AltosFlightDisplay { // Channel menu channels = new AltosChannelMenu(AltosPreferences.channel(serial)); channels.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - int channel = channels.getSelectedIndex(); - reader.set_channel(channel); - AltosPreferences.set_channel(serial, channel); - } - }); + public void actionPerformed(ActionEvent e) { + int channel = channels.getSelectedIndex(); + reader.set_channel(channel); + } + }); c.gridx = 0; c.gridy = 0; c.anchor = GridBagConstraints.WEST; @@ -182,6 +168,9 @@ public class AltosFlightUI extends JFrame implements AltosFlightDisplay { flightInfo = new AltosInfoTable(); pane.add("Table", new JScrollPane(flightInfo)); + sitemap = new AltosSiteMap(); + pane.add("Site Map", sitemap); + /* Make the tabbed pane use the rest of the window space */ c.gridx = 0; c.gridy = 2; @@ -192,15 +181,15 @@ public class AltosFlightUI extends JFrame implements AltosFlightDisplay { setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE); addWindowListener(new WindowAdapter() { - @Override - public void windowClosing(WindowEvent e) { - disconnect(); - setVisible(false); - dispose(); - if (exit_on_close) - System.exit(0); - } - }); + @Override + public void windowClosing(WindowEvent e) { + disconnect(); + setVisible(false); + dispose(); + if (exit_on_close) + System.exit(0); + } + }); pack(); setVisible(true);