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