import java.beans.PropertyEditorSupport;\r
import java.text.DecimalFormat;\r
import java.text.NumberFormat;\r
+import java.util.EnumSet;\r
import java.util.Vector;\r
\r
import javax.measure.unit.SI;\r
import javax.measure.unit.Unit;\r
+import javax.swing.DefaultComboBoxModel;\r
+import javax.swing.JComboBox;\r
import javax.swing.JFrame;\r
import javax.swing.JLabel;\r
import javax.swing.JTable;\r
\r
import com.billkuker.rocketry.motorsim.CylindricalChamber;\r
import com.billkuker.rocketry.motorsim.RocketScience;\r
+import com.billkuker.rocketry.motorsim.cases.PVCCase;\r
import com.l2fprod.common.propertysheet.PropertySheetPanel;\r
+import com.sun.org.apache.xml.internal.security.utils.EncryptionElementProxy;\r
\r
public class Editor extends PropertySheetPanel {\r
private static final long serialVersionUID = 1L;\r
if (props[i].getName().equals("class"))\r
continue;\r
v.add(props[i]);\r
+ \r
+ if ( Enum.class.isAssignableFrom( props[i].getPropertyType() ) ){\r
+ getEditorRegistry().registerEditor(props[i].getPropertyType(), new EnumPropertyEditor(props[i].getPropertyType()));\r
+ }\r
+ \r
}\r
setProperties(v.toArray(new PropertyDescriptor[v.size()]));\r
\r
}\r
\r
public static void main(String args[]){\r
- CylindricalChamber o = new CylindricalChamber();\r
- o.setLength(Amount.valueOf(100.5, SI.MILLIMETER));\r
- o.setID(Amount.valueOf(30, SI.MILLIMETER));\r
+ PVCCase o = new PVCCase();\r
+ o.setLength(Amount.valueOf(100, SI.MILLIMETER));\r
Editor e = new Editor(o);\r
e.showAsWindow();\r
}\r
}\r
\r
}\r
+ \r
+ public static class EnumPropertyEditor<E extends Enum<E>> extends PropertyEditorSupport {\r
+ JComboBox editor = new JComboBox();\r
+ DefaultComboBoxModel model = new DefaultComboBoxModel();\r
+ Class<E> clazz;\r
+ public EnumPropertyEditor(Class<E> clazz){\r
+ this.clazz = clazz;\r
+ for ( E e : EnumSet.allOf(clazz) ){\r
+ model.addElement(e);\r
+ }\r
+ editor.setModel(model);\r
+ }\r
+ \r
+ @Override\r
+ public Object getValue() {\r
+ return editor.getSelectedItem();\r
+ }\r
+ \r
+ @Override\r
+ public boolean supportsCustomEditor() {\r
+ return true;\r
+ }\r
+ \r
+ @Override\r
+ public Component getCustomEditor() {\r
+ return editor;\r
+ }\r
+ }\r
\r
public static class AmountPropertyEditor extends PropertyEditorSupport {\r
JTextField editor = new JTextField();\r