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 SequenceGroup sg = ap.av.getSelectionGroup();
\r
52 if (sg != null && sg.getSize() > 1)
\r
55 del = ap.av.alignment.removeRedundancy(threshold, sg.sequences);
\r
56 for (int i = 0; i < del.size(); i++)
\r
57 if (sg.sequences.contains( (SequenceI) del.elementAt(i)))
\r
58 sg.deleteSequence( (SequenceI) del.elementAt(i));
\r
63 Vector s = new Vector();
\r
65 while(i < ap.av.alignment.getHeight())
\r
67 s.addElement( ap.av.alignment.getSequenceAt(i) );
\r
70 del = ap.av.alignment.removeRedundancy(threshold,s);
\r
71 for (int j=0; j < del.size(); j++)
\r
73 if (sg.sequences.contains((SequenceI)del.elementAt(j)))
\r
74 sg.deleteSequence((SequenceI)del.elementAt(j));
\r
83 public void undoButton_actionPerformed(ActionEvent e)
\r
85 undoButton.setEnabled(false);
\r
86 ap.av.setAlignment( new Alignment(oldAlignment) );
\r
87 oldAlignment = null;
\r
92 public void valueField_actionPerformed(ActionEvent e)
\r
95 int i = Integer.parseInt(valueField.getText());
\r
100 valueField.setText( slider.getValue()+"" );
\r