JAL-1333 more abstraction and refactoring and working demo of Jalview talking to...
[jalview.git] / src / jalview / gui / JalviewChimeraBindingModel.java
diff --git a/src/jalview/gui/JalviewChimeraBindingModel.java b/src/jalview/gui/JalviewChimeraBindingModel.java
new file mode 100644 (file)
index 0000000..f7c4878
--- /dev/null
@@ -0,0 +1,102 @@
+package jalview.gui;
+
+import jalview.api.AlignmentViewPanel;
+import jalview.datamodel.PDBEntry;
+import jalview.datamodel.SequenceI;
+import jalview.ext.rbvi.chimera.JalviewChimeraBinding;
+import jalview.structure.StructureSelectionManager;
+
+public class JalviewChimeraBindingModel extends JalviewChimeraBinding
+{
+  private ChimeraViewFrame cvf;
+
+  public JalviewChimeraBindingModel(ChimeraViewFrame chimeraViewFrame,
+          StructureSelectionManager ssm, PDBEntry[] pdbentry,
+          SequenceI[][] sequenceIs, String[][] chains, String protocol)
+  {
+    super(ssm, pdbentry, sequenceIs, chains, protocol);
+    cvf = chimeraViewFrame;
+  }
+
+  FeatureRenderer fr = null;
+
+  @Override
+  public jalview.api.FeatureRenderer getFeatureRenderer(
+          AlignmentViewPanel alignment)
+  {
+    AlignmentPanel ap = (alignment == null) ? cvf.ap
+            : (AlignmentPanel) alignment;
+    if (ap.av.showSequenceFeatures)
+    {
+      if (fr == null)
+      {
+        fr = ap.cloneFeatureRenderer();
+      }
+      else
+      {
+        ap.updateFeatureRenderer(fr);
+      }
+    }
+
+    return fr;
+  }
+
+  @Override
+  public jalview.api.SequenceRenderer getSequenceRenderer(
+          AlignmentViewPanel alignment)
+  {
+    return new SequenceRenderer(((AlignmentPanel) alignment).av);
+  }
+  @Override
+  public void refreshGUI()
+  {
+    // appJmolWindow.repaint();
+    javax.swing.SwingUtilities.invokeLater(new Runnable()
+    {
+      public void run()
+      {
+        cvf.updateTitleAndMenus();
+        cvf.revalidate();
+      }
+    });
+  }
+
+  public void updateColours(Object source)
+  {
+    AlignmentPanel ap = (AlignmentPanel) source, topap;
+    // ignore events from panels not used to colour this view
+    if (!cvf.isUsedforcolourby(ap))
+      return;
+    if (!isLoadingFromArchive())
+    {
+      colourBySequence(ap.av.getShowSequenceFeatures(), ap);
+    }
+  }
+  @Override
+  public void releaseReferences(Object svl)
+  {
+    // TODO Auto-generated method stub
+
+  }
+
+  @Override
+  protected void releaseUIResources()
+  {
+    // TODO Auto-generated method stub
+
+  }
+
+  @Override
+  public void refreshPdbEntries()
+  {
+    // TODO Auto-generated method stub
+
+  }
+
+  @Override
+  public void showUrl(String url, String target)
+  {
+    // TODO Auto-generated method stub
+
+  }
+}