d6eae09e3583c7e7fbbc5acd2277dd94cdddfd8a
[jalview.git] / src / jalview / gui / ColumnSelection.java
1 package jalview.gui;\r
2 \r
3 import java.util.*;\r
4 \r
5 /**\r
6  * NOTE: Columns are zero based.\r
7  */\r
8 public class ColumnSelection {\r
9   Vector selected = new Vector();\r
10 \r
11   public void addElement(int col) {\r
12     selected.addElement(new Integer(col));\r
13   }\r
14 \r
15   public void clear() {\r
16     selected.removeAllElements();\r
17   }\r
18 \r
19   public void removeElement(int col) {\r
20     Integer colInt = new Integer(col);\r
21     if (selected.contains(colInt)) {\r
22       selected.removeElement(colInt);\r
23     } else {\r
24       System.err.println("WARNING: Tried to remove Integer NOT in ColumnSelection");\r
25     }\r
26   }\r
27 \r
28   public boolean contains(int col) {\r
29     return selected.contains(new Integer(col));\r
30   }\r
31 \r
32   public int columnAt(int i) {\r
33     return ((Integer)selected.elementAt(i)).intValue();\r
34   }\r
35 \r
36   public int size() {\r
37     return selected.size();\r
38   }\r
39 \r
40   public int getMax() {\r
41     int max = -1;\r
42 \r
43     for (int i=0;i<selected.size();i++) {\r
44       if (columnAt(i) > max) {\r
45         max = columnAt(i);\r
46       }\r
47     }\r
48     return max;\r
49   }\r
50 \r
51   public int getMin() {\r
52     int min = 1000000000;\r
53 \r
54     for (int i=0;i<selected.size();i++) {\r
55       if (columnAt(i) < min) {\r
56         min = columnAt(i);\r
57       }\r
58     }\r
59     return min;\r
60   }\r
61 \r
62   public Vector asVector() {\r
63     return selected;\r
64   }\r
65 \r
66   public void compensateForEdit(int start, int change) {\r
67     for (int i=0; i < size();i++) {\r
68       int temp = columnAt(i);\r
69 \r
70       if (temp >= start) {\r
71         selected.setElementAt(new Integer(temp-change),i);\r
72       }\r
73     }\r
74   }\r
75 }\r