/*
- * 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.
import org.jmol.adapter.smarter.SmarterJmolAdapter;
import org.jmol.popup.*;
import org.jmol.viewer.JmolConstants;
+import org.openscience.jmol.app.jmolpanel.AppConsole;
public class AppJmol extends GStructureViewer implements Runnable,
SequenceStructureBinding
{
AppJmolBinding jmb;
- ScriptWindow scriptWindow;
-
+ JPanel scriptWindow;
+
JSplitPane splitPane;
RenderPanel renderPanel;
this.getContentPane().add(renderPanel, java.awt.BorderLayout.CENTER);
jalview.gui.Desktop.addInternalFrame(this, jmb.getViewerTitle(),
getBounds().width, getBounds().height);
- jmb.allocateViewer(renderPanel, true, "", null, null, "");
+ if (scriptWindow == null)
+ {
+ BorderLayout bl = new BorderLayout();
+ bl.setHgap(0);
+ bl.setVgap(0);
+ scriptWindow = new JPanel(bl);
+ scriptWindow.setVisible(false);
+ };
+ jmb.allocateViewer(renderPanel, true, "", null, null, "", scriptWindow, null);
jmb.newJmolPopup(true, "Jmol", true);
jmb.evalStateCommand(command);
jmb.setFinishedInit(true);
void closeViewer()
{
jmb.closeViewer();
+
// TODO: check for memory leaks where instance isn't finalised because jmb
// holds a reference to the window
jmb = null;
{
}
}
-
- public void showConsole(boolean showConsole)
+public void showConsole(boolean showConsole)
{
- if (scriptWindow == null)
- scriptWindow = new ScriptWindow(this);
if (showConsole)
{
splitPane.setTopComponent(renderPanel);
splitPane.setBottomComponent(scriptWindow);
this.getContentPane().add(splitPane, BorderLayout.CENTER);
+ splitPane.setDividerLocation(getHeight() - 200);
+ scriptWindow.setVisible(true);
+ scriptWindow.validate();
+ splitPane.validate();
}
- splitPane.setDividerLocation(getHeight() - 200);
- splitPane.validate();
}
else
{
if (splitPane != null)
- splitPane.setVisible(false);
+ {
+ splitPane.setVisible(false);
+ }
splitPane = null;
validate();
}
-
class RenderPanel extends JPanel
{
final Dimension currentSize = new Dimension();