diff options
Diffstat (limited to 'src/tesseract/objects/remote/RemoteObjectMenu.java')
-rw-r--r-- | src/tesseract/objects/remote/RemoteObjectMenu.java | 62 |
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); + } + } +} |