diff options
| -rw-r--r-- | altosui/AltosConfigTDUI.java | 30 | ||||
| -rw-r--r-- | altosuilib/AltosFreqList.java | 43 | 
2 files changed, 41 insertions, 32 deletions
| diff --git a/altosui/AltosConfigTDUI.java b/altosui/AltosConfigTDUI.java index 22b3384d..955c7dab 100644 --- a/altosui/AltosConfigTDUI.java +++ b/altosui/AltosConfigTDUI.java @@ -44,6 +44,7 @@ public class AltosConfigTDUI  	JLabel		product_value;  	JLabel		version_value;  	JLabel		serial_value; +	JMenuBar	radio_frequency_menu_bar;  	AltosFreqList	radio_frequency_value;  	JLabel		radio_calibration_value; @@ -166,9 +167,11 @@ public class AltosConfigTDUI  		c.anchor = GridBagConstraints.LINE_START;  		c.insets = ir;  		c.ipady = 5; -		radio_frequency_value = new AltosFreqList(); +		radio_frequency_value = new AltosFreqList(false);  		radio_frequency_value.addItemListener(this); -		pane.add(radio_frequency_value, c); +		radio_frequency_menu_bar = new JMenuBar(); +		radio_frequency_menu_bar.add(radio_frequency_value); +		pane.add(radio_frequency_menu_bar, c);  		radio_frequency_value.setToolTipText("Telemetry, RDF and packet frequency");  		/* Radio Calibration */ @@ -308,28 +311,7 @@ public class AltosConfigTDUI  	}  	public void set_radio_frequency(double new_radio_frequency) { -		int i; -		for (i = 0; i < radio_frequency_value.getItemCount(); i++) { -			AltosFrequency	f = (AltosFrequency) radio_frequency_value.getItemAt(i); - -			if (f.close(new_radio_frequency)) { -				radio_frequency_value.setSelectedIndex(i); -				return; -			} -		} -		for (i = 0; i < radio_frequency_value.getItemCount(); i++) { -			AltosFrequency	f = (AltosFrequency) radio_frequency_value.getItemAt(i); - -			if (new_radio_frequency < f.frequency) -				break; -		} -		String	description = String.format("%s serial %s", -						    product_value.getText(), -						    serial_value.getText()); -		AltosFrequency	new_frequency = new AltosFrequency(new_radio_frequency, description); -		AltosPreferences.add_common_frequency(new_frequency); -		radio_frequency_value.insertItemAt(new_frequency, i); -		radio_frequency_value.setSelectedIndex(i); +		radio_frequency_value.set_frequency(new_radio_frequency);  	}  	public double radio_frequency() { diff --git a/altosuilib/AltosFreqList.java b/altosuilib/AltosFreqList.java index b985d472..a4c3e36a 100644 --- a/altosuilib/AltosFreqList.java +++ b/altosuilib/AltosFreqList.java @@ -59,14 +59,30 @@ public class AltosFreqList extends JMenu implements ActionListener {  			l.actionPerformed(event);  	} +	boolean	label = true; + +	public void set_label(boolean label) { +		this.label = label; +		set_label(); +	} + +	private void set_label() { +		String	new_text = ""; +		if (0 <= selected && selected < frequencies.length) { +			AltosFrequency	frequency = frequencies[selected]; +			new_text = String.format("%s%7.3f MHz (%s) ▾", +						 label ? "Frequency: " : "", +						 frequency.frequency, +						 frequency.description); +		} +		setText(new_text); +	} +  	private void set_selected(AltosFrequency frequency) {  		for (int i = 0; i < frequencies.length; i++) {  			if (frequencies[i].frequency == frequency.frequency) {  				selected = i; -				String	new_text = String.format("Frequency: %7.3f MHz (%s) ▾", -								 frequency.frequency, -								 frequency.description); -				setText(new_text); +				set_label();  			}  		}  	} @@ -164,16 +180,27 @@ public class AltosFreqList extends JMenu implements ActionListener {  		return 434.550;  	} -	public AltosFreqList () { +	public AltosFreqList(double in_frequency, boolean label) {  		super(); +		this.label = label; +  		for (AltosFrequency frequency: AltosUIPreferences.common_frequencies())  			add(frequency);  		product = "Unknown";  		serial = 0; -	} +		if (in_frequency != 0) +			set_frequency(in_frequency); +	}  	public AltosFreqList(double in_frequency) { -		this(); -		set_frequency(in_frequency); +		this(in_frequency, true); +	} + +	public AltosFreqList (boolean label) { +		this(0, label); +	} + +	public AltosFreqList () { +		this(0, true);  	}  } | 
