diff --git a/uk/ac/sanger/artemis/components/KeyChoice.java b/uk/ac/sanger/artemis/components/KeyChoice.java index 003a96de0435523481b12483592c919a66603f84..79927020abcf03073df88ced8178005ec891c267 100644 --- a/uk/ac/sanger/artemis/components/KeyChoice.java +++ b/uk/ac/sanger/artemis/components/KeyChoice.java @@ -20,36 +20,42 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * - * $Header: //tmp/pathsoft/artemis/uk/ac/sanger/artemis/components/KeyChoice.java,v 1.4 2008-05-29 15:16:28 tjc Exp $ + * $Header: //tmp/pathsoft/artemis/uk/ac/sanger/artemis/components/KeyChoice.java,v 1.5 2008-07-21 15:43:16 tjc Exp $ */ package uk.ac.sanger.artemis.components; -import uk.ac.sanger.artemis.*; - -import uk.ac.sanger.artemis.util.StringVector; +import uk.ac.sanger.artemis.Options; import uk.ac.sanger.artemis.io.Key; import uk.ac.sanger.artemis.io.KeyVector; import uk.ac.sanger.artemis.io.EntryInformation; -import java.awt.*; -import java.awt.event.*; +import java.awt.Font; +import java.awt.event.ItemListener; -import javax.swing.*; +import javax.swing.JComboBox; +import javax.swing.JPanel; /** * This component is a Choice component that shows the possible feature keys. * * @author Kim Rutherford - * @version $Id: KeyChoice.java,v 1.4 2008-05-29 15:16:28 tjc Exp $ + * @version $Id: KeyChoice.java,v 1.5 2008-07-21 15:43:16 tjc Exp $ **/ -public class KeyChoice extends JPanel { +public class KeyChoice extends JPanel +{ + private static final long serialVersionUID = 1L; + + /** The JComboBox component that will show the feature keys. */ + private JComboBox key_chooser = null; + /** * Create a new KeyChoice component with CDS as the default key. * @param entry_information The object to get the list of possible * keys from. **/ - public KeyChoice (final EntryInformation entry_information) { + public KeyChoice (final EntryInformation entry_information) + { this (entry_information, Key.CDS); } @@ -59,10 +65,8 @@ public class KeyChoice extends JPanel { * keys from. **/ public KeyChoice (final EntryInformation entry_information, - final Key default_key) { - this.entry_information = entry_information; - this.default_key = default_key; - + final Key default_key) + { final Font font = Options.getOptions ().getFont (); setFont (font); @@ -70,36 +74,34 @@ public class KeyChoice extends JPanel { key_chooser.setEditable(true); final int MAX_VISIBLE_ROWS = 30; - key_chooser.setMaximumRowCount (MAX_VISIBLE_ROWS); - updateChoice (); + addChoice (entry_information, default_key); } /** * Return the currently selected key. **/ - public Key getSelectedItem () { - final Key key; - - key = new Key ((String) key_chooser.getSelectedItem ()); - - return key; + public Key getSelectedItem () + { + return new Key ((String) key_chooser.getSelectedItem ()); } /** * Set the selected Key. **/ - public void setKey (final Key new_key) { + public void setKey (final Key new_key) + { final int key_index = keyIndex (new_key); - if (key_index == -1) { + if (key_index == -1) + { // add the key key_chooser.addItem (new_key.toString ()); key_chooser.setSelectedItem (new_key.toString ()); - } else { + } + else key_chooser.setSelectedIndex (key_index); - } } /** @@ -107,7 +109,8 @@ public class KeyChoice extends JPanel { * component of this KeyChoice. * @param l The item listener. **/ - public void addItemListener(ItemListener l) { + public void addItemListener(ItemListener l) + { key_chooser.addItemListener (l); } @@ -117,67 +120,45 @@ public class KeyChoice extends JPanel { * events from the Choice component of this KeyChoice. * @param l The item listener. **/ - public void removeItemListener(ItemListener l) { + public void removeItemListener(ItemListener l) + { key_chooser.removeItemListener (l); } /** - * Update the key_chooser. + * Add the key_chooser. **/ - private void updateChoice () { - removeAll (); - + private void addChoice (final EntryInformation entry_information, + final Key default_key) + { final Font font = Options.getOptions ().getFont (); key_chooser.setFont (font); - add (key_chooser); - - KeyVector keys = getSortedKeys (); + KeyVector keys = entry_information.getSortedValidKeys(); - if (keys == null) { + if (keys == null) + { keys = new KeyVector (); keys.add (Key.CDS); } - for (int i = 0 ; i < keys.size () ; ++i) { + for (int i = 0 ; i < keys.size () ; ++i) key_chooser.addItem ( ((Key)keys.get(i)).toString ()); - } - if (keyIndex (default_key) != -1) { + if (keyIndex (default_key) != -1) setKey (default_key); - } - - // XXX change to revalidate(). - validate (); - - if (getParent () != null) { - // XXX change to revalidate(). - getParent ().validate (); - if (getParent ().getParent () != null) { - // XXX change to revalidate(). - getParent ().getParent ().validate (); - } - } - } - - /** - * Return a alphanumerically sorted vector containing the String - * representations of the common keys (those listed in the common_keys - * property of the options file). If there is no common_keys option then - * all the legal keys are returned. - **/ - private KeyVector getSortedKeys () { - return entry_information.getSortedValidKeys (); + add (key_chooser); } /** * Return the index in the key_chooser component of the given Key. **/ - private int keyIndex (final Key key) { - for (int i = 0 ; i < key_chooser.getItemCount () ; ++i) { - if (key.toString ().equals ((String)key_chooser.getItemAt (i))) { + private int keyIndex (final Key key) + { + for (int i = 0 ; i < key_chooser.getItemCount () ; ++i) + { + if (key.toString ().equals ((String)key_chooser.getItemAt (i))) return i; - } } return -1; } @@ -187,24 +168,4 @@ public class KeyChoice extends JPanel { key_chooser.setEnabled(isEnabled); repaint(); } - - /** - * The Key that was passed to the constructor. - **/ - private Key default_key = null; - - /** - * The JComboBox component that will show the feature keys. - **/ - private JComboBox key_chooser = null; - - /** - * This toggle sets whether to show common keys or uncommon keys. - **/ - private JCheckBox common_keys_checkbox = null; - - /** - * The EntryInformation object that was passed to the constructor. - **/ - private EntryInformation entry_information = null; -} +} \ No newline at end of file