X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2FMCview%2FAppletPDBCanvas.java;h=107d98d39bc5e0164b8aae03c1f043ead8c0053d;hb=05cc1e453976137138e0d24ba0264b8e5f35b628;hp=346ae1e2fa1ba6cab0e4edab42ea40e308b750fb;hpb=b76229ec7f87020dfb2c26b11d910899f8b2c97d;p=jalview.git diff --git a/src/MCview/AppletPDBCanvas.java b/src/MCview/AppletPDBCanvas.java index 346ae1e..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); @@ -363,7 +364,8 @@ public class AppletPDBCanvas extends Panel implements MouseListener, MouseMotion g.drawString("Error loading PDB data!!", 50, getSize().height/2); return; } - else if( !seqColoursReady ) + + if( !seqColoursReady ) { g.setColor(Color.black); g.setFont(new Font("Verdana", Font.BOLD, 14)); @@ -417,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) @@ -472,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); @@ -491,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); } } @@ -502,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); } @@ -709,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); } @@ -928,6 +942,8 @@ public class AppletPDBCanvas extends Panel implements MouseListener, MouseMotion public void highlightRes(int ii) { + if(!seqColoursReady) + return; if (highlightRes != null && highlightRes.contains((ii-1) + ""))