From 52308d9ab00d8a117f241abeaba8335c9374c2ba Mon Sep 17 00:00:00 2001 From: Jesse Morgan Date: Fri, 11 Mar 2011 02:06:34 +0000 Subject: Some remote code that isn't yet remote. --- src/tesseract/objects/remote/RemoteObjectMenu.java | 62 ++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 src/tesseract/objects/remote/RemoteObjectMenu.java (limited to 'src/tesseract/objects/remote/RemoteObjectMenu.java') 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 myControlledObjects; + + private World myWorld; + + public RemoteObjectMenu(final World theWorld) { + super("RC Objects"); + + myWorld = theWorld; + myControlledObjects = new ArrayList(); + + // 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); + } + } +} -- cgit v1.2.3