summaryrefslogtreecommitdiff
path: root/altosui/AltosIgniteUI.java
diff options
context:
space:
mode:
Diffstat (limited to 'altosui/AltosIgniteUI.java')
-rw-r--r--altosui/AltosIgniteUI.java64
1 files changed, 20 insertions, 44 deletions
diff --git a/altosui/AltosIgniteUI.java b/altosui/AltosIgniteUI.java
index 944c659b..14a2b606 100644
--- a/altosui/AltosIgniteUI.java
+++ b/altosui/AltosIgniteUI.java
@@ -24,8 +24,8 @@ import java.io.*;
import java.text.*;
import java.util.*;
import java.util.concurrent.*;
-import org.altusmetrum.altoslib_6.*;
-import org.altusmetrum.altosuilib_6.*;
+import org.altusmetrum.altoslib_8.*;
+import org.altusmetrum.altosuilib_8.*;
public class AltosIgniteUI
extends AltosUIDialog
@@ -50,8 +50,6 @@ public class AltosIgniteUI
LinkedBlockingQueue<String> command_queue;
- LinkedBlockingQueue<String> reply_queue;
-
class Igniter {
JRadioButton button;
JLabel status_label;
@@ -150,8 +148,7 @@ public class AltosIgniteUI
}
reply = "status";
} else if (command.equals("get_npyro")) {
- put_reply(String.format("%d", ignite.npyro()));
- continue;
+ reply = String.format("npyro %d", ignite.npyro());
} else if (command.equals("quit")) {
ignite.close();
break;
@@ -211,6 +208,9 @@ public class AltosIgniteUI
set_ignite_status();
} else if (reply.equals("fired")) {
fired();
+ } else if (reply.startsWith("npyro")) {
+ npyro = Integer.parseInt(reply.substring(6));
+ make_ui();
}
}
@@ -250,24 +250,6 @@ public class AltosIgniteUI
}
}
- void put_reply(String reply) {
- try {
- reply_queue.put(reply);
- } catch (Exception ex) {
- ignite_exception(ex);
- }
- }
-
- String get_reply() {
- String reply = "";
- try {
- reply = reply_queue.take();
- } catch (Exception ex) {
- ignite_exception(ex);
- }
- return reply;
- }
-
boolean getting_status = false;
boolean visible = false;
@@ -287,12 +269,6 @@ public class AltosIgniteUI
}
}
- int get_npyro() {
- send_command("get_npyro");
- String reply = get_reply();
- return Integer.parseInt(reply);
- }
-
boolean firing = false;
void start_fire(String which) {
@@ -310,8 +286,9 @@ public class AltosIgniteUI
void close() {
if (opened) {
send_command("quit");
- timer.stop();
}
+ if (timer != null)
+ timer.stop();
setVisible(false);
dispose();
}
@@ -383,7 +360,6 @@ public class AltosIgniteUI
private boolean open() {
command_queue = new LinkedBlockingQueue<String>();
- reply_queue = new LinkedBlockingQueue<String>();
opened = false;
device = AltosDeviceUIDialog.show(owner, Altos.product_any);
@@ -403,13 +379,7 @@ public class AltosIgniteUI
return false;
}
- public AltosIgniteUI(JFrame in_owner) {
-
- owner = in_owner;
-
- if (!open())
- return;
-
+ private void make_ui() {
group = new ButtonGroup();
Container pane = getContentPane();
@@ -422,8 +392,6 @@ public class AltosIgniteUI
timer_running = false;
timer.restart();
- owner = in_owner;
-
pane.setLayout(new GridBagLayout());
c.fill = GridBagConstraints.NONE;
@@ -443,8 +411,6 @@ public class AltosIgniteUI
y++;
- int npyro = get_npyro();
-
igniters = new Igniter[2 + npyro];
igniters[0] = new Igniter(this, "Apogee", AltosIgnite.Apogee, y++);
@@ -492,4 +458,14 @@ public class AltosIgniteUI
addWindowListener(new ConfigListener(this));
}
-} \ No newline at end of file
+
+ public AltosIgniteUI(JFrame in_owner) {
+
+ owner = in_owner;
+
+ if (!open())
+ return;
+
+ send_command("get_npyro");
+ }
+}