JAL-2422 pull up refactoring in preparation for ChimeraX subclasses
[jalview.git] / src / jalview / gui / AppJmolBinding.java
index ffa34f8..aa6a159 100644 (file)
@@ -26,47 +26,26 @@ import jalview.bin.Cache;
 import jalview.datamodel.PDBEntry;
 import jalview.datamodel.SequenceI;
 import jalview.ext.jmol.JalviewJmolBinding;
+import jalview.io.DataSourceType;
 import jalview.structure.StructureSelectionManager;
 
 import java.awt.Container;
 import java.util.Map;
 
+import javax.swing.JComponent;
+
 import org.jmol.api.JmolAppConsoleInterface;
 import org.jmol.java.BS;
 import org.openscience.jmol.app.jmolpanel.console.AppConsole;
 
 public class AppJmolBinding extends JalviewJmolBinding
 {
-  private AppJmol appJmolWindow;
-
-  private FeatureRenderer fr = null;
-
   public AppJmolBinding(AppJmol appJmol, StructureSelectionManager sSm,
-          PDBEntry[] pdbentry, SequenceI[][] sequenceIs, String[][] chains,
-          String protocol)
+          PDBEntry[] pdbentry, SequenceI[][] sequenceIs,
+          DataSourceType protocol)
   {
-    super(sSm, pdbentry, sequenceIs, chains, protocol);
-    appJmolWindow = appJmol;
-  }
-
-  @Override
-  public FeatureRenderer getFeatureRenderer(AlignmentViewPanel alignment)
-  {
-    AlignmentPanel ap = (alignment == null) ? appJmolWindow
-            .getAlignmentPanel() : (AlignmentPanel) alignment;
-    if (ap.av.isShowSequenceFeatures())
-    {
-      if (fr == null)
-      {
-        fr = (jalview.gui.FeatureRenderer) ap.cloneFeatureRenderer();
-      }
-      else
-      {
-        ap.updateFeatureRenderer(fr);
-      }
-    }
-
-    return fr;
+    super(sSm, pdbentry, sequenceIs, protocol);
+    setViewer(appJmol);
   }
 
   @Override
@@ -117,8 +96,9 @@ public class AppJmolBinding extends JalviewJmolBinding
       @Override
       public void run()
       {
-        appJmolWindow.updateTitleAndMenus();
-        appJmolWindow.revalidate();
+        JalviewStructureDisplayI theViewer = getViewer();
+        theViewer.updateTitleAndMenus();
+        ((JComponent) theViewer).revalidate();
       }
     });
   }
@@ -128,7 +108,7 @@ public class AppJmolBinding extends JalviewJmolBinding
   {
     AlignmentPanel ap = (AlignmentPanel) source;
     // ignore events from panels not used to colour this view
-    if (!appJmolWindow.isUsedforcolourby(ap))
+    if (!getViewer().isUsedForColourBy(ap))
     {
       return;
     }
@@ -176,21 +156,21 @@ public class AppJmolBinding extends JalviewJmolBinding
   @Override
   public void showConsole(boolean b)
   {
-    appJmolWindow.showConsole(b);
+    getViewer().showConsole(b);
   }
 
   @Override
   protected JmolAppConsoleInterface createJmolConsole(
           Container consolePanel, String buttonsToShow)
   {
-    viewer.setJmolCallbackListener(this);
-    return new AppConsole(viewer, consolePanel, buttonsToShow);
+    jmolViewer.setJmolCallbackListener(this);
+    return new AppConsole(jmolViewer, consolePanel, buttonsToShow);
   }
 
   @Override
   protected void releaseUIResources()
   {
-    appJmolWindow = null;
+    setViewer(null);
     closeConsole();
   }
 
@@ -199,7 +179,7 @@ public class AppJmolBinding extends JalviewJmolBinding
   {
     if (svl instanceof SeqPanel)
     {
-      appJmolWindow.removeAlignmentPanel(((SeqPanel) svl).ap);
+      getViewer().removeAlignmentPanel(((SeqPanel) svl).ap);
     }
   }
 
@@ -209,10 +189,4 @@ public class AppJmolBinding extends JalviewJmolBinding
     // TODO Auto-generated method stub
     return null;
   }
-
-  @Override
-  public JalviewStructureDisplayI getViewer()
-  {
-    return appJmolWindow;
-  }
 }