1 package jalview.appletgui;
\r
3 import jalview.jbappletgui.*;
\r
4 import jalview.datamodel.*;
\r
5 import java.awt.event.*;
\r
8 public class RedundancyPanel extends GSliderPanel
\r
12 SequenceI[] oldAlignment;
\r
15 public RedundancyPanel(AlignmentPanel ap)
\r
19 label.setText("Enter the redundancy threshold");
\r
21 slider.addAdjustmentListener(new AdjustmentListener()
\r
23 public void adjustmentValueChanged(AdjustmentEvent evt)
\r
25 valueField.setText( slider.getValue()+"" );
\r
29 slider.setMinimum(0);
\r
30 slider.setMaximum(100);
\r
31 slider.setValue(100 );
\r
35 public void applyButton_actionPerformed(ActionEvent e)
\r
37 float threshold = slider.getValue();
\r
40 oldAlignment = new SequenceI[ap.av.alignment.getHeight()];
\r
41 for (int i = 0; i < ap.av.alignment.getHeight(); i++)
\r
43 oldAlignment[i] = new Sequence(ap.av.alignment.getSequenceAt(i).getName(),
\r
44 ap.av.alignment.getSequenceAt(i).
\r
48 undoButton.setEnabled(true);
\r
50 SequenceGroup sg = ap.av.getSelectionGroup();
\r
51 if (sg != null && sg.getSize() > 1)
\r
54 del = ap.av.alignment.removeRedundancy(threshold, sg.sequences);
\r
55 for (int i = 0; i < del.size(); i++)
\r
56 if (sg.sequences.contains( (SequenceI) del.elementAt(i)))
\r
57 sg.deleteSequence( (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 (sg.sequences.contains((SequenceI)del.elementAt(j)))
\r
73 sg.deleteSequence((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