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