import java.text.*;
import java.util.prefs.*;
-import altosui.AltosRomconfig;
-
public class AltosRomconfigUI
extends JDialog
implements ActionListener
public void actionPerformed(ActionEvent e) {
String cmd = e.getActionCommand();
- if (cmd.equals("ok"))
+ if (cmd.equals("ok")) {
+ AltosRomconfig romconfig = romconfig();
+ if (romconfig == null || !romconfig.valid()) {
+ JOptionPane.showMessageDialog(this,
+ "Invalid serial number or radio calibration value",
+ "Invalid rom configuration",
+ JOptionPane.ERROR_MESSAGE);
+ return;
+ }
selected = true;
+ }
setVisible(false);
}
return Integer.parseInt(serial_value.getText());
}
+ void set_serial(int serial) {
+ serial_value.setText(String.format("%d", serial));
+ }
+
int radio_calibration() {
return Integer.parseInt(radio_calibration_value.getText());
}
- public AltosRomconfig romconfig() {
- return new AltosRomconfig(serial(), radio_calibration());
+ void set_radio_calibration(int calibration) {
+ radio_calibration_value.setText(String.format("%d", calibration));
+ }
+
+ public void set(AltosRomconfig config) {
+ if (config != null && config.valid()) {
+ set_serial(config.serial_number);
+ set_radio_calibration(config.radio_calibration);
+ }
+ }
+
+ AltosRomconfig romconfig() {
+ try {
+ return new AltosRomconfig(serial(), radio_calibration());
+ } catch (NumberFormatException ne) {
+ return null;
+ }
}
public AltosRomconfig showDialog() {