X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2FMCview%2FAppletPDBCanvas.java;h=220d5f3f1935a847803d320cf43e0d4d0ed8572b;hb=0fc704a18faa7d11b6d02876bb6c1e8bc19f343c;hp=f39a3fa595a6ea0b8026e3598bc755247982088f;hpb=debef3a6e9343fe76c2570bc8c2ff81ef04acfa7;p=jalview.git diff --git a/src/MCview/AppletPDBCanvas.java b/src/MCview/AppletPDBCanvas.java index f39a3fa..220d5f3 100755 --- a/src/MCview/AppletPDBCanvas.java +++ b/src/MCview/AppletPDBCanvas.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 @@ -77,6 +77,7 @@ public class AppletPDBCanvas extends Panel implements MouseListener, MouseMotion Bond highlightBond1, highlightBond2; boolean errorLoading = false; boolean seqColoursReady = false; + jalview.appletgui.FeatureRenderer fr; public AppletPDBCanvas(jalview.appletgui.SeqCanvas seqcanvas, Sequence seq) { @@ -118,7 +119,7 @@ public class AppletPDBCanvas extends Panel implements MouseListener, MouseMotion ((PDBChain) pdb.chains.elementAt(i)).sequence, "pep"); as.calcScoreMatrix(); as.traceAlignment(); - PrintStream ps = new PrintStream(System.out) + PrintStream ps = new PrintStream(System.out) { public void print(String x) { mappingDetails.append(x); @@ -418,7 +419,13 @@ public class AppletPDBCanvas extends Panel implements MouseListener, MouseMotion drawLabels(ig); } - + void setColours(jalview.schemes.ColourSchemeI cs) + { + bysequence = false; + pdb.setColours(cs); + redrawneeded = true; + repaint(); + } public void updateSeqColours() { if (pdbAction) @@ -473,6 +480,18 @@ public class AppletPDBCanvas extends Panel implements MouseListener, MouseMotion // Applet and Application specific sequence renderers to be used void colourBySequence(PDBChain chain) { + boolean showFeatures = false; + + if(seqcanvas.getViewport().getShowSequenceFeatures()) + { + if(fr==null) + { + fr = new jalview.appletgui.FeatureRenderer(seqcanvas.getViewport()); + } + fr.transferSettings( seqcanvas.getFeatureRenderer()); + showFeatures = true; + } + for (int i = 0; i < chain.bonds.size(); i++) { Bond tmp = (Bond) chain.bonds.elementAt(i); @@ -492,8 +511,8 @@ public class AppletPDBCanvas extends Panel implements MouseListener, MouseMotion tmp.startCol = seqcanvas.getSequenceRenderer(). getResidueBoxColour( sequence, index); - // tmp.startCol = seqcanvas.getFeatureRenderer(). - // findFeatureColour(tmp.startCol, sequence, index); + if(showFeatures) + tmp.startCol = fr.findFeatureColour(tmp.startCol, sequence, index); } } @@ -503,18 +522,23 @@ public class AppletPDBCanvas extends Panel implements MouseListener, MouseMotion { tmp.endCol = seqcanvas.getSequenceRenderer(). getResidueBoxColour( sequence, index); - // tmp.endCol = seqcanvas.getFeatureRenderer(). - // findFeatureColour(tmp.endCol, sequence, index); + + if(showFeatures) + tmp.endCol = fr.findFeatureColour(tmp.endCol, sequence, index); } } } + Zsort zsort; public void drawScene(Graphics g) { + if (zbuffer) + { + if(zsort ==null) + zsort = new Zsort(); - if (zbuffer) { - Zsort.Zsort(visiblebonds); + zsort.Zsort(visiblebonds); } @@ -710,35 +734,24 @@ public class AppletPDBCanvas extends Panel implements MouseListener, MouseMotion void highlightSeqcanvas(int pos) { - int index = seqcanvas.getViewport().getAlignment().findIndex(sequence); - - int size = pos==-1?0:3; - - if(highlightRes!=null) - size += highlightRes.size()*3; - - int [] array = new int[size]; - int i=0; + SearchResults searchResults = new SearchResults(); if(highlightRes!=null) { - for (i = 0; i < highlightRes.size(); i++) + for (int i = 0; i < highlightRes.size(); i++) { int a = Integer.parseInt(highlightRes.elementAt( i).toString())+1; - array[i * 3] = index; - array[ (i * 3) + 1] = a; - array[ (i * 3) + 2] = a; + + searchResults.addResult(sequence, a, a); } } if(pos!=-1) { - array[i * 3] = index; - array[i * 3 + 1] = pos+1; - array[i * 3 + 2] = pos+1; + searchResults.addResult(sequence, pos+1, pos+1); } - seqcanvas.highlightSearchResults(array); + seqcanvas.highlightSearchResults(searchResults); }