X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2FMCview%2FAppletPDBCanvas.java;h=d0c7da86f0a4993d0edac204655fead035f2ace0;hb=a581135c768ce6c60c38bbd47003477f8c557eea;hp=0c7320d7104f6bf1071b984f3f05fd8180c141e4;hpb=05ecc2de6c739e536b7fe198a4cd2402491cc66f;p=jalview.git diff --git a/src/MCview/AppletPDBCanvas.java b/src/MCview/AppletPDBCanvas.java index 0c7320d..d0c7da8 100755 --- a/src/MCview/AppletPDBCanvas.java +++ b/src/MCview/AppletPDBCanvas.java @@ -1,17 +1,17 @@ /* - * Jalview - A Sequence Alignment Editor and Viewer - * Copyright (C) 2007 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle - * + * Jalview - A Sequence Alignment Editor and Viewer (Version 2.4) + * Copyright (C) 2008 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 * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version. - * + * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * + * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA @@ -83,6 +83,7 @@ public class AppletPDBCanvas public AppletPDBCanvas(PDBEntry pdbentry, SequenceI[] seq, + String [] chains, AlignmentPanel ap, String protocol) @@ -94,9 +95,11 @@ public class AppletPDBCanvas ssm = StructureSelectionManager.getStructureSelectionManager(); try{ - pdb = ssm.setMapping(seq, pdbentry.getFile(), protocol); - //if (fr!=null) - // fr.featuresAdded(); + pdb = ssm.setMapping(seq, chains, pdbentry.getFile(), protocol); + + if(protocol.equals(jalview.io.AppletFormatAdapter.PASTE)) + pdbentry.setFile("INLINE"+pdb.id); + }catch(Exception ex) { ex.printStackTrace(); @@ -107,9 +110,7 @@ public class AppletPDBCanvas ssm.addStructureViewerListener(this); - colourBySequence(ap.getSequenceRenderer(), - ap.av.getShowSequenceFeatures() ? - ap.getFeatureRenderer() : null); + colourBySequence(); int max = -10; int maxchain = -1; @@ -117,7 +118,6 @@ public class AppletPDBCanvas int pdbend = 0; int seqstart = 0; int seqend = 0; - AlignSeq maxAlignseq = null; //JUST DEAL WITH ONE SEQUENCE FOR NOW SequenceI sequence = seq[0]; @@ -164,8 +164,7 @@ public class AppletPDBCanvas pdbend = as.seq2end; seqstart = as.seq1start + sequence.getStart() - 1; seqend = as.seq1end + sequence.getEnd() - 1; - maxAlignseq = as; - } + } mappingDetails.append("\nPDB start/end " + pdbstart + " " + pdbend); mappingDetails.append("\nSEQ start/end " + seqstart + " " + seqend); @@ -240,9 +239,7 @@ public class AppletPDBCanvas } } seqColoursReady = true; - colourBySequence(ap.getSequenceRenderer(), - ap.av.getShowSequenceFeatures() ? - ap.getFeatureRenderer() : null); + colourBySequence(); redrawneeded = true; repaint(); } @@ -497,18 +494,22 @@ public class AppletPDBCanvas // This method has been taken out of PDBChain to allow // Applet and Application specific sequence renderers to be used - void colourBySequence(SequenceRenderer sr, FeatureRenderer fr) + void colourBySequence() { + SequenceRenderer sr = new SequenceRenderer(ap.av); + StructureMapping[] mapping = ssm.getMapping(pdbentry.getFile()); boolean showFeatures = false; - if (fr!=null) + if (ap.av.getShowSequenceFeatures()) { if (fr == null) { fr = new jalview.appletgui.FeatureRenderer(ap.av); } - fr.transferSettings(fr); + + fr.transferSettings(ap.getFeatureRenderer()); + showFeatures = true; } @@ -588,12 +589,12 @@ public class AppletPDBCanvas xstart = (int) ( ( (tmpBond.start[0] - centre[0]) * scale) + (getSize().width / 2)); - ystart = (int) ( ( (tmpBond.start[1] - centre[1]) * scale) + + ystart = (int) ( ( (centre[1] - tmpBond.start[1] ) * scale) + (getSize().height / 2)); xend = (int) ( ( (tmpBond.end[0] - centre[0]) * scale) + (getSize().width / 2)); - yend = (int) ( ( (tmpBond.end[1] - centre[1]) * scale) + + yend = (int) ( ( (centre[1] - tmpBond.end[1] ) * scale) + (getSize().height / 2)); xmid = (xend + xstart) / 2; @@ -833,7 +834,7 @@ public class AppletPDBCanvas } else { - objmat.rotatex( (float) ( (my - omy))); + objmat.rotatex( (float) ( (omy - my))); objmat.rotatey( (float) ( (omx - mx))); } @@ -914,7 +915,7 @@ public class AppletPDBCanvas { int xstart = (int) ( ( (b.start[0] - centre[0]) * scale) + (getSize().width / 2)); - int ystart = (int) ( ( (b.start[1] - centre[1]) * scale) + + int ystart = (int) ( ( (centre[1] - b.start[1]) * scale) + (getSize().height / 2)); g.setColor(Color.red); @@ -925,7 +926,7 @@ public class AppletPDBCanvas { int xstart = (int) ( ( (b.end[0] - centre[0]) * scale) + (getSize().width / 2)); - int ystart = (int) ( ( (b.end[1] - centre[1]) * scale) + + int ystart = (int) ( ( (centre[1] - b.end[1]) * scale) + (getSize().height / 2)); g.setColor(Color.red); @@ -959,7 +960,7 @@ public class AppletPDBCanvas if (Math.abs(truex - x) <= 2) { - int truey = (int) ( ( (tmpBond.start[1] - centre[1]) * scale) + + int truey = (int) ( ( (centre[1] - tmpBond.start[1] ) * scale) + (getSize().height / 2)); if (Math.abs(truey - y) <= 2) @@ -1075,7 +1076,7 @@ public class AppletPDBCanvas ///StructureListener public String getPdbFile() { - return "???"; + return pdbentry.getFile(); } @@ -1144,12 +1145,19 @@ public class AppletPDBCanvas repaint(); } + + public Color getColour(int atomIndex, int pdbResNum, String chain, String pdbfile) + { + return Color.white; + // if (!pdbfile.equals(pdbentry.getFile())) + // return null; + + //return new Color(viewer.getAtomArgb(atomIndex)); + } + public void updateColours(Object source) { - AlignmentPanel ap = (AlignmentPanel) source; - colourBySequence(ap.getSequenceRenderer(), - ap.av.getShowSequenceFeatures() ? - ap.getFeatureRenderer() : null); + colourBySequence(); redrawneeded = true; repaint(); }