From 92fba5062ad24d8bb5a8167b775d44e67f375012 Mon Sep 17 00:00:00 2001 From: amwaterhouse Date: Wed, 1 Dec 2004 17:06:42 +0000 Subject: [PATCH] Find routine added --- src/jalview/gui/SeqCanvas.java | 75 +++++++++++++++++++++++++++------------- 1 file changed, 51 insertions(+), 24 deletions(-) diff --git a/src/jalview/gui/SeqCanvas.java b/src/jalview/gui/SeqCanvas.java index 4e287b1..8785454 100755 --- a/src/jalview/gui/SeqCanvas.java +++ b/src/jalview/gui/SeqCanvas.java @@ -21,19 +21,16 @@ public class SeqCanvas extends JPanel int oldstarty; int oldendx; int oldendy; - public boolean paintFlag = false; + boolean showScores = false; + boolean displaySearch = false; + int [] searchResults = null; int chunkHeight; int chunkWidth; - Graphics debugG; - // FeatureRenderer fr = new FeatureRenderer(); - // BlockRenderer br = new BlockRenderer(); - // CpGRenderer cgr = new CpGRenderer(); - - ColourSchemeI cs = new ZappoColourScheme(); + ColourSchemeI cs = new ZappoColourScheme(); public SeqCanvas(AlignViewport av) { @@ -65,14 +62,14 @@ public class SeqCanvas extends JPanel */ public void paintComponent(Graphics g) { - debugG = g; AlignmentI da = av.getAlignment(); if (img == null || imgWidth != getWidth() || - imgHeight != getHeight() || - paintFlag == true) { + imgHeight != getHeight() + || paintFlag) + { imgWidth = (getWidth() > 0 ? getWidth() : 1); imgHeight = (getHeight() > 0 ? getHeight() : 1); @@ -80,18 +77,13 @@ public class SeqCanvas extends JPanel img = createImage(imgWidth,imgHeight); gg = img.getGraphics(); - // SMJS I added this in to update the AV when the size changes - // until I figure out how this should be done - setFont(av.getFont()); - gg.setFont(av.getFont()); - paintFlag = false; - oldstartx = -1; oldendx = -1; oldstarty = -1; oldendy = -1; + paintFlag = false; } int startx = av.getStartRes(); @@ -267,9 +259,9 @@ public class SeqCanvas extends JPanel } - gg.setColor(Color.red); - gg.drawRect( groupX, groupY, groupendX-groupX, groupendY-groupY ); - gg.drawRect( groupX+1, groupY+1, groupendX-groupX-2, groupendY-groupY-2 ); + // gg.setColor(Color.red); + // gg.drawRect( groupX, groupY, groupendX-groupX, groupendY-groupY ); + // gg.drawRect( groupX+1, groupY+1, groupendX-groupX-2, groupendY-groupY-2 ); g.drawImage(img,0,0,this); @@ -327,7 +319,6 @@ public class SeqCanvas extends JPanel SequenceGroup group; for (int i = y1 ; i < y2 ;i++) { - RendererI r = sr; /* if (av.getSelection().contains(av.getAlignment().getSequenceAt(i))) { r = fr; System.out.println("use feature renderer"); @@ -342,7 +333,7 @@ public class SeqCanvas extends JPanel group = av.alignment.findGroup( nextSeq ); if( group!=null ) { - r.drawSequence(g, group.cs, nextSeq, + sr.drawSequence(g, group.cs, nextSeq, x1, x2, (int) ( (x1 - startx) * charWidth), @@ -353,7 +344,7 @@ public class SeqCanvas extends JPanel } else { - r.drawSequence(g, cs, nextSeq, + sr.drawSequence(g, cs, nextSeq, x1, x2, (int) ( (x1 - startx) * charWidth), @@ -367,11 +358,37 @@ public class SeqCanvas extends JPanel } - } - public int groupX, groupY, groupendX, groupendY; + if(displaySearch) + { + for(int r=0; r= y1 && searchSeq <= y2) + { + SequenceRenderer ssr = (SequenceRenderer) sr; + ssr.drawHighlightedText(g, av.getAlignment().getSequenceAt(searchSeq), + searchStart, + searchEnd, + (int) ( (searchStart - startx) * charWidth), + offset + + AlignmentUtil.getPixelHeight(starty, searchSeq, + charHeight), + (int) charWidth, + charHeight); + + } + } + } + } + + // public int groupX, groupY, groupendX, groupendY; + public void fillBackground(Graphics g,Color c, int x1,int y1,int width,int height) { g.setColor(c); g.fillRect(x1,y1,width,height); @@ -381,4 +398,14 @@ public class SeqCanvas extends JPanel return chunkWidth; } + public void highlightSearchResults(int [] results) + { + // results are in the order sequence, startRes, endRes + searchResults = results; + displaySearch = true; + paintFlag = true; + repaint(); + } + + } -- 1.7.10.2