now has a name
[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     String groupName;\r
10     boolean isSelected;\r
11     boolean displayBoxes;\r
12     boolean displayText;\r
13     boolean colourText;\r
14     boolean display;\r
15     Conservation conserve;\r
16     Vector   aaFrequency;\r
17     boolean     aaFrequencyValid = false;\r
18     public Vector sequences = new Vector();\r
19     int         width = -1;\r
20     public ColourSchemeI cs;\r
21 \r
22 \r
23   public SequenceGroup() {\r
24     groupName = "Group";\r
25     this.isSelected = false;\r
26     this.displayBoxes = true;\r
27     this.displayText = true;\r
28     this.colourText = false;\r
29     this.display = true;\r
30     cs = new ZappoColourScheme();\r
31   }\r
32 \r
33   public SequenceGroup( String groupName, ColourSchemeI scheme, boolean isSelected,\r
34                         boolean displayBoxes, boolean displayText,\r
35                         boolean colourText,\r
36                         boolean display) {\r
37 \r
38     this.groupName = groupName;\r
39     this.isSelected = isSelected;\r
40     this.displayBoxes = displayBoxes;\r
41     this.displayText = displayText;\r
42     this.colourText = colourText;\r
43     this.display = display;\r
44     this.cs = scheme;\r
45   }\r
46 \r
47   public String getName()\r
48   {\r
49     return groupName;\r
50   }\r
51 \r
52   public void setName(String name)\r
53   {\r
54     groupName = name;\r
55   }\r
56   public Conservation getConservation() {\r
57      return conserve;\r
58   }\r
59   public void setConservation(Conservation c)\r
60   { conserve = c; }\r
61 \r
62   public void addSequence(SequenceI s) {\r
63     sequences.addElement(s);\r
64   }\r
65 \r
66   public void deleteSequence(SequenceI s) {\r
67     sequences.removeElement(s);\r
68   }\r
69 \r
70   public void setColourText(boolean state) {\r
71     colourText = state;\r
72   }\r
73   public boolean getColourText() {\r
74     return colourText;\r
75   }\r
76 \r
77   public void setDisplayText(boolean state) {\r
78     displayText = state;\r
79   }\r
80 \r
81   public boolean getDisplayText() {\r
82     return displayText;\r
83   }\r
84 \r
85   public void setDisplayBoxes(boolean state) {\r
86     displayBoxes = state;\r
87   }\r
88 \r
89   public boolean getDisplayBoxes() {\r
90     return displayBoxes;\r
91   }\r
92 \r
93     public int getSize() {\r
94         return sequences.size();\r
95     }\r
96     public SequenceI  getSequenceAt(int i) {\r
97         return (SequenceI)sequences.elementAt(i);\r
98     }\r
99 \r
100     public Vector getAAFrequency() {\r
101         if (aaFrequency == null || aaFrequencyValid == false) {\r
102             aaFrequency = AAFrequency.calculate(sequences,0,getWidth());\r
103             aaFrequencyValid = true;\r
104         }\r
105         return aaFrequency;\r
106     }\r
107 \r
108     public int getWidth()\r
109     {\r
110         // MC This needs to get reset when characters are inserted and deleted\r
111         for (int i = 0; i < sequences.size(); i++)\r
112         {\r
113           SequenceI seq = (SequenceI) sequences.elementAt(i);\r
114           if (seq.getLength() > width)\r
115             width = seq.getLength();\r
116         }\r
117         return width;\r
118     }\r
119 }\r
120 \r
121 \r