3 import jalview.api.AlignmentViewPanel;
4 import jalview.datamodel.PDBEntry;
5 import jalview.datamodel.SequenceI;
6 import jalview.ext.rbvi.chimera.JalviewChimeraBinding;
7 import jalview.structure.StructureSelectionManager;
9 public class JalviewChimeraBindingModel extends JalviewChimeraBinding
11 private ChimeraViewFrame cvf;
13 private FeatureRenderer fr = null;
15 public JalviewChimeraBindingModel(ChimeraViewFrame chimeraViewFrame,
16 StructureSelectionManager ssm, PDBEntry[] pdbentry,
17 SequenceI[][] sequenceIs, String[][] chains, String protocol)
19 super(ssm, pdbentry, sequenceIs, chains, protocol);
20 cvf = chimeraViewFrame;
24 public FeatureRenderer getFeatureRenderer(AlignmentViewPanel alignment)
26 AlignmentPanel ap = (alignment == null) ? cvf.getAlignmentPanel()
27 : (AlignmentPanel) alignment;
28 if (ap.av.isShowSequenceFeatures())
32 fr = (jalview.gui.FeatureRenderer) ap.cloneFeatureRenderer();
36 ap.updateFeatureRenderer(fr);
44 public jalview.api.SequenceRenderer getSequenceRenderer(
45 AlignmentViewPanel alignment)
47 return new SequenceRenderer(((AlignmentPanel) alignment).av);
51 public void refreshGUI()
53 javax.swing.SwingUtilities.invokeLater(new Runnable()
57 cvf.updateTitleAndMenus();
63 public void updateColours(Object source)
65 AlignmentPanel ap = (AlignmentPanel) source;
66 // ignore events from panels not used to colour this view
67 if (!cvf.isUsedforcolourby(ap))
71 if (!isLoadingFromArchive())
73 colourBySequence(ap.av.isShowSequenceFeatures(), ap);
78 public void releaseReferences(Object svl)
83 protected void releaseUIResources()
88 public void refreshPdbEntries()
93 * Send an asynchronous command to Chimera, in a new thread, optionally with
94 * an 'in progress' message in a progress bar somewhere
96 protected void sendAsynchronousCommand(final String command,
97 final String progressMsg)
99 Thread thread = new Thread(new Runnable()
105 long stm = cvf.startProgressBar(progressMsg);
108 sendChimeraCommand(command, false);
111 cvf.stopProgressBar(null, stm);