X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fdatamodel%2FSequenceGroup.java;h=76a350f9a757c4c9af615592420b5f7b0fd78c74;hb=1d6bdfa4ce1d88c055a257e542de6b8542144d91;hp=6de42b9d23e704384ecc0af78a279b1bab9765a7;hpb=95a46891288f4fc63d690cab4f56879678f54fb6;p=jalview.git diff --git a/src/jalview/datamodel/SequenceGroup.java b/src/jalview/datamodel/SequenceGroup.java index 6de42b9..76a350f 100755 --- a/src/jalview/datamodel/SequenceGroup.java +++ b/src/jalview/datamodel/SequenceGroup.java @@ -1,6 +1,6 @@ /* * Jalview - A Sequence Alignment Editor and Viewer - * Copyright (C) 2005 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle + * Copyright (C) 2006 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -41,9 +41,7 @@ public class SequenceGroup boolean displayBoxes; boolean displayText; boolean colourText; - - /** DOCUMENT ME!! */ - public Vector sequences = new Vector(); + private Vector sequences = new Vector(); int width = -1; /** DOCUMENT ME!! */ @@ -51,6 +49,10 @@ public class SequenceGroup int startRes = 0; int endRes = 0; Color outlineColour = Color.black; + public int thresholdTextColour = 0; + public Color textColour = Color.black; + public Color textColour2 = Color.white; + /** * Creates a new SequenceGroup object. @@ -115,6 +117,108 @@ public class SequenceGroup endRes = end; } + public SequenceI [] getSelectionAsNewSequences(AlignmentI align) + { + int iSize = sequences.size(); + SequenceI [] seqs = new SequenceI[iSize]; + SequenceI [] inorder = getSequencesInOrder(align); + + + for (int i = 0; i < iSize; i++) + { + SequenceI seq = inorder[i]; + + seqs[i] = new Sequence(seq.getName(), + seq.getSequence(startRes, endRes + 1), + seq.findPosition(startRes), + findEndRes(seq)); + + seqs[i].setDescription(seq.getDescription()); + seqs[i].setDBRef(seq.getDBRef()); + seqs[i].setSequenceFeatures(seq.getSequenceFeatures()); + if (seq.getDatasetSequence() != null) + seqs[i].setDatasetSequence(seq.getDatasetSequence()); + + if(seq.getAnnotation()!=null) + { + for(int a=0; a 0) + { + eres += seq.getStart() - 1; + } + + return eres; + } + + public Vector getSequences(Hashtable hiddenReps) + { + if(hiddenReps == null) + return sequences; + else + { + Vector allSequences = new Vector(); + SequenceI seq, seq2; + for (int i = 0; i < sequences.size(); i++) + { + seq = (SequenceI) sequences.elementAt(i); + allSequences.addElement(seq); + if (hiddenReps.containsKey(seq) ) + { + SequenceGroup hsg = (SequenceGroup)hiddenReps.get(seq); + for (int h = 0; h < hsg.getSize(); h++) + { + seq2 = hsg.getSequenceAt(h); + if (seq2 != seq + && !allSequences.contains(seq2)) + allSequences.addElement(seq2); + } + } + } + + return allSequences; + } + } + + public SequenceI[] getSequencesAsArray(Hashtable hiddenReps) + { + Vector tmp = getSequences(hiddenReps); + if(tmp==null) + return null; + SequenceI [] result = new SequenceI[tmp.size()]; + for(int i=0; i