Ensure that whenever DoubleModel.getSpinnerModel() is used in a JSpinner, we explicitly set the spinner editor to our own SpinnerEditor instance. The makes the text field in the spinner editable.

This commit is contained in:
Kevin Ruland 2012-09-25 16:37:57 +00:00
parent 1fb1e7e512
commit 6ad5458da9
2 changed files with 5 additions and 1 deletions

View File

@ -16,6 +16,7 @@ import javax.swing.event.ChangeListener;
import net.miginfocom.swing.MigLayout;
import net.sf.openrocket.gui.Resettable;
import net.sf.openrocket.gui.SpinnerEditor;
import net.sf.openrocket.gui.adaptors.DoubleModel;
import net.sf.openrocket.gui.components.FlatButton;
import net.sf.openrocket.l10n.Translator;
@ -137,6 +138,7 @@ public class CompassSelectionButton extends FlatButton implements Resettable {
panel.add(new JPanel(), "growy, wrap");
JSpinner spin = new JSpinner(model.getSpinnerModel());
spin.setEditor( new SpinnerEditor( spin ) );
panel.add(spin, "wmin 50lp, growx, gapright 0, aligny bottom");
panel.add(new JLabel("" + Chars.DEGREE), "wrap para");

View File

@ -17,6 +17,7 @@ import javax.swing.JTextField;
import net.miginfocom.swing.MigLayout;
import net.sf.openrocket.database.Databases;
import net.sf.openrocket.gui.SpinnerEditor;
import net.sf.openrocket.gui.adaptors.DoubleModel;
import net.sf.openrocket.gui.components.StyledLabel;
import net.sf.openrocket.gui.components.UnitSelector;
@ -173,14 +174,15 @@ public class CustomMaterialDialog extends JDialog {
density = new DoubleModel(originalMaterial.getDensity(),
originalMaterial.getType().getUnitGroup(), 0);
densitySpinner.setModel(density.getSpinnerModel());
densitySpinner.setEditor(new SpinnerEditor(densitySpinner));
densityUnit.setModel(density);
}
} else {
Material.Type type = (Material.Type) typeBox.getSelectedItem();
density = new DoubleModel(0, type.getUnitGroup(), 0);
densitySpinner.setModel(density.getSpinnerModel());
densitySpinner.setEditor(new SpinnerEditor(densitySpinner));
densityUnit.setModel(density);
}
((DefaultEditor) densitySpinner.getEditor()).getTextField().setEditable(true);
}
}