diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/lib/diylc-core.jar b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/lib/diylc-core.jar index fcca73d6..b66f5d78 100644 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/lib/diylc-core.jar and b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/lib/diylc-core.jar differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/library/main.jar b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/library/main.jar index cf6523d8..e2a8b6d9 100644 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/library/main.jar and b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/library/main.jar differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/gui/editor/MeasureEditor.java b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/gui/editor/MeasureEditor.java index 0f5d8ba1..95e7cdbb 100644 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/gui/editor/MeasureEditor.java +++ b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/gui/editor/MeasureEditor.java @@ -11,6 +11,8 @@ import java.beans.PropertyChangeListener; import java.lang.reflect.Constructor; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; +import java.lang.reflect.ParameterizedType; +import java.lang.reflect.Type; import javax.swing.JComboBox; @@ -32,7 +34,8 @@ public class MeasureEditor extends Container { public MeasureEditor(final PropertyWrapper property) { setLayout(new BorderLayout()); final AbstractMeasure measure = ((AbstractMeasure) property.getValue()); - valueField = new DoubleTextField(measure.getValue()); + valueField = new DoubleTextField(measure == null ? null : measure + .getValue()); oldBg = valueField.getBackground(); valueField.addPropertyChangeListener(DoubleTextField.VALUE_PROPERTY, new PropertyChangeListener() { @@ -40,12 +43,11 @@ public class MeasureEditor extends Container { @Override public void propertyChange(PropertyChangeEvent evt) { try { - Constructor ctor = measure.getClass() + Constructor ctor = property.getType() .getConstructors()[0]; - AbstractMeasure oldMeasure = (AbstractMeasure) property.getValue(); AbstractMeasure newMeasure = (AbstractMeasure) ctor .newInstance((Double) evt.getNewValue(), - oldMeasure.getUnit()); + unitBox.getSelectedItem()); property.setValue(newMeasure); property.setChanged(true); valueField.setBackground(oldBg); @@ -67,18 +69,19 @@ public class MeasureEditor extends Container { }); add(valueField, BorderLayout.CENTER); try { - Method method = measure.getUnit().getClass().getMethod("values"); - unitBox = new JComboBox((Object[]) method.invoke(measure.getUnit())); - unitBox.setSelectedItem(measure.getUnit()); + Type type = ((ParameterizedType) property.getType() + .getGenericSuperclass()).getActualTypeArguments()[0]; + Method method = ((Class) type).getMethod("values"); + unitBox = new JComboBox((Object[]) method.invoke(null)); + unitBox.setSelectedItem(measure == null ? null : measure.getUnit()); unitBox.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent evt) { try { - Constructor ctor = measure.getClass().getConstructors()[0]; - AbstractMeasure oldMeasure = (AbstractMeasure) property.getValue(); + Constructor ctor = property.getType().getConstructors()[0]; AbstractMeasure newMeasure = (AbstractMeasure) ctor - .newInstance(oldMeasure.getValue(), + .newInstance(valueField.getValue(), (Enum) unitBox .getSelectedItem()); property.setValue(newMeasure); diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/update.xml b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/update.xml index 3341f1d8..90da451b 100644 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/update.xml +++ b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/update.xml @@ -937,5 +937,29 @@ http://code.google.com/p/diy-layout-creator/downloads/list + + + 3 + 18 + 0 + + 2012-09-24 20:00:00.000 CET + + + + BUG_FIX + Components don't show up in the toolbox on OSX + + + NEW_FEATURE + Inductor symbol + + + IMPROVEMENT + Component values (resistance, capacitance, etc) are created blank instead of defaulting to some values + + + http://code.google.com/p/diy-layout-creator/downloads/list + \ No newline at end of file