projects
/
fw
/
altos
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
altosui: Display error message when parsing pyro channel values fails
[fw/altos]
/
altosui
/
AltosConfigPyroUI.java
diff --git
a/altosui/AltosConfigPyroUI.java
b/altosui/AltosConfigPyroUI.java
index b14c39ab86e1c5ea2f0ca74d92194003d66394a3..7a298a3ca679a6f26df6abc46816d4efcb3b00c6 100644
(file)
--- a/
altosui/AltosConfigPyroUI.java
+++ b/
altosui/AltosConfigPyroUI.java
@@
-21,8
+21,8
@@
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
-import org.altusmetrum.altoslib_
3
.*;
-import org.altusmetrum.altosuilib_
1
.*;
+import org.altusmetrum.altoslib_
4
.*;
+import org.altusmetrum.altosuilib_
2
.*;
public class AltosConfigPyroUI
extends AltosUIDialog
public class AltosConfigPyroUI
extends AltosUIDialog
@@
-50,7
+50,7
@@
public class AltosConfigPyroUI
public int flag;
public JCheckBox enable;
public JTextField value;
public int flag;
public JCheckBox enable;
public JTextField value;
- public JComboBox combo;
+ public JComboBox
<String>
combo;
AltosConfigPyroUI ui;
boolean setting;
AltosConfigPyroUI ui;
boolean setting;
@@
-63,22
+63,22
@@
public class AltosConfigPyroUI
public void itemStateChanged(ItemEvent e) {
set_enable(enable.isSelected());
public void itemStateChanged(ItemEvent e) {
set_enable(enable.isSelected());
- if (!setting)
+ if (!setting)
ui.set_dirty();
}
public void changedUpdate(DocumentEvent e) {
ui.set_dirty();
}
public void changedUpdate(DocumentEvent e) {
- if (!setting)
+ if (!setting)
ui.set_dirty();
}
public void insertUpdate(DocumentEvent e) {
ui.set_dirty();
}
public void insertUpdate(DocumentEvent e) {
- if (!setting)
+ if (!setting)
ui.set_dirty();
}
public void removeUpdate(DocumentEvent e) {
ui.set_dirty();
}
public void removeUpdate(DocumentEvent e) {
- if (!setting)
+ if (!setting)
ui.set_dirty();
}
ui.set_dirty();
}
@@
-105,11
+105,13
@@
public class AltosConfigPyroUI
AltosUnits units = AltosPyro.pyro_to_units(flag);
if (units != null)
unit_value = units.value(new_value);
AltosUnits units = AltosPyro.pyro_to_units(flag);
if (units != null)
unit_value = units.value(new_value);
- String format = "%6.0f";
- if (scale >= 10)
- format = "%6.1f";
- else if (scale >= 100)
+ String format;
+ if (scale >= 100)
format = "%6.2f";
format = "%6.2f";
+ else if (scale >= 10)
+ format = "%6.1f";
+ else
+ format = "%6.0f";
value.setText(String.format(format, unit_value));
}
if (combo != null)
value.setText(String.format(format, unit_value));
}
if (combo != null)
@@
-122,12
+124,16
@@
public class AltosConfigPyroUI
return enable.isSelected();
}
return enable.isSelected();
}
- public double value() {
+ public double value()
throws AltosConfigDataException
{
if (value != null) {
AltosUnits units = AltosPyro.pyro_to_units(flag);
if (value != null) {
AltosUnits units = AltosPyro.pyro_to_units(flag);
- if (units != null)
- return units.parse(value.getText());
- return Double.parseDouble(value.getText());
+ try {
+ if (units != null)
+ return units.parse(value.getText());
+ return Double.parseDouble(value.getText());
+ } catch (NumberFormatException e) {
+ throw new AltosConfigDataException("\"%s\": %s\n", value.getText(), e.getMessage());
+ }
}
if (combo != null)
return combo.getSelectedIndex() + AltosLib.ao_flight_boost;
}
if (combo != null)
return combo.getSelectedIndex() + AltosLib.ao_flight_boost;
@@
-149,7
+155,7
@@
public class AltosConfigPyroUI
enable = new JCheckBox();
enable.addItemListener(this);
pane.add(enable, c);
enable = new JCheckBox();
enable.addItemListener(this);
pane.add(enable, c);
-
+
if ((flag & AltosPyro.pyro_no_value) == 0) {
c = new GridBagConstraints();
c.gridx = x+1; c.gridy = y;
if ((flag & AltosPyro.pyro_no_value) == 0) {
c = new GridBagConstraints();
c.gridx = x+1; c.gridy = y;
@@
-159,7
+165,7
@@
public class AltosConfigPyroUI
c.insets = il;
if ((flag & AltosPyro.pyro_state_value) != 0) {
make_state_names();
c.insets = il;
if ((flag & AltosPyro.pyro_state_value) != 0) {
make_state_names();
- combo = new JComboBox(state_names);
+ combo = new JComboBox
<String>
(state_names);
combo.addItemListener(this);
pane.add(combo, c);
} else {
combo.addItemListener(this);
pane.add(combo, c);
} else {
@@
-187,15
+193,21
@@
public class AltosConfigPyroUI
}
}
}
}
- public AltosPyro get() {
+ public AltosPyro get()
throws AltosConfigDataException
{
AltosPyro p = new AltosPyro(channel);
int row = 0;
for (int flag = 1; flag < AltosPyro.pyro_all; flag <<= 1) {
if ((AltosPyro.pyro_all & flag) != 0) {
if (items[row].enabled()) {
AltosPyro p = new AltosPyro(channel);
int row = 0;
for (int flag = 1; flag < AltosPyro.pyro_all; flag <<= 1) {
if ((AltosPyro.pyro_all & flag) != 0) {
if (items[row].enabled()) {
+ try {
p.flags |= flag;
p.set_value(flag, items[row].value());
p.flags |= flag;
p.set_value(flag, items[row].value());
+ } catch (AltosConfigDataException ae) {
+ throw new AltosConfigDataException("%s, %s",
+ AltosPyro.pyro_to_name(flag),
+ ae.getMessage());
+ }
}
row++;
}
}
row++;
}
@@
-224,7
+236,7
@@
public class AltosConfigPyroUI
items = new PyroItem[nrow];
int row = 0;
items = new PyroItem[nrow];
int row = 0;
-
+
GridBagConstraints c;
c = new GridBagConstraints();
c.gridx = x; c.gridy = y;
GridBagConstraints c;
c = new GridBagConstraints();
c.gridx = x; c.gridy = y;
@@
-254,10
+266,15
@@
public class AltosConfigPyroUI
}
}
}
}
- public AltosPyro[] get_pyros() {
+ public AltosPyro[] get_pyros()
throws AltosConfigDataException
{
AltosPyro[] pyros = new AltosPyro[columns.length];
AltosPyro[] pyros = new AltosPyro[columns.length];
- for (int c = 0; c < columns.length; c++)
- pyros[c] = columns[c].get();
+ for (int c = 0; c < columns.length; c++) {
+ try {
+ pyros[c] = columns[c].get();
+ } catch (AltosConfigDataException ae) {
+ throw new AltosConfigDataException ("Channel %c, %s", c + 'A', ae.getMessage());
+ }
+ }
return pyros;
}
return pyros;
}
@@
-371,7
+388,7
@@
public class AltosConfigPyroUI
pane.add(close, c);
close.addActionListener(this);
close.setActionCommand("Close");
pane.add(close, c);
close.addActionListener(this);
close.setActionCommand("Close");
-
+
addWindowListener(new ConfigListener(this, owner));
AltosPreferences.register_units_listener(this);
}
addWindowListener(new ConfigListener(this, owner));
AltosPreferences.register_units_listener(this);
}