diff options
Diffstat (limited to 'src/tesseract/menuitems')
-rw-r--r-- | src/tesseract/menuitems/ParticleMenuItem.java | 49 | ||||
-rw-r--r-- | src/tesseract/menuitems/TesseractMenuItem.java | 54 |
2 files changed, 103 insertions, 0 deletions
diff --git a/src/tesseract/menuitems/ParticleMenuItem.java b/src/tesseract/menuitems/ParticleMenuItem.java new file mode 100644 index 0000000..1210f36 --- /dev/null +++ b/src/tesseract/menuitems/ParticleMenuItem.java @@ -0,0 +1,49 @@ +package tesseract.menuitems; + +import java.awt.Color; +import java.awt.event.ActionEvent; + +import javax.swing.JColorChooser; +import javax.swing.JOptionPane; +import javax.vecmath.Color3f; +import javax.vecmath.Vector3f; + +import tesseract.World; +import tesseract.objects.Particle; + +/** + * Particle Menu Item. + * + * @author Jesse Morgan + */ +public class ParticleMenuItem extends TesseractMenuItem { + + /** + * Serial ID. + */ + private static final long serialVersionUID = 1L; + + /** + * Constructor for the menu item. + * + * @param theWorld The world into which we add. + */ + public ParticleMenuItem(final World theWorld) { + super(theWorld, "Particle"); + } + + /** + * Action handler. + * + * @param arg0 Unused event info. + */ + public void actionPerformed(final ActionEvent arg0) { + Color c = JColorChooser.showDialog(null, "Particle Color", Color.RED); + + Vector3f pos = + parseVector(JOptionPane.showInputDialog("Enter the position")); + + myWorld.addObject(new Particle(pos, new Color3f(c))); + } + +} diff --git a/src/tesseract/menuitems/TesseractMenuItem.java b/src/tesseract/menuitems/TesseractMenuItem.java new file mode 100644 index 0000000..16925d7 --- /dev/null +++ b/src/tesseract/menuitems/TesseractMenuItem.java @@ -0,0 +1,54 @@ +package tesseract.menuitems; + +import java.awt.event.ActionListener; + +import javax.swing.JMenuItem; +import javax.vecmath.Vector3f; + +import tesseract.World; + +/** + * Abstract class for menu items. + * + * @author Jesse Morgan + */ +public abstract class TesseractMenuItem + extends JMenuItem implements ActionListener { + + /** + * Serial ID. + */ + private static final long serialVersionUID = 1839955501629795920L; + + /** + * The reference to the world. + */ + protected World myWorld; + + /** + * Constructor. + * + * @param theWorld The world in which to add. + * @param theLabel The label for the menu item. + */ + public TesseractMenuItem(final World theWorld, final String theLabel) { + super(theLabel); + + myWorld = theWorld; + + addActionListener(this); + } + + /** + * Utility method to parse a string formatted as x,y,z into a vector3f. + * + * @param input A string to parse. + * @return A vector3f. + */ + protected Vector3f parseVector(final String input) { + + + return new Vector3f(); + } + +} |