Skip to content

Commit

Permalink
update outline after running jmol scripts
Browse files Browse the repository at this point in the history
They may change the model
  • Loading branch information
jonalv authored and egonw committed Oct 29, 2009
1 parent 9276f09 commit 62f406a
Show file tree
Hide file tree
Showing 2 changed files with 51 additions and 32 deletions.
Expand Up @@ -571,11 +571,25 @@ public void runScript(String script){
String res = jmolPanel.getViewer().evalString(script);
if (res!=null)
logger.debug("Jmol said: '" + res + "'");
if ( fOutlinePage != null ) {
Display.getDefault().asyncExec( new Runnable() {
public void run() {
fOutlinePage.updateTreeViewerModel();
}
});
}
}

public void runScriptSilently(String script){
logger.debug("Running jmol script: '" + script + "'");
jmolPanel.getViewer().evalString(script);
if ( fOutlinePage != null ) {
Display.getDefault().asyncExec( new Runnable() {
public void run() {
fOutlinePage.updateTreeViewerModel();
}
});
}
}

public JmolPanel getJmolPanel() {
Expand Down
Expand Up @@ -62,12 +62,10 @@
*
*/
public class JmolContentOutlinePage

extends ContentOutlinePage

implements ISelectionListener,
IAdaptable,
ITabbedPropertySheetPageContributor {
extends ContentOutlinePage
implements ISelectionListener,
IAdaptable,
ITabbedPropertySheetPageContributor {

private final String CONTRIBUTOR_ID
= "net.bioclipse.jmol.views.outline.JmolContentOutlinePage";
Expand All @@ -79,17 +77,20 @@ public class JmolContentOutlinePage
private IEditorPart part;
private TreeViewer treeViewer;

class JmolOutlineContentProvider implements IStructuredContentProvider,
ITreeContentProvider {
class JmolOutlineContentProvider
implements IStructuredContentProvider,
ITreeContentProvider {

ModelSet modelset; //The root object
boolean isInitialized;
Set<String> chains; //Set of PDBchains

public void inputChanged(Viewer v, Object oldInput, Object newInput) {
}

public void dispose() {
}

public Object[] getElements(Object parent) {
return getChildren(parent);
}
Expand All @@ -103,6 +104,7 @@ public Object getParent(Object child) {

return null;
}

public Object [] getChildren(Object parent) {

if (parent instanceof JmolObject) {
Expand All @@ -116,6 +118,7 @@ public Object getParent(Object child) {
}
return new Object[0];
}

public boolean hasChildren(Object parent) {
return getChildren(parent).length>0;
}
Expand Down Expand Up @@ -170,11 +173,12 @@ class NameSorter extends ViewerSorter {
* @param editorInput
* @param jmolEditor
*/
public JmolContentOutlinePage(IEditorInput editorInput, JmolEditor jmolEditor) {
public JmolContentOutlinePage( IEditorInput editorInput,
JmolEditor jmolEditor ) {
super();

this.part=jmolEditor;
jmolViewer=jmolEditor.getJmolPanel().getViewer();
this.part = jmolEditor;
jmolViewer = jmolEditor.getJmolPanel().getViewer();
}


Expand All @@ -184,26 +188,17 @@ public JmolContentOutlinePage(IEditorInput editorInput, JmolEditor jmolEditor) {
public void createControl(Composite parent) {

super.createControl(parent);

if (jmolViewer.getModelSet()==null)
return;
if (jmolViewer.getModelSet().getModels()==null)
return;
if (jmolViewer.getModelSet().getModels().length<1)
return;

treeViewer= getTreeViewer();
treeViewer.setContentProvider(new JmolOutlineContentProvider());
treeViewer.setLabelProvider(new JmolOutlineLabelProvider());
// viewer.setSorter(new NameSorter());

treeViewer = getTreeViewer();
treeViewer.setContentProvider( new JmolOutlineContentProvider() );
treeViewer.setLabelProvider( new JmolOutlineLabelProvider() );
treeViewer.addSelectionChangedListener(this);

JmolModelSet ms=new JmolModelSet(jmolViewer.getModelSet());
treeViewer.setInput(ms);
treeViewer.expandToLevel(2);

//This is needed to set focus to outline when clicked on an element in
//the treeviewer. Else no selection posted.

updateTreeViewerModel();
getSite().getPage().addSelectionListener(this);

// This is needed to set focus to outline when clicked on an element in
// the treeviewer. Else no selection posted.
treeViewer.getTree().addFocusListener(new FocusListener(){

public void focusGained(FocusEvent e) {
Expand All @@ -218,10 +213,20 @@ public void focusLost(FocusEvent e) {
// Not interested in this
}
});

getSite().getPage().addSelectionListener(this);
}

public void updateTreeViewerModel() {

ModelSet modelSet = jmolViewer.getModelSet();
if ( modelSet == null
|| modelSet.getModels() == null
|| modelSet.getModels().length < 1 )
return;

JmolModelSet ms = new JmolModelSet(modelSet);
treeViewer.setInput(ms);
treeViewer.expandToLevel(2);
}

/**
* Update selected items if selected in Jmol
Expand Down

0 comments on commit 62f406a

Please sign in to comment.