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