X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2FMCview%2FAppletPDBCanvas.java;h=107d98d39bc5e0164b8aae03c1f043ead8c0053d;hb=a4d934a390625eaa414656a6dc356acd7236e7b0;hp=d91d43ef33487e6eb23c7e9e36d14f02c90004dd;hpb=dfb45c8f874124d3ff3caac2902ed0c4a0e87cf5;p=jalview.git diff --git a/src/MCview/AppletPDBCanvas.java b/src/MCview/AppletPDBCanvas.java index d91d43e..107d98d 100755 --- a/src/MCview/AppletPDBCanvas.java +++ b/src/MCview/AppletPDBCanvas.java @@ -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); @@ -479,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); @@ -498,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); } } @@ -509,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); } @@ -716,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); }