Load pdb file with applet
[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.schemes.*;\r
22 \r
23 import java.util.*;\r
24 \r
25 \r
26 /**\r
27  * DOCUMENT ME!\r
28  *\r
29  * @author $author$\r
30  * @version $Revision$\r
31  */\r
32 public class SuperGroup\r
33 {\r
34     String groupName;\r
35     boolean displayBoxes;\r
36     boolean displayText;\r
37     boolean colourText;\r
38 \r
39     /** DOCUMENT ME!! */\r
40     public ColourSchemeI cs;\r
41     Vector sequenceGroups = new Vector();\r
42 \r
43     /**\r
44      * Creates a new SuperGroup object.\r
45      */\r
46     public SuperGroup()\r
47     {\r
48         groupName = "Super group";\r
49         this.displayBoxes = true;\r
50         this.displayText = true;\r
51         this.colourText = false;\r
52         cs = null;\r
53     }\r
54 \r
55     /**\r
56      * Creates a new SuperGroup object.\r
57      *\r
58      * @param groupName DOCUMENT ME!\r
59      * @param scheme DOCUMENT ME!\r
60      * @param displayBoxes DOCUMENT ME!\r
61      * @param displayText DOCUMENT ME!\r
62      * @param colourText DOCUMENT ME!\r
63      */\r
64     public SuperGroup(String groupName, ColourSchemeI scheme,\r
65         boolean displayBoxes, boolean displayText, boolean colourText)\r
66     {\r
67         this.groupName = groupName;\r
68         this.displayBoxes = displayBoxes;\r
69         this.displayText = displayText;\r
70         this.colourText = colourText;\r
71         this.cs = scheme;\r
72     }\r
73 \r
74     /**\r
75      * DOCUMENT ME!\r
76      *\r
77      * @return DOCUMENT ME!\r
78      */\r
79     public String getName()\r
80     {\r
81         return groupName;\r
82     }\r
83 \r
84     /**\r
85      * DOCUMENT ME!\r
86      *\r
87      * @param name DOCUMENT ME!\r
88      */\r
89     public void setName(String name)\r
90     {\r
91         groupName = name;\r
92     }\r
93 \r
94     /**\r
95      * DOCUMENT ME!\r
96      *\r
97      * @param sg DOCUMENT ME!\r
98      */\r
99     public void addGroup(SequenceGroup sg)\r
100     {\r
101         if (!sequenceGroups.contains(sg))\r
102         {\r
103             sequenceGroups.addElement(sg);\r
104         }\r
105     }\r
106 \r
107     /**\r
108      * DOCUMENT ME!\r
109      *\r
110      * @param sg DOCUMENT ME!\r
111      */\r
112     public void addOrRemove(SequenceGroup sg)\r
113     {\r
114         if (sequenceGroups.contains(sg))\r
115         {\r
116             deleteGroup(sg);\r
117         }\r
118         else\r
119         {\r
120             addGroup(sg);\r
121         }\r
122     }\r
123 \r
124     /**\r
125      * DOCUMENT ME!\r
126      *\r
127      * @param sg DOCUMENT ME!\r
128      */\r
129     public void deleteGroup(SequenceGroup sg)\r
130     {\r
131         sequenceGroups.removeElement(sg);\r
132     }\r
133 \r
134     /**\r
135      * DOCUMENT ME!\r
136      *\r
137      * @param sg DOCUMENT ME!\r
138      */\r
139     public void setSuperGroupProperties(SequenceGroup sg)\r
140     {\r
141         cs = sg.cs;\r
142         colourText = sg.colourText;\r
143         displayText = sg.displayText;\r
144         displayBoxes = sg.displayBoxes;\r
145 \r
146         for (int i = 0; i < sequenceGroups.size(); i++)\r
147         {\r
148             SequenceGroup temp = (SequenceGroup) sequenceGroups.elementAt(i);\r
149             temp.cs = sg.cs;\r
150             temp.colourText = sg.colourText;\r
151             temp.displayText = sg.displayText;\r
152             temp.displayBoxes = sg.displayBoxes;\r
153         }\r
154     }\r
155 \r
156     /**\r
157      * DOCUMENT ME!\r
158      *\r
159      * @return DOCUMENT ME!\r
160      */\r
161     public int getSize()\r
162     {\r
163         return sequenceGroups.size();\r
164     }\r
165 \r
166     /**\r
167      * DOCUMENT ME!\r
168      *\r
169      * @param i DOCUMENT ME!\r
170      *\r
171      * @return DOCUMENT ME!\r
172      */\r
173     public SequenceGroup getGroupeAt(int i)\r
174     {\r
175         return (SequenceGroup) sequenceGroups.elementAt(i);\r
176     }\r
177 }\r