import jalview.gui.AlignmentPanel;
import jalview.gui.FeatureRenderer;
import jalview.gui.SequenceRenderer;
+import jalview.io.DataSourceType;
import jalview.io.StructureFile;
+import jalview.renderer.seqfeatures.FeatureColourFinder;
import jalview.structure.AtomSpec;
import jalview.structure.StructureListener;
import jalview.structure.StructureMapping;
import java.awt.Color;
import java.awt.Dimension;
-import java.awt.Event;
-import java.awt.Font;
+import java.awt.event.InputEvent;import java.awt.Font;
import java.awt.Graphics;
import java.awt.Graphics2D;
// JBPNote TODO: This class is quite noisy - needs proper log.info/log.debug
import javax.swing.JPanel;
import javax.swing.ToolTipManager;
-public class PDBCanvas extends JPanel implements MouseListener,
- MouseMotionListener, StructureListener
+public class PDBCanvas extends JPanel
+ implements MouseListener, MouseMotionListener, StructureListener
{
boolean redrawneeded = true;
String errorMessage;
void init(PDBEntry pdbentry, SequenceI[] seq, String[] chains,
- AlignmentPanel ap, String protocol)
+ AlignmentPanel ap, DataSourceType protocol)
{
this.ap = ap;
this.pdbentry = pdbentry;
try
{
- pdb = ssm.setMapping(seq, chains, pdbentry.getFile(), protocol);
+ pdb = ssm.setMapping(seq, chains, pdbentry.getFile(), protocol,
+ ap.alignFrame);
if (protocol.equals(jalview.io.DataSourceType.PASTE))
{
colourBySequence();
- int max = -10;
+ float max = -10;
int maxchain = -1;
int pdbstart = 0;
int pdbend = 0;
{
mappingDetails.append("\n\nPDB Sequence is :\nSequence = "
- + pdb.getChains().elementAt(i).sequence.getSequenceAsString());
+ + pdb.getChains().elementAt(i).sequence
+ .getSequenceAsString());
mappingDetails.append("\nNo of residues = "
+ pdb.getChains().elementAt(i).residues.size() + "\n\n");
showFeatures = true;
}
+ FeatureColourFinder finder = new FeatureColourFinder(fr);
PDBChain chain;
if (bysequence && pdb != null)
{
if (pos > 0)
{
pos = sequence[s].findIndex(pos);
- tmp.startCol = sr.getResidueBoxColour(sequence[s], pos);
- if (showFeatures)
- {
- tmp.startCol = fr.findFeatureColour(tmp.startCol,
- sequence[s], pos);
- }
+ tmp.startCol = sr.getResidueColour(sequence[s], pos,
+ finder);
}
pos = mapping[m].getSeqPos(tmp.at2.resNumber) - 1;
if (pos > 0)
{
pos = sequence[s].findIndex(pos);
- tmp.endCol = sr.getResidueBoxColour(sequence[s], pos);
- if (showFeatures)
- {
- tmp.endCol = fr.findFeatureColour(tmp.endCol,
- sequence[s], pos);
- }
+ tmp.endCol = sr.getResidueColour(sequence[s], pos,
+ finder);
}
}
{
tmpBond = visiblebonds.elementAt(i);
- xstart = (int) (((tmpBond.start[0] - centre[0]) * scale) + (getWidth() / 2));
- ystart = (int) (((centre[1] - tmpBond.start[1]) * scale) + (getHeight() / 2));
+ xstart = (int) (((tmpBond.start[0] - centre[0]) * scale)
+ + (getWidth() / 2));
+ ystart = (int) (((centre[1] - tmpBond.start[1]) * scale)
+ + (getHeight() / 2));
- xend = (int) (((tmpBond.end[0] - centre[0]) * scale) + (getWidth() / 2));
- yend = (int) (((centre[1] - tmpBond.end[1]) * scale) + (getHeight() / 2));
+ xend = (int) (((tmpBond.end[0] - centre[0]) * scale)
+ + (getWidth() / 2));
+ yend = (int) (((centre[1] - tmpBond.end[1]) * scale)
+ + (getHeight() / 2));
xmid = (xend + xstart) / 2;
ymid = (yend + ystart) / 2;
if (highlightBond1 != null && highlightBond1 == tmpBond)
{
- g.setColor(tmpBond.endCol.brighter().brighter().brighter()
- .brighter());
+ g.setColor(
+ tmpBond.endCol.brighter().brighter().brighter().brighter());
drawLine(g, xmid, ymid, xend, yend);
}
if (fatom != null)
{
- this.setToolTipText(chain.id + ":" + fatom.resNumber + " "
- + fatom.resName);
+ this.setToolTipText(
+ chain.id + ":" + fatom.resNumber + " " + fatom.resName);
}
else
{
MCMatrix objmat = new MCMatrix(3, 3);
objmat.setIdentity();
- if ((evt.getModifiers() & Event.META_MASK) != 0)
+ if ((evt.getModifiersEx() & InputEvent.META_DOWN_MASK) != 0)
{
objmat.rotatez(((mx - omx)));
}
g.setColor(Color.red);
if (n == 1)
{
- int xstart = (int) (((b.start[0] - centre[0]) * scale) + (getWidth() / 2));
- int ystart = (int) (((centre[1] - b.start[1]) * scale) + (getHeight() / 2));
+ int xstart = (int) (((b.start[0] - centre[0]) * scale)
+ + (getWidth() / 2));
+ int ystart = (int) (((centre[1] - b.start[1]) * scale)
+ + (getHeight() / 2));
g.drawString(b.at1.resName + "-" + b.at1.resNumber, xstart, ystart);
}
if (n == 2)
{
- int xstart = (int) (((b.end[0] - centre[0]) * scale) + (getWidth() / 2));
- int ystart = (int) (((centre[1] - b.end[1]) * scale) + (getHeight() / 2));
+ int xstart = (int) (((b.end[0] - centre[0]) * scale)
+ + (getWidth() / 2));
+ int ystart = (int) (((centre[1] - b.end[1]) * scale)
+ + (getHeight() / 2));
g.drawString(b.at2.resName + "-" + b.at2.resNumber, xstart, ystart);
}
{
tmpBond = bond;
- truex = (int) (((tmpBond.start[0] - centre[0]) * scale) + (getWidth() / 2));
+ truex = (int) (((tmpBond.start[0] - centre[0]) * scale)
+ + (getWidth() / 2));
if (Math.abs(truex - x) <= 2)
{
- int truey = (int) (((centre[1] - tmpBond.start[1]) * scale) + (getHeight() / 2));
+ int truey = (int) (((centre[1] - tmpBond.start[1]) * scale)
+ + (getHeight() / 2));
if (Math.abs(truey - y) <= 2)
{
// Still here? Maybe its the last bond
- truex = (int) (((tmpBond.end[0] - centre[0]) * scale) + (getWidth() / 2));
+ truex = (int) (((tmpBond.end[0] - centre[0]) * scale)
+ + (getWidth() / 2));
if (Math.abs(truex - x) <= 2)
{
- int truey = (int) (((tmpBond.end[1] - centre[1]) * scale) + (getHeight() / 2));
+ int truey = (int) (((tmpBond.end[1] - centre[1]) * scale)
+ + (getHeight() / 2));
if (Math.abs(truey - y) <= 2)
{
// ////////////////////////////////
// /StructureListener
@Override
- public String[] getPdbFile()
+ public String[] getStructureFiles()
{
return new String[] { pdbentry.getFile() };
}