summaryrefslogtreecommitdiff
path: root/src/tesseract/objects/remote/RemoteObjectMenu.java
diff options
context:
space:
mode:
authorJesse Morgan <jesse@jesterpm.net>2011-03-11 02:06:34 +0000
committerJesse Morgan <jesse@jesterpm.net>2011-03-11 02:06:34 +0000
commit52308d9ab00d8a117f241abeaba8335c9374c2ba (patch)
tree2649fef03c35a573f5135dc754c882562a082116 /src/tesseract/objects/remote/RemoteObjectMenu.java
parent19007d3f4a1c69777cb01d50e433fb971519a1d2 (diff)
Some remote code that isn't yet remote.
Diffstat (limited to 'src/tesseract/objects/remote/RemoteObjectMenu.java')
-rw-r--r--src/tesseract/objects/remote/RemoteObjectMenu.java62
1 files changed, 62 insertions, 0 deletions
diff --git a/src/tesseract/objects/remote/RemoteObjectMenu.java b/src/tesseract/objects/remote/RemoteObjectMenu.java
new file mode 100644
index 0000000..b63ee93
--- /dev/null
+++ b/src/tesseract/objects/remote/RemoteObjectMenu.java
@@ -0,0 +1,62 @@
+package tesseract.objects.remote;
+
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.awt.event.KeyEvent;
+import java.util.ArrayList;
+
+import javax.swing.JCheckBoxMenuItem;
+import javax.swing.JMenu;
+
+import tesseract.World;
+
+/**
+ * Remote object menu.
+ *
+ * @author jesse
+ */
+public class RemoteObjectMenu extends JMenu {
+ private ArrayList<RemoteObject> myControlledObjects;
+
+ private World myWorld;
+
+ public RemoteObjectMenu(final World theWorld) {
+ super("RC Objects");
+
+ myWorld = theWorld;
+ myControlledObjects = new ArrayList<RemoteObject>();
+
+ // Objects that can be added
+ add(new TankMenuItem(this));
+
+ // Separator
+ addSeparator();
+
+ // Living Objects here...
+ }
+
+ public void addObject(final RemoteObject theObject) {
+ JCheckBoxMenuItem item = new JCheckBoxMenuItem();
+
+ item.setText(theObject.getName());
+
+ item.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+ if (((JCheckBoxMenuItem) e.getSource()).isSelected()) {
+ myControlledObjects.add(theObject);
+
+ } else {
+ myControlledObjects.remove(theObject);
+ }
+ }
+ });
+
+ myWorld.addObject(theObject);
+ }
+
+ public void sendKeyToObjects(final KeyEvent e) {
+ for (RemoteObject o : myControlledObjects) {
+ o.sendKeyEvent(e);
+ }
+ }
+}