X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=altosuilib%2FAltosFreqList.java;h=e1299aaebe89401c5dd3b7898bbb85bafb72007f;hb=debian;hp=293ce0329aabce6116735a71d0cf3a1c80a5d9ef;hpb=bd440afc2a6e37b74fffcf1b977e149485095316;p=fw%2Faltos diff --git a/altosuilib/AltosFreqList.java b/altosuilib/AltosFreqList.java deleted file mode 100644 index 293ce032..00000000 --- a/altosuilib/AltosFreqList.java +++ /dev/null @@ -1,206 +0,0 @@ -/* - * Copyright © 2011 Keith Packard - * - * 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. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. - */ - -package org.altusmetrum.altosuilib_3; - -import java.util.*; -import javax.swing.*; -import java.awt.event.*; -import org.altusmetrum.altoslib_5.*; - -class FreqEntry extends JMenuItem { - AltosFrequency frequency; - - public FreqEntry(AltosFrequency frequency) { - super(frequency.toShortString()); - this.frequency = frequency; - } -} - -public class AltosFreqList extends JMenu implements ActionListener { - - String product; - int serial; - int calibrate; - - AltosFrequency[] frequencies = new AltosFrequency[0]; - - int selected = -1; - - LinkedList action_listeners = new LinkedList(); - - public void addActionListener(ActionListener listener) { - action_listeners.add(listener); - } - - public void removeActionListener(ActionListener listener) { - action_listeners.remove(listener); - } - - public void actionPerformed(ActionEvent ev) { - FreqEntry e = (FreqEntry) ev.getSource(); - set_selected(e.frequency); - ActionEvent event = new ActionEvent(e.frequency, 0, "selected"); - for (ActionListener l : action_listeners) - 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; - set_label(); - } - } - } - - private AltosFrequency get_selected() { - if (0 <= selected && selected < frequencies.length) - return frequencies[selected]; - return null; - } - - private void add(AltosFrequency add) { - int insert; - - for (insert = 0; insert < frequencies.length; insert++) { - if (frequencies[insert].frequency == add.frequency) - return; - if (add.frequency < frequencies[insert].frequency) - break; - } - - AltosFrequency[] new_frequencies = new AltosFrequency[frequencies.length + 1]; - - for (int before = 0; before < insert; before++) - new_frequencies[before] = frequencies[before]; - new_frequencies[insert] = add; - - for (int after = insert; after < frequencies.length; after++) - new_frequencies[after+1] = frequencies[after]; - - frequencies = new_frequencies; - - FreqEntry e = new FreqEntry(add); - add(e, insert); - e.addActionListener(this); - } - - private void remove(AltosFrequency remove) { - int delete; - for (delete = 0; delete < frequencies.length; delete++) { - if (frequencies[delete].frequency == remove.frequency) - break; - if (remove.frequency < frequencies[delete].frequency) - return; - } - - remove(delete); - - AltosFrequency[] new_frequencies = new AltosFrequency[frequencies.length - 1]; - - for (int before = 0; before < delete; before++) - new_frequencies[before] = frequencies[before]; - - for (int after = delete + 1; after < frequencies.length; after++) - new_frequencies[after-1] = frequencies[after]; - frequencies = new_frequencies; - } - - public void set_frequency(double new_frequency) { - int i; - - if (new_frequency < 0) { - setVisible(false); - return; - } - - for (i = 0; i < frequencies.length; i++) { - AltosFrequency f = frequencies[i]; - - if (f.close(new_frequency)) { - set_selected(f); - return; - } - } - - String description = String.format("%s serial %d", product, serial); - AltosFrequency frequency = new AltosFrequency(new_frequency, description); - AltosUIPreferences.add_common_frequency(frequency); - - add(frequency); - set_selected(frequency); - } - - public void set_product(String new_product) { - product = new_product; - } - - public void set_serial(int new_serial) { - serial = new_serial; - } - - public double frequency() { - AltosFrequency f = get_selected(); - if (f != null) - return f.frequency; - return 434.550; - } - - 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(in_frequency, true); - } - - public AltosFreqList (boolean label) { - this(0, label); - } - - public AltosFreqList () { - this(0, true); - } -}