new file image
[jalview.git] / src / jalview / gui / Selection.java
1 package jalview.gui;\r
2 \r
3 import jalview.datamodel.*;\r
4 \r
5 import java.util.*;\r
6 \r
7 public class Selection\r
8 {\r
9 \r
10   Vector selected = new Vector();\r
11   AlignViewport av;\r
12 \r
13   public Selection(AlignViewport av)\r
14   {\r
15     this.av = av;\r
16   }\r
17 \r
18   public void addElement(SequenceI seq) {\r
19     selected.addElement(seq);\r
20     SequenceGroup sg = av.getRubberbandGroup();\r
21     if(sg==null)\r
22     {\r
23       sg = new SequenceGroup();\r
24       sg.setEndRes(av.alignment.getWidth()-1);\r
25       av.setRubberbandGroup(sg);\r
26     }\r
27 \r
28     sg.addSequence(seq);\r
29 \r
30   }\r
31 \r
32   public void clear() {\r
33     selected.removeAllElements();\r
34   }\r
35 \r
36   public void removeElement(SequenceI seq) {\r
37     if (selected.contains(seq))\r
38       selected.removeElement(seq);\r
39     else\r
40       System.err.println("WARNING: Tried to remove SequenceI NOT in Selection");\r
41 \r
42     SequenceGroup sg = av.getRubberbandGroup();\r
43     if (sg != null)\r
44       sg.deleteSequence(seq);\r
45 \r
46 \r
47   }\r
48 \r
49   public boolean contains(SequenceI seq) {\r
50     return selected.contains(seq);\r
51   }\r
52 \r
53   public SequenceI sequenceAt(int i) {\r
54     return (SequenceI)selected.elementAt(i);\r
55   }\r
56 \r
57   public int size() {\r
58     return selected.size();\r
59   }\r
60 \r
61   public Vector asVector() {\r
62     return selected;\r
63   }\r
64 \r
65   public void selectAll(AlignmentI align) {\r
66     for (int i=0;i<align.getSequences().size();i++) {\r
67       SequenceI seq = align.getSequenceAt(i);\r
68       if (!contains(seq)) {\r
69         addElement(seq);\r
70       }\r
71     }\r
72   }\r
73 }\r