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;
}
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.setColourScheme(def);
+ 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)
+ {
+ sg.setColourScheme(def);
}
}