summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.classpath30
-rw-r--r--src/tesseract/TesseractUI.java4
-rw-r--r--src/tesseract/newmenu/MenuItem.java115
-rw-r--r--src/tesseract/newmenu/NewIcosahedronMenuItem.java35
4 files changed, 115 insertions, 69 deletions
diff --git a/.classpath b/.classpath
index fbf7f5f..6505402 100644
--- a/.classpath
+++ b/.classpath
@@ -1,13 +1,17 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
- <classpathentry kind="lib" path="support_files/lib/ext/j3dcore.jar"/>
- <classpathentry kind="lib" path="support_files/lib/ext/j3dutils.jar"/>
- <classpathentry kind="lib" path="support_files/lib/ext/vecmath.jar"/>
- <classpathentry kind="src" path="src"/>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5">
- <attributes>
- <attribute name="org.eclipse.jdt.launching.CLASSPATH_ATTR_LIBRARY_PATH_ENTRY" value="/usr/lib/jni"/>
- </attributes>
- </classpathentry>
- <classpathentry kind="output" path="bin"/>
-</classpath>
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+ <classpathentry kind="lib" path="C:/Program Files/Java/Java3D/1.5.2/lib/ext/j3dcore.jar" sourcepath="C:/Users/pacardon/Downloads/j3d-1_5_2-src.zip">
+ <attributes>
+ <attribute name="javadoc_location" value="http://download.java.net/media/java3d/javadoc/1.5.2/"/>
+ </attributes>
+ </classpathentry>
+ <classpathentry kind="lib" path="C:/Program Files/Java/Java3D/1.5.2/lib/ext/j3dutils.jar"/>
+ <classpathentry kind="lib" path="C:/Program Files/Java/Java3D/1.5.2/lib/ext/vecmath.jar" sourcepath="C:/Users/pacardon/Downloads/vecmath-1_5_2-src.zip">
+ <attributes>
+ <attribute name="javadoc_location" value="http://download.java.net/media/java3d/javadoc/1.5.2/"/>
+ </attributes>
+ </classpathentry>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/src/tesseract/TesseractUI.java b/src/tesseract/TesseractUI.java
index 9a046f1..2ad997d 100644
--- a/src/tesseract/TesseractUI.java
+++ b/src/tesseract/TesseractUI.java
@@ -42,6 +42,7 @@ import tesseract.menuitems.ParticleEmitterMenuItem;
import tesseract.menuitems.ParticleMenuItem;
import tesseract.menuitems.PlanarPolygonMenuItem;
import tesseract.menuitems.SurfBoardMenuItem;
+import tesseract.newmenu.NewIcosahedronMenuItem;
import tesseract.objects.Box;
import tesseract.objects.ChainLink2;
import tesseract.objects.PhysicalObject;
@@ -135,7 +136,8 @@ public class TesseractUI extends JFrame {
new IcosahedronMenuItem(myWorld),
new ChainLinkMenuItem(myWorld),
new DonutMenuItem(myWorld),
- new SurfBoardMenuItem(myWorld)
+ new SurfBoardMenuItem(myWorld),
+ new NewIcosahedronMenuItem(myWorld)
};
createMenu();
setupCanvas();
diff --git a/src/tesseract/newmenu/MenuItem.java b/src/tesseract/newmenu/MenuItem.java
index 7324b7f..9f65958 100644
--- a/src/tesseract/newmenu/MenuItem.java
+++ b/src/tesseract/newmenu/MenuItem.java
@@ -32,40 +32,69 @@ import tesseract.World;
*
* @author Phillip Cardon
*/
-public abstract class MenuItem extends JMenuItem implements ActionListener{
+public abstract class MenuItem extends JMenuItem implements ActionListener {
/**
*
*/
private static final long serialVersionUID = 4191575308469669044L;
+ /**
+ * default position.
+ */
protected static final Vector3f DEFAULT_POSITION = new Vector3f(0, 0, 0);
+ /**
+ * Jframe to hold panel.
+ */
private JFrame myFrame;
+ /**
+ * Jpanel for variable text boxes.
+ */
private JPanel myPanel;
+ /**
+ * JTextFields.
+ */
private JTextField[] myFields;
- private Map <String, Object> myParameters;
+ /**
+ * Variable name/type mapping.
+ */
+ protected Map <String, Object> myParameters;
+ /**
+ * Variable/Textfield mapping.
+ */
protected Map <String, JTextField> myReadData;
+ /**
+ * World to add objects to.
+ */
protected World myWorld;
/**
- * A Parameter setting JFrame
+ * A Parameter setting JFrame.
*/
- private JFrame my_param_frame;
+ private JFrame myParamFrame;
/**
- * The button that get all inputs for shape
+ * The button that get all inputs for shape.
*/
- private JButton my_enter_button;
+ private JButton myEnterButton;
/**
- * The default button
+ * The default button.
*/
- private JCheckBox my_default_button;
-
+ private JCheckBox myDefaultButton;
- public MenuItem() {};
+ /**
+ * Default constructor.
+ */
+ public MenuItem() { }
- public MenuItem (Map <String, Object> theParams, World theWorld) {
+ /**
+ * Constructor.
+ * @param theWorld world parameter.
+ */
+ public MenuItem(final World theWorld, String theLabel) {
+ super(theLabel);
myFrame = new JFrame();
- myPanel = new JPanel(new GridLayout(myParameters.keySet().size(), 2));
- myParameters = theParams;
+ myParameters = new HashMap<String, Object>();
+ myPanel = new JPanel();
+
myFields = new JTextField[myParameters.keySet().size()];
myReadData = new HashMap <String, JTextField>();
myWorld = theWorld;
@@ -74,29 +103,39 @@ public abstract class MenuItem extends JMenuItem implements ActionListener{
addActionListener(this);
}
- public void makePanel() {
+ /**
+ * Create Panel.
+ */
+ protected void makePanel() {
Set<String> varNames = myParameters.keySet();
+ myFields = new JTextField[myParameters.keySet().size()];
+ myPanel.setLayout(new GridLayout(myParameters.size(), 2));
int i = 0;
for (String s : varNames) {
+ myFields[i] = new JTextField();
myPanel.add(new JLabel(s));
myPanel.add(myFields[i]);
myReadData.put(s, myFields[i]);
i++;
}
+ //myPanel = new JPanel(new GridLayout(myParameters.keySet().size(), 2));
}
-protected void createParameterMenu() {
+ /**
+ *
+ */
+ protected void createParameterMenu() {
- my_param_frame = new JFrame("Parameters");
- my_param_frame.setBackground(Color.GRAY);
- my_param_frame.setLayout(new BorderLayout());
+ myParamFrame = new JFrame("Parameters");
+ myParamFrame.setBackground(Color.GRAY);
+ myParamFrame.setLayout(new BorderLayout());
Toolkit tk = Toolkit.getDefaultToolkit();
Dimension screenSize = tk.getScreenSize();
int screenHeight = screenSize.height;
int screenWidth = screenSize.width;
- my_param_frame.setSize(screenWidth / 4, screenHeight / 4);
- my_param_frame.setLocation(screenWidth / 4, screenHeight / 4);
+ myParamFrame.setSize(screenWidth / 4, screenHeight / 4);
+ myParamFrame.setLocation(screenWidth / 4, screenHeight / 4);
/*
my_position_input = new JTextField(10);
my_position_input.setText("0,0,0");
@@ -110,29 +149,41 @@ protected void createParameterMenu() {
//JLabel radius_label = new JLabel("Enter Radius: ");
//JLabel mass_label = new JLabel("Enter Mass: ");
- my_enter_button = new JButton("ENTER");
+ myEnterButton = new JButton("ENTER");
- my_default_button = new JCheckBox("Default Shape ");
+ myDefaultButton = new JCheckBox("Default Shape ");
- my_param_frame.add(my_default_button, BorderLayout.NORTH);
- my_param_frame.add(myPanel, BorderLayout.CENTER);
- my_param_frame.add(my_enter_button, BorderLayout.SOUTH);
+ myParamFrame.add(myDefaultButton, BorderLayout.NORTH);
+ myParamFrame.add(myPanel, BorderLayout.CENTER);
+ myParamFrame.add(myEnterButton, BorderLayout.SOUTH);
- my_param_frame.setAlwaysOnTop(true);
- my_param_frame.pack();
- my_param_frame.setVisible(isVisible());
+ myParamFrame.setAlwaysOnTop(true);
+ myParamFrame.pack();
+ myParamFrame.setVisible(isVisible());
}
-
+
+ /**
+ *
+ * @return
+ */
public JCheckBox getDefaultButton() {
- return my_default_button;
+ return myDefaultButton;
}
+ /**
+ *
+ * @return
+ */
public JButton getEnterButton() {
- return my_enter_button;
+ return myEnterButton;
}
+ /**
+ *
+ * @return
+ */
public JFrame getParamFrame() {
- return my_param_frame;
+ return myParamFrame;
}
/**
diff --git a/src/tesseract/newmenu/NewIcosahedronMenuItem.java b/src/tesseract/newmenu/NewIcosahedronMenuItem.java
index 382d880..910b834 100644
--- a/src/tesseract/newmenu/NewIcosahedronMenuItem.java
+++ b/src/tesseract/newmenu/NewIcosahedronMenuItem.java
@@ -27,21 +27,24 @@ import tesseract.objects.Icosahedron;
public class NewIcosahedronMenuItem extends MenuItem {
private static final float DEFAULT_MASS = 2f;
private static final long serialVersionUID = 1936364496102891064L;
- private static Map <String, Object> myParams = new HashMap<String, Object>();
+ //private static Map <String, Object> myParams;
public NewIcosahedronMenuItem (World theWorld) {
- super (myParams, theWorld);
+ super(theWorld, "Icosahedron(NEW)");
buildParams();
+ this.makePanel();
+
}
private void buildParams() {
- myParams.put("Scale", new Float(0f));
- this.makePanel();
+ myParameters.put("Scale", new Float(0f));
+
}
@Override
public void actionPerformed(ActionEvent e) {
+ createParameterMenu();
final JCheckBox defaultButton = getDefaultButton();
final JFrame params = getParamFrame();
final JButton enterButton = getEnterButton();
@@ -57,31 +60,17 @@ public class NewIcosahedronMenuItem extends MenuItem {
});
enterButton.addActionListener(new ActionListener() {
public void actionPerformed(final ActionEvent event) {
- Set<String> itr = myParams.keySet();
- //List<Object> cParams = new LinkedList<Object>();
+ Set<String> itr = myParameters.keySet();
for (String s : itr) {
- Object o = myParams.get(s);
+ Object o = myParameters.get(s);
String p = myReadData.get(s).getText();
if (o.getClass().equals(new Float(0f).getClass())) {
- myParams.put(s, new Float(Float.parseFloat(p)));
+ myParameters.put(s, new Float(Float.parseFloat(p)));
} else if (o.getClass().equals(new Vector3f().getClass())) {
- myParams.put(s, parseVector(p));
+ myParameters.put(s, parseVector(p));
}
}
- /*
- String string = getPositionField().getText();
- Vector3f pos = parseVector(string);
- setPosition(pos);
-
- String string2 = getRadiusField().getText();
- float radius = Float.parseFloat(string2);
- setRadius(radius);
-
- String string3 = getMassField().getText();
- float mass = Float.parseFloat(string3);
- setMass(mass);
- */
if (event.getSource() == enterButton) {
myWorld.addObject(new Icosahedron(getPosition(), getMass(), getScale()));
params.dispose();
@@ -92,7 +81,7 @@ public class NewIcosahedronMenuItem extends MenuItem {
}
private float getScale() {
- return ((Float) myParams.get("Scale")).floatValue();
+ return ((Float) myParameters.get("Scale")).floatValue();
}
}