* datasource protocol for access to PDBEntry
*/
String protocol = null;
-
+ /**
+ * Load a bunch of pdb entries associated with sequences in the alignment and display them - aligning them if necessary.
+ * @param pdbentries each pdb file (at least one needed)
+ * @param boundseqs each set of sequences for each pdb file (must match number of pdb files)
+ * @param boundchains the target pdb chain corresponding with each sequence associated with each pdb file (may be null at any level)
+ * @param align true/false
+ * @param ap associated alignment
+ * @param protocol how to get pdb data
+ */
+ public AppletJmol(PDBEntry[] pdbentries, SequenceI[][] boundseqs, String[][] boundchains, boolean align, AlignmentPanel ap, String protocol)
+ {
+ throw new Error("Not yet implemented.");
+ }
public AppletJmol(PDBEntry pdbentry, SequenceI[] seq, String[] chains,
AlignmentPanel ap, String protocol)
{
this.ap = ap;
jmb = new AppletJmolBinding(this, new PDBEntry[]
- { pdbentry }, seq, chains, protocol);
+ { pdbentry }, new SequenceI[][]{seq}, new String[][]{ chains }, protocol);
jmb.setColourBySequence(true);
if (pdbentry.getId() == null || pdbentry.getId().length() < 1)
{
coloursMenu.add(user);
helpMenu.add(jmolHelp);
+ this.setLayout(new BorderLayout());
setMenuBar(menuBar);
renderPanel = new RenderPanel();
embedMenuIfNeeded(renderPanel);
this.add(renderPanel, BorderLayout.CENTER);
+ scriptWindow = new Panel();
+ scriptWindow.setVisible(false);
+ // this.add(scriptWindow, BorderLayout.SOUTH);
+
try
{
- jmb.allocateViewer(renderPanel, "jalviewJmol",
+ jmb.allocateViewer(renderPanel, true, ap.av.applet.getName()+"_jmol_",
ap.av.applet.getDocumentBase(), ap.av.applet.getCodeBase(),
- "");
+ "-applet", scriptWindow, null);
} catch (Exception e)
{
System.err
closeViewer();
}
});
-
+ if (pdbentry.getProperty()==null)
+ {
+ pdbentry.setProperty(new Hashtable());
+ pdbentry.getProperty().put("protocol", protocol);
+ }
if (pdbentry.getFile() != null)
{
// import structure data from pdbentry.getFile based on given protocol
if (protocol.equals(AppletFormatAdapter.PASTE))
{
+ // TODO: JAL-623 : correctly record file contents for matching up later
+ // pdbentry.getProperty().put("pdbfilehash",""+pdbentry.getFile().hashCode());
loadInline(pdbentry.getFile());
}
else if (protocol.equals(AppletFormatAdapter.FILE)
public void loadInline(String string)
{
loadedInline = true;
- jmb.viewer.openStringInline(string);
+ jmb.loadInline(string);
}
void setChainMenuItems(Vector chains)
Frame frame = new Frame();
frame.add(cap);
- jalview.bin.JalviewLite.addFrame(frame, "PDB - Sequence Mapping",
- 550, 600);
StringBuffer sb = new StringBuffer();
+ try {
for (int s = 0; s < jmb.pdbentry.length; s++)
{
sb.append(StructureSelectionManager.getStructureSelectionManager()
.printMapping(jmb.pdbentry[s].getFile()));
sb.append("\n");
}
+ cap.setText(sb.toString());
+ }
+ catch (OutOfMemoryError ex)
+ {
+ frame.dispose();
+ System.err.println("Out of memory when trying to create dialog box with sequence-structure mapping.");
+ return;
+ }
+ jalview.bin.JalviewLite.addFrame(frame, "PDB - Sequence Mapping",
+ 550, 600);
}
else if (evt.getSource() == charge)
{
{
}
}
-
+ Panel splitPane=null;
public void showConsole(boolean showConsole)
{
- if (scriptWindow == null)
+ if (showConsole)
{
- scriptWindow = new Panel(new BorderLayout());
- inputLine = new TextField();
- history = new TextArea(5, 40);
- scriptWindow.add(history, BorderLayout.CENTER);
- scriptWindow.add(inputLine, BorderLayout.SOUTH);
- add(scriptWindow, BorderLayout.SOUTH);
+ remove(renderPanel);
+ splitPane = new Panel();
+
+ splitPane.setLayout(new java.awt.GridLayout(2,1));
+ splitPane.add(renderPanel);
+ splitPane.add(scriptWindow);
+ scriptWindow.setVisible(true);
+ this.add(splitPane, BorderLayout.CENTER);
+ splitPane.setVisible(true);
+ splitPane.validate();
+ } else {
scriptWindow.setVisible(false);
- history.setEditable(false);
- inputLine.addKeyListener(this);
+ remove(splitPane);
+ add(renderPanel, BorderLayout.CENTER);
+ splitPane=null;
}
-
- scriptWindow.setVisible(!scriptWindow.isVisible());
validate();
}