import jalview.schemes.*;
-public class AppletJmol extends Frame
+public class AppletJmol extends EmbmenuFrame
implements StructureListener, JmolStatusListener,
KeyListener, ActionListener, ItemListener
//PROMPT USER HERE TO ADD TO NEW OR EXISTING VIEW?
//FOR NOW, LETS JUST OPEN A NEW WINDOW
}
-
- renderPanel = new RenderPanel();
-
- this.add(renderPanel, BorderLayout.CENTER);
- viewer = JmolViewer.allocateViewer(renderPanel, new SmarterJmolAdapter());
-
- viewer.setAppletContext("jalview",
- ap.av.applet.getDocumentBase(),
- ap.av.applet.getCodeBase(),
- null);
-
- viewer.setJmolStatusListener(this);
-
- jmolpopup = JmolPopup.newJmolPopup(viewer);
-
- this.addWindowListener(new WindowAdapter()
- {
- public void windowClosing(WindowEvent evt)
- {
- closeViewer();
- }
- });
-
MenuBar menuBar = new MenuBar();
menuBar.add(fileMenu);
fileMenu.add(mappingMenuItem);
helpMenu.add(jmolHelp);
- this.setMenuBar(menuBar);
+ setMenuBar(menuBar);
+
+ renderPanel = new RenderPanel();
+ embedMenuIfNeeded(renderPanel);
+ this.add(renderPanel, BorderLayout.CENTER);
+ viewer = JmolViewer.allocateViewer(renderPanel, new SmarterJmolAdapter());
+
+ viewer.setAppletContext("jalview",
+ ap.av.applet.getDocumentBase(),
+ ap.av.applet.getCodeBase(),
+ null);
+
+ viewer.setJmolStatusListener(this);
+
+ jmolpopup = JmolPopup.newJmolPopup(viewer);
+
+ this.addWindowListener(new WindowAdapter()
+ {
+ public void windowClosing(WindowEvent evt)
+ {
+ closeViewer();
+ }
+ });
+
if(pdbentry.getFile()!=null)
{
{
if (evt.getSource() == seqColour)
{
+ lastCommand = null;
colourBySequence = seqColour.getState();
colourBySequence(ap);
}
return new Color(viewer.getAtomArgb(atomIndex));
}
- FeatureRenderer fr;
String lastCommand;
- public void colourBySequence(AlignmentPanel ap)
+ FeatureRenderer fr=null;
+ public void colourBySequence(AlignmentPanel sourceap)
{
- if(!colourBySequence)
- return;
+ this.ap = sourceap;
+ if (!colourBySequence)
+ return;
StructureMapping[] mapping = ssm.getMapping(pdbentry.getFile());
SequenceRenderer sr = new SequenceRenderer(ap.av);
boolean showFeatures = false;
+
if (ap.av.showSequenceFeatures)
{
showFeatures = true;
for (int m = 0; m < mapping.length; m++)
{
if (mapping[m].getSequence() == sequence[s]
- && ap.av.alignment.findIndex(sequence[s])>-1)
+ && ap.av.alignment.findIndex(sequence[s]) > -1)
{
for (int r = 0; r < sequence[s].getLength(); r++)
{
int pos = mapping[m].getPDBResNum(
sequence[s].findPosition(r));
- if (pos < 1 || pos==lastPos)
+ if (pos < 1 || pos == lastPos)
continue;
lastPos = pos;
if (showFeatures)
col = fr.findFeatureColour(col, sequence[s], r);
- if (command.toString().endsWith(":" + mapping[m].getChain()+
+ if (command.toString().endsWith(":" + mapping[m].getChain() +
";color["
+ col.getRed() + ","
+ col.getGreen() + ","
}
command.append(";color["
- + col.getRed() + ","
- + col.getGreen() + ","
- + col.getBlue() + "]");
-
+ + col.getRed() + ","
+ + col.getGreen() + ","
+ + col.getBlue() + "]");
}
break;
}
}
if (lastCommand == null || !lastCommand.equals(command.toString()))
+ {
viewer.evalStringQuiet(command.toString());
-
+ }
lastCommand = command.toString();
}
+
StringBuffer condenseCommand(String command, int pos)
{