diff options
author | Phillip <pacardon@u.washington.edu> | 2011-02-23 08:19:21 +0000 |
---|---|---|
committer | Phillip <pacardon@u.washington.edu> | 2011-02-23 08:19:21 +0000 |
commit | d65550e3a82364d6c5048ac4628143dcd2168ea7 (patch) | |
tree | f23266371a36bdaec13cac927d19a388402ca076 | |
parent | 943d399633381d5a7138d7276eb13372288189d0 (diff) |
Added Color Button to qualifying shapes (planar polygon param window did NOT receive color button).
Added new constructor to MenuItem to prevent or allow color button (bool value, false to turn off button), use two parameter constructor or true in three param to turn on color button.
Removed color chooser after clicking enter button on both particle emitter and particle as this function is now handled by the color button.
-rw-r--r-- | src/tesseract/newmenu/MenuItem.java | 51 | ||||
-rw-r--r-- | src/tesseract/newmenu/NewChainLinkMenuItem.java | 3 | ||||
-rw-r--r-- | src/tesseract/newmenu/NewEllipsoidMenuItem.java | 3 | ||||
-rw-r--r-- | src/tesseract/newmenu/NewIcosahedronMenuItem.java | 2 | ||||
-rw-r--r-- | src/tesseract/newmenu/NewParticleEmitterMenuItem.java | 6 | ||||
-rw-r--r-- | src/tesseract/newmenu/NewParticleMenuItem.java | 6 | ||||
-rw-r--r-- | src/tesseract/newmenu/NewPlanarPolygonMenuItem.java | 2 | ||||
-rw-r--r-- | src/tesseract/newmenu/NewToroidMenuItem.java | 2 |
8 files changed, 62 insertions, 13 deletions
diff --git a/src/tesseract/newmenu/MenuItem.java b/src/tesseract/newmenu/MenuItem.java index e4f689e..da3cb54 100644 --- a/src/tesseract/newmenu/MenuItem.java +++ b/src/tesseract/newmenu/MenuItem.java @@ -5,6 +5,7 @@ import java.awt.Color; import java.awt.Dimension;
import java.awt.GridLayout;
import java.awt.Toolkit;
+import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.HashMap;
import java.util.Map;
@@ -12,6 +13,7 @@ import java.util.Set; import javax.swing.JButton;
import javax.swing.JCheckBox;
+import javax.swing.JColorChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenuItem;
@@ -65,6 +67,12 @@ public abstract class MenuItem extends JMenuItem implements ActionListener { * World to add objects to.
*/
protected World myWorld;
+
+ /**
+ * Color to make object.
+ */
+ protected Color myColor;
+
/**
* A Parameter setting JFrame.
*/
@@ -74,11 +82,19 @@ public abstract class MenuItem extends JMenuItem implements ActionListener { * The button that get all inputs for shape.
*/
private JButton myEnterButton;
+
+ /**
+ * The button that get all inputs for shape.
+ */
+ private JButton myColorButton;
+
/**
* The default button.
*/
private JButton myDefaultButton;
+ private boolean useColorButton;
+
/**
* Default constructor.
*/
@@ -91,6 +107,7 @@ public abstract class MenuItem extends JMenuItem implements ActionListener { */
public MenuItem(final World theWorld, final String theLabel) {
super(theLabel);
+ useColorButton = true;
myFrame = new JFrame();
myParameters = new HashMap<String, Object>();
myPanel = new JPanel();
@@ -102,6 +119,19 @@ public abstract class MenuItem extends JMenuItem implements ActionListener { myParamFrame = new JFrame("Parameters");
myParamFrame.setBackground(Color.GRAY);
myParamFrame.setLayout(new BorderLayout());
+ myColorButton = new JButton("Color");
+ myColor = Color.RED;
+ }
+
+ /**
+ * Constructor.
+ * @param theWorld world parameter.
+ * @param theLabel for menu item.
+ * @param theColor use color button.
+ */
+ public MenuItem(final World theWorld, final String theLabel, boolean theColor) {
+ this(theWorld, theLabel);
+ useColorButton = theColor;
}
/**
@@ -128,7 +158,14 @@ public abstract class MenuItem extends JMenuItem implements ActionListener { protected void createParameterMenu() {
-
+ myColorButton.addActionListener(new ActionListener(){
+
+ @Override
+ public void actionPerformed(ActionEvent arg0) {
+ myColor = JColorChooser.showDialog(null, "Particle Color",
+ Color.RED);
+
+ }});
Toolkit tk = Toolkit.getDefaultToolkit();
Dimension screenSize = tk.getScreenSize();
int screenHeight = screenSize.height;
@@ -152,9 +189,19 @@ public abstract class MenuItem extends JMenuItem implements ActionListener { myDefaultButton = new JButton("Default Shape");
+ if (useColorButton) {
+ JPanel temp = new JPanel();
+ temp.setLayout(new GridLayout(1, 2));
+ temp.add(myColorButton);
+ temp.add(myEnterButton);
+ myParamFrame.add(temp, BorderLayout.SOUTH);
+ } else {
+ myParamFrame.add(myEnterButton, BorderLayout.SOUTH);
+ }
+
myParamFrame.add(myDefaultButton, BorderLayout.NORTH);
myParamFrame.add(myPanel, BorderLayout.CENTER);
- myParamFrame.add(myEnterButton, BorderLayout.SOUTH);
+
myParamFrame.setAlwaysOnTop(true);
myParamFrame.pack();
diff --git a/src/tesseract/newmenu/NewChainLinkMenuItem.java b/src/tesseract/newmenu/NewChainLinkMenuItem.java index 1011822..110c79e 100644 --- a/src/tesseract/newmenu/NewChainLinkMenuItem.java +++ b/src/tesseract/newmenu/NewChainLinkMenuItem.java @@ -88,7 +88,8 @@ public class NewChainLinkMenuItem extends MenuItem { ((Float) myParameters.get("Mass")).floatValue(),
((Float) myParameters.get("Diameter")).floatValue(),
((Float) myParameters.get("Length")).floatValue(),
- ((Float) myParameters.get("Width")).floatValue()));
+ ((Float) myParameters.get("Width")).floatValue(),
+ myColor));
params.dispose();
}
}
diff --git a/src/tesseract/newmenu/NewEllipsoidMenuItem.java b/src/tesseract/newmenu/NewEllipsoidMenuItem.java index 2261c73..d5ee1ca 100644 --- a/src/tesseract/newmenu/NewEllipsoidMenuItem.java +++ b/src/tesseract/newmenu/NewEllipsoidMenuItem.java @@ -82,7 +82,8 @@ public class NewEllipsoidMenuItem extends MenuItem { }
if (event.getSource() == enterButton) {
myWorld.addObject(new Ellipsoid(getPosition(), getMass(),
- ((Float) myParameters.get("Radius")).floatValue()));
+ ((Float) myParameters.get("Radius")).floatValue(),
+ myColor));
params.dispose();
}
}
diff --git a/src/tesseract/newmenu/NewIcosahedronMenuItem.java b/src/tesseract/newmenu/NewIcosahedronMenuItem.java index e2c8e76..d519b7d 100644 --- a/src/tesseract/newmenu/NewIcosahedronMenuItem.java +++ b/src/tesseract/newmenu/NewIcosahedronMenuItem.java @@ -80,7 +80,7 @@ public class NewIcosahedronMenuItem extends MenuItem { }
if (event.getSource() == enterButton) {
myWorld.addObject(new Icosahedron(
- getPosition(), getMass(), getScale()));
+ getPosition(), getMass(), getScale(), myColor));
params.dispose();
}
}
diff --git a/src/tesseract/newmenu/NewParticleEmitterMenuItem.java b/src/tesseract/newmenu/NewParticleEmitterMenuItem.java index dc0b1fc..04a6ca6 100644 --- a/src/tesseract/newmenu/NewParticleEmitterMenuItem.java +++ b/src/tesseract/newmenu/NewParticleEmitterMenuItem.java @@ -90,11 +90,11 @@ public class NewParticleEmitterMenuItem extends MenuItem { }
if (event.getSource() == enterButton) {
params.dispose();
- Color c = JColorChooser.showDialog(null, "Particle Color",
- Color.RED);
+ //Color c = JColorChooser.showDialog(null, "Particle Color",
+ // Color.RED);
myWorld.addObject(new ParticleEmitter(getPosition(),
((Float) myParameters.get("Frequency")).floatValue(),
- new Color3f(c)));
+ new Color3f(myColor)));
}
}
diff --git a/src/tesseract/newmenu/NewParticleMenuItem.java b/src/tesseract/newmenu/NewParticleMenuItem.java index 4b87852..360b7ed 100644 --- a/src/tesseract/newmenu/NewParticleMenuItem.java +++ b/src/tesseract/newmenu/NewParticleMenuItem.java @@ -89,10 +89,10 @@ public class NewParticleMenuItem extends MenuItem { }
if (event.getSource() == enterButton) {
params.dispose();
- Color c = JColorChooser.showDialog(null, "Particle Color",
- Color.RED);
+ //Color c = JColorChooser.showDialog(null, "Particle Color",
+ // Color.RED);
myWorld.addObject(new Particle(getPosition(), getMass(),
- new Color3f(c)));
+ new Color3f(myColor)));
}
}
diff --git a/src/tesseract/newmenu/NewPlanarPolygonMenuItem.java b/src/tesseract/newmenu/NewPlanarPolygonMenuItem.java index c2ea659..bb26c7c 100644 --- a/src/tesseract/newmenu/NewPlanarPolygonMenuItem.java +++ b/src/tesseract/newmenu/NewPlanarPolygonMenuItem.java @@ -33,7 +33,7 @@ public class NewPlanarPolygonMenuItem extends MenuItem { * @param theWorld to add objects to.
*/
public NewPlanarPolygonMenuItem(final World theWorld) {
- super(theWorld, "Planar Polygon");
+ super(theWorld, "Planar Polygon", false);
buildParams();
diff --git a/src/tesseract/newmenu/NewToroidMenuItem.java b/src/tesseract/newmenu/NewToroidMenuItem.java index 59f07e8..4656603 100644 --- a/src/tesseract/newmenu/NewToroidMenuItem.java +++ b/src/tesseract/newmenu/NewToroidMenuItem.java @@ -97,7 +97,7 @@ public class NewToroidMenuItem extends MenuItem { ((Float) myParameters.get("Toroid Radius")
).floatValue(),
((Integer) myParameters.get("Toroid Resolution")
- ).intValue()));
+ ).intValue(), myColor));
params.dispose();
}
}
|