package jalview.datamodel; import jalview.schemes.*; import jalview.analysis.*; import jalview.datamodel.*; import java.util.Vector; import java.awt.*; public class SequenceGroup { String groupName; Conservation conserve; Vector aaFrequency; boolean displayBoxes; boolean displayText; boolean colourText; boolean aaFrequencyValid = false; public Vector sequences = new Vector(); int width = -1; public ColourSchemeI cs; int startRes = 0; int endRes = 0; Color outlineColour = Color.black; public SequenceGroup() { groupName = "Group"; this.displayBoxes = true; this.displayText = true; this.colourText = false; cs = null; } public SequenceGroup(String groupName, ColourSchemeI scheme, boolean displayBoxes, boolean displayText, boolean colourText, int start, int end) { this.groupName = groupName; this.displayBoxes = displayBoxes; this.displayText = displayText; this.colourText = colourText; this.cs = scheme; startRes = start; endRes = end; } public String getName() { return groupName; } public void setName(String name) { groupName = name; } public Conservation getConservation() { return conserve; } public void setConservation(Conservation c) { conserve = c; } public void addSequence(SequenceI s) { if(!sequences.contains(s)) sequences.addElement(s); } public void addOrRemove(SequenceI s) { if(sequences.contains(s)) deleteSequence(s); else addSequence(s); } public void deleteSequence(SequenceI s) { sequences.removeElement(s); } public int getStartRes() { return startRes; } public int getEndRes() { return endRes; } public void setStartRes(int i) { startRes = i; } public void setEndRes(int i) { endRes = i; } public int getSize() { return sequences.size(); } public SequenceI getSequenceAt(int i) { return (SequenceI) sequences.elementAt(i); } public void setColourText(boolean state) { colourText = state; } public boolean getColourText() { return colourText; } public void setDisplayText(boolean state) { displayText = state; } public boolean getDisplayText() { return displayText; } public void setDisplayBoxes(boolean state) { displayBoxes = state; } public boolean getDisplayBoxes() { return displayBoxes; } public Vector getAAFrequency() { if (aaFrequency == null || aaFrequencyValid == false) { aaFrequency = AAFrequency.calculate(sequences, 0, getWidth()); aaFrequencyValid = true; } return aaFrequency; } public int getWidth() { System.out.println("it is called"); // MC This needs to get reset when characters are inserted and deleted for (int i = 0; i < sequences.size(); i++) { SequenceI seq = (SequenceI) sequences.elementAt(i); if (seq.getLength() > width) width = seq.getLength(); } return width; } public void setOutlineColour(Color c) { outlineColour = c; } public Color getOutlineColour() { return outlineColour; } }