{\r
SequenceI datasetSequence;\r
String name;\r
- String sequence;\r
+ private String sequence;\r
String description;\r
int start;\r
int end;\r
sequenceFeatures = features;\r
}\r
\r
- public void addSequenceFeature(SequenceFeature sf)\r
+ public synchronized void addSequenceFeature(SequenceFeature sf)\r
{\r
if(sequenceFeatures==null)\r
{\r
System.arraycopy(sequenceFeatures, 0, temp, 0, sequenceFeatures.length);\r
temp[sequenceFeatures.length] = sf;\r
\r
-\r
sequenceFeatures = temp;\r
}\r
\r
- SequenceFeature [] sfarray;\r
-\r
- public SequenceFeature[] getsfarray()\r
- {\r
- return sfarray;\r
- }\r
-\r
\r
/**\r
* DOCUMENT ME!\r
public int[] gapMap()\r
{\r
// Returns an int array giving the position of each residue in the sequence in the alignment\r
- String seq = jalview.analysis.AlignSeq.extractGaps("-. ", sequence);\r
+ String seq = jalview.analysis.AlignSeq.extractGaps(jalview.util.Comparison.GapChars, sequence);\r
int[] map = new int[seq.length()];\r
int j = 0;\r
int p = 0;\r
public void showHiddenSequence(SequenceI seq)\r
{\r
hiddenSequences.deleteSequence(seq, false);\r
- if (hiddenSequences.getSize() < 1)\r
+ if (hiddenSequences.getSize(false) < 1)\r
{\r
hiddenSequences = null;\r
}\r
-\r
}\r
\r
public void changeCase(boolean toUpper, int start, int end)\r
{\r
StringBuffer newSeq = new StringBuffer();\r
\r
- if(end>=sequence.length())\r
- end = sequence.length()-1;\r
+ if(end>sequence.length())\r
+ end = sequence.length();\r
\r
if (start > 0)\r
{\r
sequence = newSeq.toString();\r
}\r
\r
+ public void toggleCase(int start, int end)\r
+ {\r
+ StringBuffer newSeq = new StringBuffer();\r
+\r
+ if(end>sequence.length())\r
+ end = sequence.length();\r
+\r
+ if (start > 0)\r
+ {\r
+ newSeq.append(sequence.substring(0, start));\r
+ }\r
+\r
+ char nextChar;\r
+ for(int c=start; c<end; c++)\r
+ {\r
+ nextChar = sequence.charAt(c);\r
+ if(Character.isLetter(nextChar))\r
+ {\r
+ if(Character.isUpperCase(nextChar))\r
+ nextChar = Character.toLowerCase(nextChar);\r
+ else\r
+ nextChar = Character.toUpperCase(nextChar);\r
+ }\r
+\r
+\r
+ newSeq.append(nextChar);\r
+ }\r
+\r
+ if (end < sequence.length())\r
+ newSeq.append(sequence.substring(end));\r
+\r
+ sequence = newSeq.toString();\r
+ }\r
+\r
}\r