public void setGene(AnnotatedFeatureI g) { this.gene = g; if (g == null) return; if (!g.isProteinCodingGene()) { setText("NOT A PEPTIDE"); setEnabled(false); } else { setEnabled(true); Hashtable curator_values = Config.getPeptideStates(); String pep_status = g.getProperty("sp_status"); PeptideStatus this_status = Config.getPeptideStatus(pep_status); JMenuItem item; /* these are the computed values that cannot be over-ridden by a curator */ item = new JMenuItem(this_status.getText()); add(item); item.addActionListener(this); /* these are the possible values to be selected by a curator */ Enumeration e = curator_values.keys(); while (e.hasMoreElements()) { String key = (String) e.nextElement(); PeptideStatus a_status = (PeptideStatus) curator_values.get(key); if (a_status.getPrecedence() >= this_status.getPrecedence() && !a_status.getText().equals(this_status.getText()) && a_status.getCurated()) { item = new JMenuItem(a_status.getText()); add(item); item.addActionListener(this); } } setText(this_status.getText()); } }