Check if sequence is in group before adding
[jalview.git] / src / jalview / datamodel / SequenceGroup.java
1 package jalview.datamodel;\r
2 \r
3 import jalview.schemes.*;\r
4 import jalview.analysis.*;\r
5 import jalview.datamodel.*;\r
6 import java.util.Vector;\r
7 \r
8 public class SequenceGroup\r
9 {\r
10   String groupName;\r
11   boolean isSelected;\r
12   boolean displayBoxes;\r
13   boolean displayText;\r
14   boolean colourText;\r
15   boolean display;\r
16   Conservation conserve;\r
17   Vector aaFrequency;\r
18   boolean aaFrequencyValid = false;\r
19   public Vector sequences = new Vector();\r
20   int width = -1;\r
21   public ColourSchemeI cs;\r
22   int startRes = 20;\r
23   int endRes = 35;\r
24 \r
25   public SequenceGroup()\r
26   {\r
27     groupName = "Group";\r
28     this.isSelected = false;\r
29     this.displayBoxes = true;\r
30     this.displayText = true;\r
31     this.colourText = false;\r
32     this.display = true;\r
33     cs = null;\r
34   }\r
35 \r
36   public SequenceGroup(String groupName, ColourSchemeI scheme,\r
37                        boolean isSelected,\r
38                        boolean displayBoxes, boolean displayText,\r
39                        boolean colourText,\r
40                        boolean display)\r
41   {\r
42 \r
43     this.groupName = groupName;\r
44     this.isSelected = isSelected;\r
45     this.displayBoxes = displayBoxes;\r
46     this.displayText = displayText;\r
47     this.colourText = colourText;\r
48     this.display = display;\r
49     this.cs = scheme;\r
50   }\r
51 \r
52   public String getName()\r
53   {\r
54     return groupName;\r
55   }\r
56 \r
57   public void setName(String name)\r
58   {\r
59     groupName = name;\r
60   }\r
61 \r
62   public Conservation getConservation()\r
63   {\r
64     return conserve;\r
65   }\r
66 \r
67   public void setConservation(Conservation c)\r
68   {\r
69     conserve = c;\r
70   }\r
71 \r
72   public void addSequence(SequenceI s)\r
73   {\r
74     if(!sequences.contains(s))\r
75       sequences.addElement(s);\r
76   }\r
77 \r
78   public void deleteSequence(SequenceI s)\r
79   {\r
80     sequences.removeElement(s);\r
81   }\r
82 \r
83   public void setColourText(boolean state)\r
84   {\r
85     colourText = state;\r
86   }\r
87 \r
88   public boolean getColourText()\r
89   {\r
90     return colourText;\r
91   }\r
92 \r
93   public void setDisplayText(boolean state)\r
94   {\r
95     displayText = state;\r
96   }\r
97 \r
98   public boolean getDisplayText()\r
99   {\r
100     return displayText;\r
101   }\r
102 \r
103   public void setDisplayBoxes(boolean state)\r
104   {\r
105     displayBoxes = state;\r
106   }\r
107 \r
108   public boolean getDisplayBoxes()\r
109   {\r
110     return displayBoxes;\r
111   }\r
112 \r
113   public int getStartRes()\r
114   {\r
115     return startRes;\r
116   }\r
117 \r
118   public int getEndRes()\r
119   {\r
120     return endRes;\r
121   }\r
122 \r
123   public void setStartRes(int i)\r
124   {\r
125     startRes = i;\r
126   }\r
127 \r
128   public void setEndRes(int i)\r
129   {\r
130     endRes = i;\r
131   }\r
132 \r
133   public int getSize()\r
134   {\r
135     return sequences.size();\r
136   }\r
137 \r
138   public SequenceI getSequenceAt(int i)\r
139   {\r
140     return (SequenceI) sequences.elementAt(i);\r
141   }\r
142 \r
143   public Vector getAAFrequency()\r
144   {\r
145     if (aaFrequency == null || aaFrequencyValid == false)\r
146     {\r
147       aaFrequency = AAFrequency.calculate(sequences, 0, getWidth());\r
148       aaFrequencyValid = true;\r
149     }\r
150     return aaFrequency;\r
151   }\r
152 \r
153   public int getWidth()\r
154   {\r
155     System.out.println("it is called");\r
156     // MC This needs to get reset when characters are inserted and deleted\r
157     for (int i = 0; i < sequences.size(); i++)\r
158     {\r
159       SequenceI seq = (SequenceI) sequences.elementAt(i);\r
160       if (seq.getLength() > width)\r
161         width = seq.getLength();\r
162     }\r
163     return width;\r
164   }\r
165 }\r