*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License.
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altosuilib_10;
+package org.altusmetrum.altosuilib_14;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
-import org.altusmetrum.altoslib_10.*;
+import org.altusmetrum.altoslib_14.*;
public class AltosRomconfigUI
extends AltosUIDialog
{
Container pane;
Box box;
+ JLabel product_label;
JLabel serial_label;
JLabel radio_calibration_label;
+ JLabel product_value;
JFrame owner;
JTextField serial_value;
JTextField radio_calibration_value;
JButton cancel;
/* Build the UI using a grid bag */
- public AltosRomconfigUI(JFrame in_owner) {
- super (in_owner, "Configure TeleMetrum Rom Values", true);
+ public AltosRomconfigUI(JFrame frame, AltosRomconfig config) {
+ super (frame, "Configure Rom Values", true);
- owner = in_owner;
+ owner = frame;
GridBagConstraints c;
Insets il = new Insets(4,4,4,4);
Insets ir = new Insets(4,4,4,4);
- pane = getContentPane();
+ pane = getScrollablePane();
pane.setLayout(new GridBagLayout());
+ int y = 0;
+
+ /* Product name */
/* Serial */
c = new GridBagConstraints();
- c.gridx = 0; c.gridy = 0;
+ c.gridx = 0; c.gridy = y;
c.gridwidth = 3;
c.fill = GridBagConstraints.NONE;
c.anchor = GridBagConstraints.LINE_START;
c.insets = il;
- serial_label = new JLabel("Serial:");
- pane.add(serial_label, c);
+ product_label = new JLabel("Product:");
+ pane.add(product_label, c);
c = new GridBagConstraints();
- c.gridx = 3; c.gridy = 0;
+ c.gridx = 3; c.gridy = y;
c.gridwidth = 3;
c.fill = GridBagConstraints.HORIZONTAL;
c.weightx = 1;
c.anchor = GridBagConstraints.LINE_START;
c.insets = ir;
- serial_value = new JTextField("00000000");
- pane.add(serial_value, c);
+ String product = "unknown";
+ if (config != null)
+ product = config.usb_product;
+ product_value = new JLabel(product);
+ pane.add(product_value, c);
+
+ y++;
- /* Radio calibration value */
+ /* Serial */
c = new GridBagConstraints();
- c.gridx = 0; c.gridy = 1;
+ c.gridx = 0; c.gridy = y;
c.gridwidth = 3;
c.fill = GridBagConstraints.NONE;
c.anchor = GridBagConstraints.LINE_START;
c.insets = il;
- c.ipady = 5;
- radio_calibration_label = new JLabel("Radio Calibration:");
- pane.add(radio_calibration_label, c);
+ serial_label = new JLabel("Serial:");
+ pane.add(serial_label, c);
c = new GridBagConstraints();
- c.gridx = 3; c.gridy = 1;
+ c.gridx = 3; c.gridy = y;
c.gridwidth = 3;
c.fill = GridBagConstraints.HORIZONTAL;
c.weightx = 1;
c.anchor = GridBagConstraints.LINE_START;
c.insets = ir;
- c.ipady = 5;
- radio_calibration_value = new JTextField("00000000");
- pane.add(radio_calibration_value, c);
+ serial_value = new JTextField("00000000");
+ pane.add(serial_value, c);
+
+ y++;
+
+ if (config == null || AltosLib.has_radio(config.usb_id.pid)) {
+ /* Radio calibration value */
+ c = new GridBagConstraints();
+ c.gridx = 0; c.gridy = y;
+ c.gridwidth = 3;
+ c.fill = GridBagConstraints.NONE;
+ c.anchor = GridBagConstraints.LINE_START;
+ c.insets = il;
+ c.ipady = 5;
+ radio_calibration_label = new JLabel("Radio Calibration:");
+ pane.add(radio_calibration_label, c);
+
+ c = new GridBagConstraints();
+ c.gridx = 3; c.gridy = y;
+ c.gridwidth = 3;
+ c.fill = GridBagConstraints.HORIZONTAL;
+ c.weightx = 1;
+ c.anchor = GridBagConstraints.LINE_START;
+ c.insets = ir;
+ c.ipady = 5;
+ radio_calibration_value = new JTextField("00000000");
+ pane.add(radio_calibration_value, c);
+
+ y++;
+ }
/* Buttons */
c = new GridBagConstraints();
- c.gridx = 0; c.gridy = 2;
+ c.gridx = 0; c.gridy = y;
c.gridwidth = 3;
c.fill = GridBagConstraints.NONE;
c.anchor = GridBagConstraints.CENTER;
ok.setActionCommand("ok");
c = new GridBagConstraints();
- c.gridx = 3; c.gridy = 2;
+ c.gridx = 3; c.gridy = y;
c.gridwidth = 3;
c.fill = GridBagConstraints.NONE;
c.anchor = GridBagConstraints.CENTER;
cancel.addActionListener(this);
cancel.setActionCommand("cancel");
+ y++;
+
pack();
setLocationRelativeTo(owner);
- }
-
- public AltosRomconfigUI(JFrame frame, AltosRomconfig config) {
- this(frame);
set(config);
}
}
int radio_calibration() {
+ if (radio_calibration_value == null)
+ return 0;
+
return Integer.parseInt(radio_calibration_value.getText());
}
void set_radio_calibration(int calibration) {
+ if (radio_calibration_value == null)
+ return;
radio_calibration_value.setText(String.format("%d", calibration));
}