summaryrefslogtreecommitdiff
path: root/src/tesseract/menuitems
diff options
context:
space:
mode:
Diffstat (limited to 'src/tesseract/menuitems')
-rw-r--r--src/tesseract/menuitems/ParticleMenuItem.java49
-rw-r--r--src/tesseract/menuitems/TesseractMenuItem.java54
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();
+ }
+
+}