From 1db5f61912957e4b380e5d321074421d21e20aa8 Mon Sep 17 00:00:00 2001 From: amwaterhouse Date: Wed, 1 Dec 2004 17:06:15 +0000 Subject: [PATCH] Char to string comparison --- src/jalview/gui/SeqPanel.java | 46 ++++++++++++++++++++++------------------- 1 file changed, 25 insertions(+), 21 deletions(-) diff --git a/src/jalview/gui/SeqPanel.java b/src/jalview/gui/SeqPanel.java index 3df1dac..1714a31 100755 --- a/src/jalview/gui/SeqPanel.java +++ b/src/jalview/gui/SeqPanel.java @@ -24,6 +24,9 @@ public class SeqPanel extends JPanel public boolean editFlag; protected AlignViewport av; + // if character is inserted or deleted, we will need to recalculate the conservation + int seqEditOccurred = -1; + public SeqPanel(AlignViewport av, AlignmentPanel p) { this.av = av; @@ -56,15 +59,19 @@ public class SeqPanel extends JPanel public void doMouseReleased(MouseEvent evt) { int x = evt.getX(); - int res = (int)(x/av.getCharWidth()) + av.getStartRes(); + int res = (int)(x/av.getCharWidth()) + av.getStartRes(); - endres = res; + endres = res; // This is to detect edits - we're at the end of an edit if mouse is up - editFlag = false; - startseq = -1; - startres = -1; - lastres = -1; + editFlag = false; + startseq = -1; + startres = -1; + lastres = -1; + if(seqEditOccurred>-1) + updateConservation(seqEditOccurred); + + seqEditOccurred = -1; parent.RefreshPanels(); repaint(); @@ -177,8 +184,8 @@ public class SeqPanel extends JPanel { if (!flag) { - if (!s.getSequence().substring(j,j+1).equals(av.getAlignment().getGapCharacter()) && - !s.getSequence().substring(j,j+1).equals(" ")) + if (s.getSequence().charAt(j)!=av.getAlignment().getGapCharacter() && + s.getSequence().charAt(j)==' ') { res = j+1; flag = true; @@ -266,28 +273,28 @@ public class SeqPanel extends JPanel public void insertChar(int j, int seq) { - av.getAlignment().getSequenceAt(seq).insertCharAt(j, av.getGapCharacter().charAt(0)); - updateConservation(seq); + av.getAlignment().getSequenceAt(seq).insertCharAt(j, av.getGapCharacter()); + seqEditOccurred=seq; } - public void deleteChar(int j, int res, int sno) + public void deleteChar(int j, int res, int seq) { - if (av.getAlignment().getSequenceAt(sno).getSequence().substring(j,j+1).equals(".") || - av.getAlignment().getSequenceAt(sno).getSequence().substring(j,j+1).equals("-") || - av.getAlignment().getSequenceAt(sno).getSequence().substring(j,j+1).equals(" ") ) + if (av.getAlignment().getSequenceAt(seq).getSequence().charAt(j)=='.' || + av.getAlignment().getSequenceAt(seq).getSequence().charAt(j)=='-' || + av.getAlignment().getSequenceAt(seq).getSequence().charAt(j)==' ' ) { - av.getAlignment().getSequenceAt(sno).deleteCharAt(j); + av.getAlignment().getSequenceAt(seq).deleteCharAt(j); } - updateConservation(sno); + av.getAlignment().getWidth(); repaint(); + seqEditOccurred=seq; } void updateConservation(int i) { - Alignment al = (Alignment) av.getAlignment(); SequenceGroup sg = av.alignment.findGroup( al.getSequenceAt(i)); if(sg==null || !(sg.cs instanceof ConservationColourScheme)) @@ -308,6 +315,7 @@ public class SeqPanel extends JPanel public void setColourScheme(ColourSchemeI cs, boolean showConservation) { + seqCanvas.paintFlag = true; if (av.getSelection().size() == 0) { seqCanvas.cs = cs; @@ -378,11 +386,7 @@ public class SeqPanel extends JPanel ConservationColourScheme ccs = (ConservationColourScheme)sg.cs; sg.cs = ccs.cs; } - - - } - seqCanvas.paintFlag = true; repaint(); } -- 1.7.10.2