X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fdatamodel%2FSequenceGroup.java;h=0cf954b44d127b98edebac6c0dc5a6ad342e0972;hb=c1fad33365988bdf8e335982df0c3ff84dd0bb8b;hp=de746ba38a999c133c28352bb86a7635a85335bf;hpb=1ecf6419aba86993b3c223bf5ec0fa79427baf85;p=jalview.git diff --git a/src/jalview/datamodel/SequenceGroup.java b/src/jalview/datamodel/SequenceGroup.java index de746ba..0cf954b 100755 --- a/src/jalview/datamodel/SequenceGroup.java +++ b/src/jalview/datamodel/SequenceGroup.java @@ -1,107 +1,219 @@ package jalview.datamodel; -import jalview.jbgui.*; import jalview.schemes.*; import jalview.analysis.*; import jalview.datamodel.*; - import java.util.Vector; import java.awt.*; -public class SequenceGroup { - boolean isSelected; - boolean displayBoxes; - boolean displayText; - boolean colourText; - boolean display; - Conservation conserve; - Vector aaFrequency; - boolean aaFrequencyValid = false; - Vector sequences = new Vector(); - int width = -1; - - - public SequenceGroup() { - this.isSelected = false; +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; - this.display = true; + cs = null; } - public SequenceGroup( ColourSchemeI scheme, boolean isSelected, - boolean displayBoxes, boolean displayText, - boolean colourText, - boolean display) { + public SequenceGroup(String groupName, ColourSchemeI scheme, + boolean displayBoxes, boolean displayText, + boolean colourText, + int start, + int end) + { - this.isSelected = isSelected; + this.groupName = groupName; this.displayBoxes = displayBoxes; this.displayText = displayText; this.colourText = colourText; - this.display = display; + this.cs = scheme; + startRes = start; + endRes = end; + } + + public boolean adjustForRemoveLeft(int col) + { + // return value is true if the group still exists + if(startRes>=col) + startRes = startRes - col; + if(endRes>=col) + { + endRes = endRes - col; + if(startRes>endRes) + startRes = 0; + } + else + { + // must delete this group!! + return false; + } + + return true; } - public Conservation getConservation() { - return conserve; + public boolean adjustForRemoveRight(int col) + { + + if(startRes>col) + { + // delete this group + return false; + } + + if(endRes>=col) + endRes = col; + + + return true; } - public void addSequence(SequenceI s) { - sequences.addElement(s); + + + 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) { + public void deleteSequence(SequenceI s) + { sequences.removeElement(s); } - public void setColourText(boolean state) { + + 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() { + + public boolean getColourText() + { return colourText; } - public void setDisplayText(boolean state) { + public void setDisplayText(boolean state) + { displayText = state; } - public boolean getDisplayText() { + public boolean getDisplayText() + { return displayText; } - public void setDisplayBoxes(boolean state) { + public void setDisplayBoxes(boolean state) + { displayBoxes = state; } - public boolean getDisplayBoxes() { + public boolean getDisplayBoxes() + { return displayBoxes; } - public int getSize() { - return sequences.size(); - } - public SequenceI getSequenceAt(int i) { - return (SequenceI)sequences.elementAt(i); + public Vector getAAFrequency() + { + if (aaFrequency == null || aaFrequencyValid == false) + { + aaFrequency = AAFrequency.calculate(sequences, 0, getWidth()); + aaFrequencyValid = true; } + return aaFrequency; + } - public Vector getAAFrequency() { - if (aaFrequency == null || aaFrequencyValid == false) { - aaFrequency = AAFrequency.calculate(sequences,1,getWidth()); - aaFrequencyValid = true; - } - return aaFrequency; - } - public int getWidth() { - // MC This needs to get reset when characters are inserted and deleted - if (width == -1) { - for (int i = 0; i < sequences.size(); i++) { - SequenceI seq = (SequenceI)sequences.elementAt(i); - if (seq.getLength() > width) { - width = seq.getLength(); - } - } - } - - return width; + 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; + } +}