Formatting changes
[jalview.git] / src / jalview / datamodel / SuperGroup.java
1 /*\r
2 * Jalview - A Sequence Alignment Editor and Viewer\r
3 * Copyright (C) 2005 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle\r
4 *\r
5 * This program is free software; you can redistribute it and/or\r
6 * modify it under the terms of the GNU General Public License\r
7 * as published by the Free Software Foundation; either version 2\r
8 * of the License, or (at your option) any later version.\r
9 *\r
10 * This program is distributed in the hope that it will be useful,\r
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
13 * GNU General Public License for more details.\r
14 *\r
15 * You should have received a copy of the GNU General Public License\r
16 * along with this program; if not, write to the Free Software\r
17 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA\r
18 */\r
19 package jalview.datamodel;\r
20 \r
21 import jalview.datamodel.*;\r
22 \r
23 import jalview.schemes.*;\r
24 \r
25 import java.util.*;\r
26 \r
27 \r
28 /**\r
29  * DOCUMENT ME!\r
30  *\r
31  * @author $author$\r
32  * @version $Revision$\r
33  */\r
34 public class SuperGroup\r
35 {\r
36     String groupName;\r
37     boolean displayBoxes;\r
38     boolean displayText;\r
39     boolean colourText;\r
40 \r
41     /** DOCUMENT ME!! */\r
42     public ColourSchemeI cs;\r
43     Vector sequenceGroups = new Vector();\r
44 \r
45     /**\r
46      * Creates a new SuperGroup object.\r
47      */\r
48     public SuperGroup()\r
49     {\r
50         groupName = "Super group";\r
51         this.displayBoxes = true;\r
52         this.displayText = true;\r
53         this.colourText = false;\r
54         cs = null;\r
55     }\r
56 \r
57     /**\r
58      * Creates a new SuperGroup object.\r
59      *\r
60      * @param groupName DOCUMENT ME!\r
61      * @param scheme DOCUMENT ME!\r
62      * @param displayBoxes DOCUMENT ME!\r
63      * @param displayText DOCUMENT ME!\r
64      * @param colourText DOCUMENT ME!\r
65      */\r
66     public SuperGroup(String groupName, ColourSchemeI scheme,\r
67         boolean displayBoxes, boolean displayText, boolean colourText)\r
68     {\r
69         this.groupName = groupName;\r
70         this.displayBoxes = displayBoxes;\r
71         this.displayText = displayText;\r
72         this.colourText = colourText;\r
73         this.cs = scheme;\r
74     }\r
75 \r
76     /**\r
77      * DOCUMENT ME!\r
78      *\r
79      * @return DOCUMENT ME!\r
80      */\r
81     public String getName()\r
82     {\r
83         return groupName;\r
84     }\r
85 \r
86     /**\r
87      * DOCUMENT ME!\r
88      *\r
89      * @param name DOCUMENT ME!\r
90      */\r
91     public void setName(String name)\r
92     {\r
93         groupName = name;\r
94     }\r
95 \r
96     /**\r
97      * DOCUMENT ME!\r
98      *\r
99      * @param sg DOCUMENT ME!\r
100      */\r
101     public void addGroup(SequenceGroup sg)\r
102     {\r
103         if (!sequenceGroups.contains(sg))\r
104         {\r
105             sequenceGroups.addElement(sg);\r
106         }\r
107     }\r
108 \r
109     /**\r
110      * DOCUMENT ME!\r
111      *\r
112      * @param sg DOCUMENT ME!\r
113      */\r
114     public void addOrRemove(SequenceGroup sg)\r
115     {\r
116         if (sequenceGroups.contains(sg))\r
117         {\r
118             deleteGroup(sg);\r
119         }\r
120         else\r
121         {\r
122             addGroup(sg);\r
123         }\r
124     }\r
125 \r
126     /**\r
127      * DOCUMENT ME!\r
128      *\r
129      * @param sg DOCUMENT ME!\r
130      */\r
131     public void deleteGroup(SequenceGroup sg)\r
132     {\r
133         sequenceGroups.removeElement(sg);\r
134     }\r
135 \r
136     /**\r
137      * DOCUMENT ME!\r
138      *\r
139      * @param sg DOCUMENT ME!\r
140      */\r
141     public void setSuperGroupProperties(SequenceGroup sg)\r
142     {\r
143         cs = sg.cs;\r
144         colourText = sg.colourText;\r
145         displayText = sg.displayText;\r
146         displayBoxes = sg.displayBoxes;\r
147 \r
148         for (int i = 0; i < sequenceGroups.size(); i++)\r
149         {\r
150             SequenceGroup temp = (SequenceGroup) sequenceGroups.elementAt(i);\r
151             temp.cs = sg.cs;\r
152             temp.colourText = sg.colourText;\r
153             temp.displayText = sg.displayText;\r
154             temp.displayBoxes = sg.displayBoxes;\r
155         }\r
156     }\r
157 \r
158     /**\r
159      * DOCUMENT ME!\r
160      *\r
161      * @return DOCUMENT ME!\r
162      */\r
163     public int getSize()\r
164     {\r
165         return sequenceGroups.size();\r
166     }\r
167 \r
168     /**\r
169      * DOCUMENT ME!\r
170      *\r
171      * @param i DOCUMENT ME!\r
172      *\r
173      * @return DOCUMENT ME!\r
174      */\r
175     public SequenceGroup getGroupeAt(int i)\r
176     {\r
177         return (SequenceGroup) sequenceGroups.elementAt(i);\r
178     }\r
179 }\r