From 5d737c42197d7f7c0e4d7a088bd99141481b5145 Mon Sep 17 00:00:00 2001 From: Phillip Date: Sun, 20 Feb 2011 18:23:18 +0000 Subject: NewIcosahedronMenuItem now working and added to TesseractUI. Use Icosohedran(NEW) in add object menu to test. --- src/tesseract/TesseractUI.java | 4 +- src/tesseract/newmenu/MenuItem.java | 115 ++++++++++++++++------ src/tesseract/newmenu/NewIcosahedronMenuItem.java | 35 +++---- 3 files changed, 98 insertions(+), 56 deletions(-) (limited to 'src') 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 myParameters; + /** + * Variable name/type mapping. + */ + protected Map myParameters; + /** + * Variable/Textfield mapping. + */ protected Map 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 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(); + myPanel = new JPanel(); + myFields = new JTextField[myParameters.keySet().size()]; myReadData = new HashMap (); 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 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 myParams = new HashMap(); + //private static Map 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 itr = myParams.keySet(); - //List cParams = new LinkedList(); + Set 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(); } } -- cgit v1.2.3