X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FSeqCanvas.java;h=42424d9dc8a4a30b95cd7f93905ec5d9e0385ec5;hb=32ce9ddb7ce1a68add53dd81785ae428ca136a83;hp=42c52d3c4e7404977607db821d3539b677b95214;hpb=f24dacb1da56fccf05d684e2f4899facec2aecf7;p=jalview.git diff --git a/src/jalview/gui/SeqCanvas.java b/src/jalview/gui/SeqCanvas.java index 42c52d3..42424d9 100755 --- a/src/jalview/gui/SeqCanvas.java +++ b/src/jalview/gui/SeqCanvas.java @@ -24,6 +24,7 @@ import java.awt.*; import java.awt.image.*; import javax.swing.*; +import jalview.schemes.*; /** @@ -47,8 +48,6 @@ public class SeqCanvas extends JComponent int LABEL_WEST; int LABEL_EAST; - boolean isOverview = false; - /** * Creates a new SeqCanvas object. * @@ -64,6 +63,28 @@ public class SeqCanvas extends JComponent setBackground(Color.white); } + MCview.PDBCanvas pdbCanvas; + public SequenceRenderer getSequenceRenderer() + { + return sr; + } + + public FeatureRenderer getFeatureRenderer() + { + return fr; + } + + public void setPDBCanvas(MCview.PDBCanvas pc) + { + pdbCanvas = pc; + } + + public AlignViewport getViewport() + { + return av; + } + + /** * DOCUMENT ME! * @@ -258,18 +279,20 @@ public class SeqCanvas extends JComponent // Set this to false to force a full panel paint public void paintComponent(Graphics g) { + super.paintComponent(g); + sr.renderGaps(av.renderGaps); - if ((img != null) && - (fastPaint || (getWidth() != g.getClipBounds().width) || - (getHeight() != g.getClipBounds().height))) + if ( img != null && (fastPaint + || (getVisibleRect().width != g.getClipBounds().width) + || (getVisibleRect().height != g.getClipBounds().height))) { g.drawImage(img, 0, 0, this); fastPaint = false; - return; } + // this draws the whole of the alignment imgWidth = getWidth(); imgHeight = getHeight(); @@ -282,7 +305,6 @@ public class SeqCanvas extends JComponent return; } - img = new BufferedImage(imgWidth, imgHeight, BufferedImage.TYPE_INT_RGB); gg = (Graphics2D) img.getGraphics(); gg.setFont(av.getFont()); @@ -304,6 +326,12 @@ public class SeqCanvas extends JComponent } g.drawImage(img, 0, 0, this); + + if (pdbCanvas != null) + { + pdbCanvas.updateSeqColours(); + } + } /** @@ -510,32 +538,36 @@ public class SeqCanvas extends JComponent repaint(); } + synchronized public void drawPanel(Graphics g1, int x1, int x2, int y1, int y2, int startx, int starty, int offset) { - Graphics2D g = (Graphics2D) g1; - g.setFont(av.getFont()); - - - SequenceI nextSeq; - - SequenceI dna = null; + Graphics2D g = (Graphics2D) g1; + g.setFont(av.getFont()); - int aaHeight = (int)(av.getCharHeight()*aaRatio); - int dnaHeight =(int)(av.getCharHeight() * (1-aaRatio)); + SequenceI nextSeq, dna = null; + int aaHeight = av.charHeight, dnaHeight = av.charHeight; + Font dnafont = null, aafont = av.getFont(); + /* if (av.getShowTranslation()) + { + aaHeight = (int) (av.getCharHeight() * aaRatio); + dnaHeight = (int) (av.getCharHeight() * (1 - aaRatio)); + java.awt.geom.AffineTransform transform = new java.awt.geom.AffineTransform(); + transform.scale(1f / 3f, 1); + dnafont = new Font(av.getFont().getName(), av.getFont().getStyle(), + dnaHeight); + dnafont = dnafont.deriveFont(transform); + + aafont = new Font(av.getFont().getName(), av.getFont().getStyle(), + aaHeight); + transform = new java.awt.geom.AffineTransform(); + transform.scale(1 / aaRatio, 1); + aafont = aafont.deriveFont(transform); + } +*/ - java.awt.geom.AffineTransform transform = new java.awt.geom.AffineTransform(); - transform.scale(1f/3f , 1); - Font dnafont = new Font(av.getFont().getName(), av.getFont().getStyle(), - dnaHeight); - dnafont = dnafont.deriveFont(transform); - - Font aafont = new Font(av.getFont().getName(), av.getFont().getStyle(), - aaHeight); - transform = new java.awt.geom.AffineTransform(); - transform.scale(1/aaRatio, 1); - aafont = aafont.deriveFont(transform); + ColourSchemeI cs = av.getGlobalColourScheme(); /// First draw the sequences ///////////////////////////// @@ -543,36 +575,46 @@ public class SeqCanvas extends JComponent { nextSeq = av.alignment.getSequenceAt(i); g.setFont(aafont); -/* - StringBuffer dnasb = new StringBuffer(); - for (int j = 0; j < nextSeq.getLength(); j++) + /* if(av.getShowTranslation()) { - java.util.Vector codons = jalview.schemes.ResidueProperties.getCodons(nextSeq.getSequence(j, - j + 1)); - if (codons != null && codons.size() > 0) - dnasb.append(codons.elementAt(0).toString()); - } - - dna = new Sequence("dna", dnasb.toString());*/ - + dna = nextSeq; + StringBuffer sb = new StringBuffer(); + for(int r = 0; r 0)) + if ((group == null) && (av.alignment.getGroups().size() > 0)) { - group = (SequenceGroup) groups.elementAt(0); + group = (SequenceGroup) av.alignment.getGroups().elementAt(0); groupIndex = 0; } - - if (group != null && !isOverview) + if (group != null) { do { @@ -734,14 +774,14 @@ public class SeqCanvas extends JComponent groupIndex++; - if (groupIndex >= groups.size()) + if (groupIndex >= av.alignment.getGroups().size()) { break; } - group = (SequenceGroup) groups.elementAt(groupIndex); + group = (SequenceGroup) av.alignment.getGroups().elementAt(groupIndex); } - while (groupIndex < groups.size()); + while (groupIndex < av.alignment.getGroups().size()); } /// Highlight search Results once all sequences have been drawn