3 import jalview.jbgui.*;
\r
4 import jalview.datamodel.*;
\r
5 import java.awt.event.*;
\r
7 import javax.swing.event.*;
\r
9 public class RedundancyPanel extends GSliderPanel
\r
13 SequenceI[] oldAlignment;
\r
16 public RedundancyPanel(AlignmentPanel ap)
\r
20 label.setText("Enter the redundancy threshold");
\r
22 slider.addChangeListener(new ChangeListener()
\r
24 public void stateChanged(ChangeEvent evt)
\r
26 valueField.setText( slider.getValue()+"" );
\r
30 slider.setMinimum(0);
\r
31 slider.setMaximum(100);
\r
32 slider.setValue(100 );
\r
36 public void applyButton_actionPerformed(ActionEvent e)
\r
38 float threshold = slider.getValue();
\r
41 oldAlignment = new SequenceI[ap.av.alignment.getHeight()];
\r
42 for (int i = 0; i < ap.av.alignment.getHeight(); i++)
\r
44 oldAlignment[i] = new Sequence(ap.av.alignment.getSequenceAt(i).getName(),
\r
45 ap.av.alignment.getSequenceAt(i).
\r
49 undoButton.setEnabled(true);
\r
51 if (ap.av.sel != null && ap.av.sel.size() > 1)
\r
54 del = ap.av.alignment.removeRedundancy(threshold, ap.av.sel.asVector());
\r
55 for (int i = 0; i < del.size(); i++)
\r
56 if (ap.av.sel.contains( (SequenceI) del.elementAt(i)))
\r
57 ap.av.sel.removeElement( (SequenceI) del.elementAt(i));
\r
62 Vector s = new Vector();
\r
64 while(i < ap.av.alignment.getHeight())
\r
66 s.addElement( ap.av.alignment.getSequenceAt(i) );
\r
69 del = ap.av.alignment.removeRedundancy(threshold,s);
\r
70 for (int j=0; j < del.size(); j++)
\r
72 if (ap.av.sel.contains((SequenceI)del.elementAt(j)))
\r
73 ap.av.sel.removeElement((SequenceI)del.elementAt(j));
\r
82 public void undoButton_actionPerformed(ActionEvent e)
\r
84 undoButton.setEnabled(false);
\r
85 ap.av.setAlignment( new Alignment(oldAlignment) );
\r
86 oldAlignment = null;
\r
91 public void valueField_actionPerformed(ActionEvent e)
\r
94 int i = Integer.parseInt(valueField.getText());
\r
99 valueField.setText( slider.getValue()+"" );
\r