+ if (refSeq != null)\r
+ {\r
+ sg.setStartRes(refSeq.findIndex(sg.getStartRes() + 1) - 1);\r
+ sg.setEndRes(refSeq.findIndex(sg.getEndRes() + 1) - 1);\r
+ }\r
+\r
+ if (sg.getSize() > 0)\r
+ {\r
+ al.addGroup(sg);\r
+ }\r
+ }\r
+\r
+ void addProperties(AlignmentI al, StringTokenizer st)\r
+ {\r
+\r
+ //So far we have only added groups to the annotationHash,\r
+ //the idea is in the future properties can be added to\r
+ //alignments, other annotations etc\r
+ if (al.getGroups() == null)\r
+ {\r
+ return;\r
+ }\r
+ SequenceGroup sg = null;\r
+\r
+ String name = st.nextToken();\r
+\r
+ Vector groups = al.getGroups();\r
+ for (int i = 0; i < groups.size(); i++)\r
+ {\r
+ sg = (SequenceGroup) groups.elementAt(i);\r
+ if (sg.getName().equals(name))\r
+ {\r
+ break;\r
+ }\r
+ else\r
+ {\r
+ sg = null;\r
+ }\r
+ }\r
+\r
+ if (sg != null)\r
+ {\r
+ String keyValue, key, value;\r
+ while (st.hasMoreTokens())\r
+ {\r
+ keyValue = st.nextToken();\r
+ key = keyValue.substring(0, keyValue.indexOf("="));\r
+ value = keyValue.substring(keyValue.indexOf("=") + 1);\r
+\r
+ if (key.equalsIgnoreCase("description"))\r
+ {\r
+ sg.setDescription(value);\r
+ }\r
+ else if (key.equalsIgnoreCase("colour"))\r
+ {\r
+ sg.cs = ColourSchemeProperty.getColour(al, value);\r
+ }\r
+ else if (key.equalsIgnoreCase("pidThreshold"))\r
+ {\r
+ sg.cs.setThreshold(Integer.parseInt(value), true);\r
+\r
+ }\r
+ else if (key.equalsIgnoreCase("consThreshold"))\r
+ {\r
+ sg.cs.setConservationInc(Integer.parseInt(value));\r
+ Conservation c = new Conservation("Group",\r
+ ResidueProperties.propHash, 3,\r
+ sg.getSequences(null),\r
+ sg.getStartRes(),\r
+ sg.getEndRes() + 1);\r
+\r
+ c.calculate();\r
+ c.verdict(false, 25);\r
+\r
+ sg.cs.setConservation(c);\r
+\r
+ }\r
+ else if (key.equalsIgnoreCase("outlineColour"))\r
+ {\r
+ sg.setOutlineColour(new UserColourScheme(value).findColour('A'));\r
+ }\r
+ else if (key.equalsIgnoreCase("displayBoxes"))\r
+ {\r
+ sg.setDisplayBoxes(Boolean.valueOf(value).booleanValue());\r
+ }\r
+ else if (key.equalsIgnoreCase("displayText"))\r
+ {\r
+ sg.setDisplayText(Boolean.valueOf(value).booleanValue());\r
+ }\r
+ else if (key.equalsIgnoreCase("colourText"))\r
+ {\r
+ sg.setColourText(Boolean.valueOf(value).booleanValue());\r
+ }\r
+ else if (key.equalsIgnoreCase("textCol1"))\r
+ {\r
+ sg.textColour = new UserColourScheme(value).findColour('A');\r
+ }\r
+ else if (key.equalsIgnoreCase("textCol2"))\r
+ {\r
+ sg.textColour2 = new UserColourScheme(value).findColour('A');\r
+ }\r
+ else if (key.equalsIgnoreCase("textColThreshold"))\r
+ {\r
+ sg.thresholdTextColour = Integer.parseInt(value);\r
+ }\r
+\r
+ sg.recalcConservation();\r
+ }\r
+ }\r