/*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.5)
+ * Jalview - A Sequence Alignment Editor and Viewer (Version 2.6)
* Copyright (C) 2010 J Procter, AM Waterhouse, G Barton, M Clamp, S Searle
*
* This file is part of Jalview.
RenderPanel renderPanel;
AlignmentPanel ap;
+ ArrayList _aps = new ArrayList();
String fileLoadingError;
*/
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",
- ap.av.applet.getDocumentBase(), ap.av.applet.getCodeBase(),
- "");
+ 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();
- for (int s = 0; s < jmb.pdbentry.length; s++)
+ 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)
{
- sb.append(StructureSelectionManager.getStructureSelectionManager()
- .printMapping(jmb.pdbentry[s].getFile()));
- sb.append("\n");
+ 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)
{
if (evt.getSource() == seqColour)
{
setEnabled(seqColour);
- jmb.colourBySequence(ap.av.getShowSequenceFeatures(), ap.av.alignment);
+ jmb.colourBySequence(ap.av.getShowSequenceFeatures(), ap);
}
else if (!allChainsSelected)
centerViewer();
public void updateColours(Object source)
{
AlignmentPanel ap = (AlignmentPanel) source;
- jmb.colourBySequence(ap.av.getShowSequenceFeatures(), ap.av.alignment);
+ jmb.colourBySequence(ap.av.getShowSequenceFeatures(), ap);
}
public void updateTitleAndMenus()
return;
}
setChainMenuItems(jmb.chainNames);
- jmb.colourBySequence(ap.av.getShowSequenceFeatures(), ap.av.alignment);
+ jmb.colourBySequence(ap.av.getShowSequenceFeatures(), ap);
setTitle(jmb.getViewerTitle());
}
}
}
+ Panel splitPane = null;
+
public void showConsole(boolean showConsole)
{
- if (scriptWindow == null)
- {
- 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);
+ if (showConsole)
+ {
+ 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();
}
{
jmb.setJalviewColourScheme(ucs);
}
+
+ public AlignmentPanel getAlignmentPanelFor(AlignmentI alignment)
+ {
+ for (int i=0;i<_aps.size();i++)
+ {
+ if (((AlignmentPanel)_aps.get(i)).av.getAlignment()==alignment)
+ {
+ return ((AlignmentPanel)_aps.get(i));
+ }
+ }
+ return ap;
+ }
}