X-Git-Url: https://git.gag.com/?p=fw%2Faltos;a=blobdiff_plain;f=altosui%2FAltosConfigPyroUI.java;h=e0915a17b898a4d9a3b5bcb090677f8ef451d5bc;hp=f0b4f0f998a2cb31de3bc668a81aa5fdd10b52fb;hb=320e312db36fb6519a0bb1530d79595af18cdc86;hpb=d744e588b7504f314e39b1407152d11c031673c9 diff --git a/altosui/AltosConfigPyroUI.java b/altosui/AltosConfigPyroUI.java index f0b4f0f9..e0915a17 100644 --- a/altosui/AltosConfigPyroUI.java +++ b/altosui/AltosConfigPyroUI.java @@ -17,12 +17,13 @@ package altosui; +import java.text.*; import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.event.*; -import org.altusmetrum.altoslib_4.*; -import org.altusmetrum.altosuilib_2.*; +import org.altusmetrum.altoslib_10.*; +import org.altusmetrum.altosuilib_10.*; public class AltosConfigPyroUI extends AltosUIDialog @@ -87,9 +88,9 @@ public class AltosConfigPyroUI if (units != null) { try { - double v = units.parse(value.getText(), !imperial_units); + double v = units.parse_locale(value.getText(), !imperial_units); set(enabled(), v); - } catch (NumberFormatException ne) { + } catch (ParseException pe) { set(enabled(), 0.0); } } @@ -129,9 +130,9 @@ public class AltosConfigPyroUI AltosUnits units = AltosPyro.pyro_to_units(flag); try { if (units != null) - return units.parse(value.getText()); - return Double.parseDouble(value.getText()); - } catch (NumberFormatException e) { + return units.parse_locale(value.getText()); + return AltosParse.parse_double_locale(value.getText()); + } catch (ParseException e) { throw new AltosConfigDataException("\"%s\": %s\n", value.getText(), e.getMessage()); } } @@ -285,39 +286,48 @@ public class AltosConfigPyroUI "0.050", "0.100", "0.250", "0.500", "1.0", "2.0" }; + boolean initializing; + public void set_pyro_firing_time(double new_pyro_firing_time) { + initializing = true; pyro_firing_time_value.setSelectedItem(Double.toString(new_pyro_firing_time)); pyro_firing_time_value.setEnabled(new_pyro_firing_time >= 0); + initializing = false; } public double get_pyro_firing_time() throws AltosConfigDataException { String v = pyro_firing_time_value.getSelectedItem().toString(); try { - return Double.parseDouble(v); - } catch (NumberFormatException e) { + return AltosParse.parse_double_locale(v); + } catch (ParseException e) { throw new AltosConfigDataException("Invalid pyro firing time \"%s\"", v); } } public void set_dirty() { - owner.set_dirty(); + if (!initializing) + owner.set_dirty(); } public void itemStateChanged(ItemEvent e) { - owner.set_dirty(); + if (!initializing) + owner.set_dirty(); } public void changedUpdate(DocumentEvent e) { - owner.set_dirty(); + if (!initializing) + owner.set_dirty(); } public void insertUpdate(DocumentEvent e) { - owner.set_dirty(); + if (!initializing) + owner.set_dirty(); } public void removeUpdate(DocumentEvent e) { - owner.set_dirty(); + if (!initializing) + owner.set_dirty(); } public void units_changed(boolean imperial_units) {