*/
package jalview.io;
-import jalview.analysis.Conservation;
-import jalview.api.AlignViewportI;
-import jalview.datamodel.AlignmentAnnotation;
-import jalview.datamodel.AlignmentI;
-import jalview.datamodel.Annotation;
-import jalview.datamodel.ColumnSelection;
-import jalview.datamodel.GraphLine;
-import jalview.datamodel.HiddenColumns;
-import jalview.datamodel.HiddenSequences;
-import jalview.datamodel.SequenceGroup;
-import jalview.datamodel.SequenceI;
-import jalview.schemes.ColourSchemeI;
-import jalview.schemes.ColourSchemeProperty;
-import jalview.util.ColorUtils;
-
import java.awt.Color;
import java.io.BufferedReader;
import java.io.FileReader;
import java.util.ArrayList;
import java.util.BitSet;
import java.util.Enumeration;
+import java.util.HashMap;
import java.util.Hashtable;
import java.util.List;
import java.util.Map;
import java.util.StringTokenizer;
import java.util.Vector;
+import jalview.analysis.Conservation;
+import jalview.api.AlignViewportI;
+import jalview.datamodel.AlignmentAnnotation;
+import jalview.datamodel.AlignmentI;
+import jalview.datamodel.Annotation;
+import jalview.datamodel.ColumnSelection;
+import jalview.datamodel.GraphLine;
+import jalview.datamodel.HiddenColumns;
+import jalview.datamodel.HiddenSequences;
+import jalview.datamodel.SequenceGroup;
+import jalview.datamodel.SequenceI;
+import jalview.schemes.ColourSchemeI;
+import jalview.schemes.ColourSchemeProperty;
+import jalview.util.ColorUtils;
+
public class AnnotationFile
{
public AnnotationFile()
if (row.graphGroup > -1)
{
graphGroupSeen.set(row.graphGroup);
- Integer key = new Integer(row.graphGroup);
+ Integer key = Integer.valueOf(row.graphGroup);
if (graphGroup.containsKey(key))
{
graphGroup.put(key, graphGroup.get(key) + "\t" + row.label);
autoAnnotsKey(aa[aai], aa[aai].sequenceRef,
(aa[aai].groupRef == null ? null
: aa[aai].groupRef.getName())),
- new Integer(1));
+ Integer.valueOf(1));
}
}
}
{
displayChar = token;
// foo
- value = new Float(token).floatValue();
+ value = Float.valueOf(token).floatValue();
parsedValue = true;
continue;
} catch (NumberFormatException ex)
}
String name = st.nextToken();
- SequenceGroup sg = null;
- for (SequenceGroup _sg : al.getGroups())
+
+ Map<String, String> properties = new HashMap<>();
+ while (st.hasMoreTokens())
{
- if ((sg = _sg).getName().equals(name))
- {
- break;
- }
- else
+ String keyValue = st.nextToken();
+ String key = keyValue.substring(0, keyValue.indexOf("="));
+ String value = keyValue.substring(keyValue.indexOf("=") + 1);
+ properties.put(key, value);
+ }
+
+ for (SequenceGroup sg : al.getGroups())
+ {
+ if (sg.getName().equals(name))
{
- sg = null;
+ addProperties(sg, properties, al);
}
}
+ }
- if (sg != null)
+ /**
+ * Helper method that applies any specified properties to a SequenceGroup
+ * @param sg
+ * @param properties
+ * @param al
+ */
+ private void addProperties(SequenceGroup sg, Map<String, String> properties, AlignmentI al)
+ {
+ ColourSchemeI def = sg.getColourScheme();
+ for (String key : properties.keySet())
{
- String keyValue, key, value;
- ColourSchemeI def = sg.getColourScheme();
- while (st.hasMoreTokens())
+ String value = properties.get(key);
+ if (key.equalsIgnoreCase("description"))
{
- keyValue = st.nextToken();
- key = keyValue.substring(0, keyValue.indexOf("="));
- value = keyValue.substring(keyValue.indexOf("=") + 1);
-
- if (key.equalsIgnoreCase("description"))
- {
- sg.setDescription(value);
- }
- else if (key.equalsIgnoreCase("colour"))
- {
- // TODO need to notify colourscheme of view reference once it is
- // available
- sg.cs.setColourScheme(
- ColourSchemeProperty.getColourScheme(null, al, value));
- }
- else if (key.equalsIgnoreCase("pidThreshold"))
- {
- sg.cs.setThreshold(Integer.parseInt(value), true);
+ sg.setDescription(value);
+ }
+ else if (key.equalsIgnoreCase("colour"))
+ {
+ // TODO need to notify colourscheme of view reference once it is
+ // available
+ sg.cs.setColourScheme(
+ ColourSchemeProperty.getColourScheme(null, al, value));
+ }
+ else if (key.equalsIgnoreCase("pidThreshold"))
+ {
+ sg.cs.setThreshold(Integer.parseInt(value), true);
- }
- else if (key.equalsIgnoreCase("consThreshold"))
- {
- sg.cs.setConservationInc(Integer.parseInt(value));
- Conservation c = new Conservation("Group", sg.getSequences(null),
- sg.getStartRes(), sg.getEndRes() + 1);
+ }
+ else if (key.equalsIgnoreCase("consThreshold"))
+ {
+ sg.cs.setConservationInc(Integer.parseInt(value));
+ Conservation c = new Conservation("Group", sg.getSequences(null),
+ sg.getStartRes(), sg.getEndRes() + 1);
- c.calculate();
- c.verdict(false, 25); // TODO: refer to conservation percent threshold
+ c.calculate();
+ c.verdict(false, 25); // TODO: refer to conservation percent threshold
- sg.cs.setConservation(c);
+ sg.cs.setConservation(c);
- }
- else if (key.equalsIgnoreCase("outlineColour"))
- {
- sg.setOutlineColour(ColorUtils.parseColourString(value));
- }
- else if (key.equalsIgnoreCase("displayBoxes"))
- {
- sg.setDisplayBoxes(Boolean.valueOf(value).booleanValue());
- }
- else if (key.equalsIgnoreCase("showUnconserved"))
- {
- sg.setShowNonconserved(Boolean.valueOf(value).booleanValue());
- }
- else if (key.equalsIgnoreCase("displayText"))
- {
- sg.setDisplayText(Boolean.valueOf(value).booleanValue());
- }
- else if (key.equalsIgnoreCase("colourText"))
- {
- sg.setColourText(Boolean.valueOf(value).booleanValue());
- }
- else if (key.equalsIgnoreCase("textCol1"))
- {
- sg.textColour = ColorUtils.parseColourString(value);
- }
- else if (key.equalsIgnoreCase("textCol2"))
- {
- sg.textColour2 = ColorUtils.parseColourString(value);
- }
- else if (key.equalsIgnoreCase("textColThreshold"))
- {
- sg.thresholdTextColour = Integer.parseInt(value);
- }
- else if (key.equalsIgnoreCase("idColour"))
- {
- Color idColour = ColorUtils.parseColourString(value);
- sg.setIdColour(idColour == null ? Color.black : idColour);
- }
- else if (key.equalsIgnoreCase("hide"))
- {
- // see bug https://mantis.lifesci.dundee.ac.uk/view.php?id=25847
- sg.setHidereps(true);
- }
- else if (key.equalsIgnoreCase("hidecols"))
- {
- // see bug https://mantis.lifesci.dundee.ac.uk/view.php?id=25847
- sg.setHideCols(true);
- }
- sg.recalcConservation();
}
- if (sg.getColourScheme() == null)
+ else if (key.equalsIgnoreCase("outlineColour"))
+ {
+ sg.setOutlineColour(ColorUtils.parseColourString(value));
+ }
+ else if (key.equalsIgnoreCase("displayBoxes"))
{
- sg.setColourScheme(def);
+ sg.setDisplayBoxes(Boolean.valueOf(value).booleanValue());
}
+ else if (key.equalsIgnoreCase("showUnconserved"))
+ {
+ sg.setShowNonconserved(Boolean.valueOf(value).booleanValue());
+ }
+ else if (key.equalsIgnoreCase("displayText"))
+ {
+ sg.setDisplayText(Boolean.valueOf(value).booleanValue());
+ }
+ else if (key.equalsIgnoreCase("colourText"))
+ {
+ sg.setColourText(Boolean.valueOf(value).booleanValue());
+ }
+ else if (key.equalsIgnoreCase("textCol1"))
+ {
+ sg.textColour = ColorUtils.parseColourString(value);
+ }
+ else if (key.equalsIgnoreCase("textCol2"))
+ {
+ sg.textColour2 = ColorUtils.parseColourString(value);
+ }
+ else if (key.equalsIgnoreCase("textColThreshold"))
+ {
+ sg.thresholdTextColour = Integer.parseInt(value);
+ }
+ else if (key.equalsIgnoreCase("idColour"))
+ {
+ Color idColour = ColorUtils.parseColourString(value);
+ sg.setIdColour(idColour == null ? Color.black : idColour);
+ }
+ else if (key.equalsIgnoreCase("hide"))
+ {
+ // see bug https://mantis.lifesci.dundee.ac.uk/view.php?id=25847
+ sg.setHidereps(true);
+ }
+ else if (key.equalsIgnoreCase("hidecols"))
+ {
+ // see bug https://mantis.lifesci.dundee.ac.uk/view.php?id=25847
+ sg.setHideCols(true);
+ }
+ sg.recalcConservation();
+ }
+
+ if (sg.getColourScheme() == null)
+ {
+ sg.setColourScheme(def);
}
}