initial colour of sequence is black
[jalview.git] / src / jalview / datamodel / Sequence.java
1 package jalview.datamodel;\r
2 \r
3 \r
4 import java.awt.*;\r
5 \r
6 public class Sequence implements SequenceI\r
7 {\r
8   protected String   name;\r
9   protected String   sequence;\r
10   protected int      start;\r
11   protected int      end;\r
12   protected String   description;\r
13   protected int      charHeight;\r
14   protected String   displayId;\r
15   protected Color    color = Color.white;\r
16 \r
17   public Sequence(String name, String sequence, int start, int end)\r
18   {\r
19 \r
20     this.name     = name;\r
21     this.sequence = sequence;\r
22     this.start    = start;\r
23     this.end      = end;\r
24 \r
25     setDisplayId();\r
26 \r
27   }\r
28 \r
29   public Sequence(String name,String sequence) {\r
30     this(name,sequence,1,sequence.length());\r
31   }\r
32   public Sequence(SequenceI seq) {\r
33     this(seq.getName(),seq.getSequence(),seq.getStart(),seq.getEnd());\r
34   }\r
35   public String getDisplayId() {\r
36     return displayId;\r
37   }\r
38   public void setDisplayId() {\r
39     displayId = name + "/" + start + "-" + end;\r
40   }\r
41   public void setName(String name) {\r
42     this.name = name;\r
43     setDisplayId();\r
44   }\r
45   public String getName() {\r
46     return this.name;\r
47   }\r
48   public void setStart(int start) {\r
49     this.start = start;\r
50     setDisplayId();\r
51   }\r
52   public int getStart() {\r
53     return this.start;\r
54   }\r
55   public void setEnd(int end) {\r
56     this.end = end;\r
57     setDisplayId();\r
58   }\r
59   public int getEnd() {\r
60     return this.end;\r
61   }\r
62   public int getLength() {\r
63     return this.sequence.length();\r
64   }\r
65   public void setSequence(String seq) {\r
66     this.sequence = seq;\r
67   }\r
68   public String getSequence() {\r
69     return this.sequence;\r
70   }\r
71   public String getSequence(int start,int end) {\r
72     return this.sequence.substring(start,end);\r
73   }\r
74 \r
75   public char getCharAt(int i) {\r
76     if (i < sequence.length()) {\r
77       return sequence.charAt(i);\r
78     } else {\r
79       return ' ';\r
80     }\r
81   }\r
82   public void setDescription(String desc) {\r
83     this.description = desc;\r
84   }\r
85   public String getDescription() {\r
86     return this.description;\r
87   }\r
88 \r
89   public int findIndex(int pos) {\r
90     // returns the alignment position for a residue\r
91     int j = start;\r
92     int i = 0;\r
93 \r
94     while (i< sequence.length() && j <= end && j <= pos) {\r
95 \r
96       String s = sequence.substring(i,i+1);\r
97 \r
98       if (!(s.equals(".") || s.equals("-") || s.equals(" "))) {\r
99         j++;\r
100       }\r
101       i++;\r
102     }\r
103     if (j == end && j < pos) {\r
104       return end+1;\r
105     } else {\r
106 \r
107       return i;\r
108     }\r
109   }\r
110 \r
111   public int findPosition(int i) {\r
112     // Returns the sequence position for an alignment position\r
113     int j   = 0;\r
114     int pos = start;\r
115 \r
116     while (j < i) {\r
117       String s = sequence.substring(j,j+1);\r
118 \r
119       if (!(s.equals(".") || s.equals("-") || s.equals(" "))) {\r
120         pos++;\r
121       }\r
122       j++;\r
123     }\r
124     return pos;\r
125   }\r
126   public void deleteCharAt(int i)\r
127   {\r
128     StringBuffer sbuffer = new StringBuffer(sequence);\r
129     sbuffer.deleteCharAt(i);\r
130     sequence = sbuffer.toString();\r
131   }\r
132 \r
133   public void insertCharAt(int i, char c)\r
134   {\r
135     insertCharAt(i,c,true);\r
136   }\r
137 \r
138   public void insertCharAt(int i,char c,boolean chop) {\r
139 \r
140     String tmp = new String(sequence);\r
141 \r
142     if (i < sequence.length()) {\r
143       sequence = tmp.substring(0,i) + String.valueOf(c) + tmp.substring(i);\r
144     } else {\r
145       sequence = tmp + String.valueOf(c);\r
146     }\r
147 \r
148   }\r
149 \r
150   public void        setColor(Color c) {\r
151     this.color = c;\r
152   }\r
153 \r
154   public Color       getColor() {\r
155     return color;\r
156   }\r
157 \r
158 }\r