Merge branch 'develop' into feature/JAL-3551Pymol
[jalview.git] / src / jalview / jbgui / GStructureViewer.java
index 52f745d..6c0beda 100644 (file)
  */
 package jalview.jbgui;
 
-import jalview.api.structures.JalviewStructureDisplayI;
-import jalview.gui.UserDefinedColours;
-import jalview.schemes.UserColourScheme;
-import jalview.util.MessageManager;
-
 import java.awt.BorderLayout;
 import java.awt.GridLayout;
 import java.awt.event.ActionEvent;
 import java.awt.event.ActionListener;
-import java.util.Map;
 
-import javax.swing.ButtonGroup;
 import javax.swing.JInternalFrame;
 import javax.swing.JLabel;
 import javax.swing.JMenu;
@@ -40,8 +33,14 @@ import javax.swing.JMenuItem;
 import javax.swing.JPanel;
 import javax.swing.JRadioButtonMenuItem;
 
-public abstract class GStructureViewer extends JInternalFrame implements
-        JalviewStructureDisplayI
+import jalview.api.structures.JalviewStructureDisplayI;
+import jalview.gui.ColourMenuHelper.ColourChangeListener;
+import jalview.util.ImageMaker.TYPE;
+import jalview.util.MessageManager;
+
+@SuppressWarnings("serial")
+public abstract class GStructureViewer extends JInternalFrame
+        implements JalviewStructureDisplayI, ColourChangeListener
 {
   // private AAStructureBindingModel bindingModel;
 
@@ -65,26 +64,6 @@ public abstract class GStructureViewer extends JInternalFrame implements
 
   protected JRadioButtonMenuItem chargeColour;
 
-  protected JRadioButtonMenuItem zappoColour;
-
-  protected JRadioButtonMenuItem taylorColour;
-
-  protected JRadioButtonMenuItem hydroColour;
-
-  protected JRadioButtonMenuItem strandColour;
-
-  protected JRadioButtonMenuItem helixColour;
-
-  protected JRadioButtonMenuItem turnColour;
-
-  protected JRadioButtonMenuItem buriedColour;
-
-  protected JRadioButtonMenuItem nucleotideColour;
-
-  protected JRadioButtonMenuItem purinePyrimidineColour;
-
-  protected JRadioButtonMenuItem userColour;
-
   protected JRadioButtonMenuItem viewerColour;
 
   protected JMenuItem helpItem;
@@ -109,6 +88,9 @@ public abstract class GStructureViewer extends JInternalFrame implements
 
   private void jbInit() throws Exception
   {
+
+    setName("jalview-structureviewer");
+
     JMenuBar menuBar = new JMenuBar();
     this.setJMenuBar(menuBar);
 
@@ -116,7 +98,8 @@ public abstract class GStructureViewer extends JInternalFrame implements
     fileMenu.setText(MessageManager.getString("action.file"));
 
     savemenu = new JMenu();
-    savemenu.setActionCommand(MessageManager.getString("action.save_image"));
+    savemenu.setActionCommand(
+            MessageManager.getString("action.save_image"));
     savemenu.setText(MessageManager.getString("action.save_as"));
 
     JMenuItem pdbFile = new JMenuItem();
@@ -126,7 +109,7 @@ public abstract class GStructureViewer extends JInternalFrame implements
       @Override
       public void actionPerformed(ActionEvent actionEvent)
       {
-        pdbFile_actionPerformed(actionEvent);
+        pdbFile_actionPerformed();
       }
     });
 
@@ -137,7 +120,7 @@ public abstract class GStructureViewer extends JInternalFrame implements
       @Override
       public void actionPerformed(ActionEvent actionEvent)
       {
-        png_actionPerformed(actionEvent);
+        makePDBImage(TYPE.PNG);
       }
     });
 
@@ -148,7 +131,7 @@ public abstract class GStructureViewer extends JInternalFrame implements
       @Override
       public void actionPerformed(ActionEvent actionEvent)
       {
-        eps_actionPerformed(actionEvent);
+        makePDBImage(TYPE.EPS);
       }
     });
 
@@ -159,7 +142,7 @@ public abstract class GStructureViewer extends JInternalFrame implements
       @Override
       public void actionPerformed(ActionEvent actionEvent)
       {
-        viewMapping_actionPerformed(actionEvent);
+        viewMapping_actionPerformed();
       }
     });
 
@@ -189,26 +172,26 @@ public abstract class GStructureViewer extends JInternalFrame implements
       @Override
       public void actionPerformed(ActionEvent actionEvent)
       {
-        showHelp_actionPerformed(actionEvent);
+        showHelp_actionPerformed();
       }
     });
     alignStructs = new JMenuItem();
-    alignStructs
-            .setText(MessageManager.getString("label.align_structures"));
+    alignStructs.setText(
+            MessageManager.getString("label.superpose_structures"));
     alignStructs.addActionListener(new ActionListener()
     {
       @Override
       public void actionPerformed(ActionEvent actionEvent)
       {
-        alignStructs_actionPerformed(actionEvent);
+        alignStructsWithAllAlignPanels();
       }
     });
 
-    viewerActionMenu = new JMenu(MessageManager.getString("label.jmol"));
+    viewerActionMenu = new JMenu(); // text set in sub-classes
     viewerActionMenu.setVisible(false);
     viewerActionMenu.add(alignStructs);
     colourMenu = new JMenu();
-    buildColourMenu();
+    colourMenu.setText(MessageManager.getString("label.colours"));
     fileMenu.add(savemenu);
     fileMenu.add(viewMapping);
     savemenu.add(pdbFile);
@@ -230,240 +213,6 @@ public abstract class GStructureViewer extends JInternalFrame implements
     statusPanel.add(statusBar, null);
   }
 
-  /**
-   * Builds the colour menu
-   */
-  protected void buildColourMenu()
-  {
-    colourMenu.removeAll();
-    colourMenu.setText(MessageManager.getString("label.colours"));
-
-    JMenuItem backGround = new JMenuItem();
-    backGround
-            .setText(MessageManager.getString("action.background_colour"));
-    backGround.addActionListener(new ActionListener()
-    {
-      @Override
-      public void actionPerformed(ActionEvent actionEvent)
-      {
-        backGround_actionPerformed(actionEvent);
-      }
-    });
-    seqColour = new JRadioButtonMenuItem();
-    seqColour.setSelected(false);
-    seqColour.setText(MessageManager.getString("action.by_sequence"));
-    seqColour.addActionListener(new ActionListener()
-    {
-      @Override
-      public void actionPerformed(ActionEvent actionEvent)
-      {
-        seqColour_actionPerformed(actionEvent);
-      }
-    });
-    chainColour = new JRadioButtonMenuItem();
-    chainColour.setText(MessageManager.getString("action.by_chain"));
-    chainColour.addActionListener(new ActionListener()
-    {
-      @Override
-      public void actionPerformed(ActionEvent actionEvent)
-      {
-        chainColour_actionPerformed(actionEvent);
-      }
-    });
-    chargeColour = new JRadioButtonMenuItem();
-    chargeColour.setText(MessageManager.getString("label.charge_cysteine"));
-    chargeColour.addActionListener(new ActionListener()
-    {
-      @Override
-      public void actionPerformed(ActionEvent actionEvent)
-      {
-        chargeColour_actionPerformed(actionEvent);
-      }
-    });
-    zappoColour = new JRadioButtonMenuItem();
-    zappoColour.setText(MessageManager
-            .getString("label.colourScheme_zappo"));
-    zappoColour.addActionListener(new ActionListener()
-    {
-      @Override
-      public void actionPerformed(ActionEvent actionEvent)
-      {
-        zappoColour_actionPerformed(actionEvent);
-      }
-    });
-    taylorColour = new JRadioButtonMenuItem();
-    taylorColour.setText(MessageManager
-            .getString("label.colourScheme_taylor"));
-    taylorColour.addActionListener(new ActionListener()
-    {
-      @Override
-      public void actionPerformed(ActionEvent actionEvent)
-      {
-        taylorColour_actionPerformed(actionEvent);
-      }
-    });
-    hydroColour = new JRadioButtonMenuItem();
-    hydroColour.setText(MessageManager
-            .getString("label.colourScheme_hydrophobic"));
-    hydroColour.addActionListener(new ActionListener()
-    {
-      @Override
-      public void actionPerformed(ActionEvent actionEvent)
-      {
-        hydroColour_actionPerformed(actionEvent);
-      }
-    });
-    strandColour = new JRadioButtonMenuItem();
-    strandColour.setText(MessageManager
-            .getString("label.colourScheme_strand_propensity"));
-    strandColour.addActionListener(new ActionListener()
-    {
-      @Override
-      public void actionPerformed(ActionEvent actionEvent)
-      {
-        strandColour_actionPerformed(actionEvent);
-      }
-    });
-    helixColour = new JRadioButtonMenuItem();
-    helixColour.setText(MessageManager
-            .getString("label.colourScheme_helix_propensity"));
-    helixColour.addActionListener(new ActionListener()
-    {
-      @Override
-      public void actionPerformed(ActionEvent actionEvent)
-      {
-        helixColour_actionPerformed(actionEvent);
-      }
-    });
-    turnColour = new JRadioButtonMenuItem();
-    turnColour.setText(MessageManager
-            .getString("label.colourScheme_turn_propensity"));
-    turnColour.addActionListener(new ActionListener()
-    {
-      @Override
-      public void actionPerformed(ActionEvent actionEvent)
-      {
-        turnColour_actionPerformed(actionEvent);
-      }
-    });
-    buriedColour = new JRadioButtonMenuItem();
-    buriedColour.setText(MessageManager
-            .getString("label.colourScheme_buried_index"));
-    buriedColour.addActionListener(new ActionListener()
-    {
-      @Override
-      public void actionPerformed(ActionEvent actionEvent)
-      {
-        buriedColour_actionPerformed(actionEvent);
-      }
-    });
-    nucleotideColour = new JRadioButtonMenuItem();
-    nucleotideColour.setText(MessageManager
-            .getString("label.colourScheme_nucleotide"));
-    nucleotideColour.addActionListener(new ActionListener()
-    {
-      @Override
-      public void actionPerformed(ActionEvent actionEvent)
-      {
-        nucleotideColour_actionPerformed(actionEvent);
-      }
-    });
-    purinePyrimidineColour = new JRadioButtonMenuItem();
-    purinePyrimidineColour.setText(MessageManager
-            .getString("label.colourScheme_purine/pyrimidine"));
-    purinePyrimidineColour.addActionListener(new ActionListener()
-    {
-      @Override
-      public void actionPerformed(ActionEvent actionEvent)
-      {
-        purinePyrimidineColour_actionPerformed(actionEvent);
-      }
-    });
-    userColour = new JRadioButtonMenuItem();
-    userColour.setText(MessageManager.getString("action.user_defined"));
-    userColour.addActionListener(new ActionListener()
-    {
-      @Override
-      public void actionPerformed(ActionEvent actionEvent)
-      {
-        userColour_actionPerformed(actionEvent);
-      }
-    });
-    viewerColour = new JRadioButtonMenuItem();
-    viewerColour.setSelected(false);
-    viewerColour
-            .setText(MessageManager.getString("label.colour_with_jmol"));
-    viewerColour.setToolTipText(MessageManager
-            .getString("label.let_jmol_manage_structure_colours"));
-    viewerColour.addActionListener(new ActionListener()
-    {
-      @Override
-      public void actionPerformed(ActionEvent actionEvent)
-      {
-        viewerColour_actionPerformed(actionEvent);
-      }
-    });
-
-    /*
-     * add colour buttons to a group so their selection
-     * is mutually exclusive
-     */
-    ButtonGroup colourButtons = new ButtonGroup();
-
-    colourMenu.add(seqColour);
-    colourMenu.add(chainColour);
-    colourMenu.add(chargeColour);
-    colourMenu.add(zappoColour);
-    colourMenu.add(taylorColour);
-    colourMenu.add(hydroColour);
-    colourMenu.add(helixColour);
-    colourMenu.add(strandColour);
-    colourMenu.add(turnColour);
-    colourMenu.add(buriedColour);
-    colourMenu.add(purinePyrimidineColour);
-
-    /*
-     * add any user-defined colours that are loaded
-     */
-    Map<String, UserColourScheme> userColourSchemes = UserDefinedColours
-            .getUserColourSchemes();
-    if (userColourSchemes != null)
-    {
-      for (String schemeName : userColourSchemes.keySet())
-      {
-        final JRadioButtonMenuItem radioItem = new JRadioButtonMenuItem(
-                schemeName);
-        radioItem.addActionListener(new ActionListener()
-        {
-          @Override
-          public void actionPerformed(ActionEvent evt)
-          {
-            userColour_actionPerformed(evt);
-          }
-        });
-        colourMenu.add(radioItem);
-        colourButtons.add(radioItem);
-      }
-    }
-    colourMenu.add(userColour);
-    colourMenu.add(viewerColour);
-    colourMenu.add(backGround);
-
-    colourButtons.add(seqColour);
-    colourButtons.add(chainColour);
-    colourButtons.add(chargeColour);
-    colourButtons.add(zappoColour);
-    colourButtons.add(taylorColour);
-    colourButtons.add(hydroColour);
-    colourButtons.add(helixColour);
-    colourButtons.add(strandColour);
-    colourButtons.add(turnColour);
-    colourButtons.add(buriedColour);
-    colourButtons.add(purinePyrimidineColour);
-    colourButtons.add(userColour);
-    colourButtons.add(viewerColour);
-  }
-
   protected void fitToWindow_actionPerformed()
   {
   }
@@ -472,116 +221,49 @@ public abstract class GStructureViewer extends JInternalFrame implements
   {
   }
 
-  protected void viewerColour_actionPerformed(ActionEvent actionEvent)
-  {
-  }
-
-  protected void alignStructs_actionPerformed(ActionEvent actionEvent)
+  protected void viewerColour_actionPerformed()
   {
   }
 
-  public void pdbFile_actionPerformed(ActionEvent actionEvent)
-  {
+  protected abstract String alignStructsWithAllAlignPanels();
 
-  }
-
-  public void png_actionPerformed(ActionEvent actionEvent)
+  public void pdbFile_actionPerformed()
   {
 
   }
 
-  public void eps_actionPerformed(ActionEvent actionEvent)
+  public void makePDBImage(TYPE imageType)
   {
 
   }
 
-  public void viewMapping_actionPerformed(ActionEvent actionEvent)
+  public void viewMapping_actionPerformed()
   {
 
   }
 
-  public void seqColour_actionPerformed(ActionEvent actionEvent)
+  public void seqColour_actionPerformed()
   {
 
   }
 
-  public void chainColour_actionPerformed(ActionEvent actionEvent)
+  public void chainColour_actionPerformed()
   {
 
   }
 
-  public void chargeColour_actionPerformed(ActionEvent actionEvent)
+  public void chargeColour_actionPerformed()
   {
 
   }
 
-  public void zappoColour_actionPerformed(ActionEvent actionEvent)
+  public void background_actionPerformed()
   {
 
   }
 
-  public void taylorColour_actionPerformed(ActionEvent actionEvent)
+  public void showHelp_actionPerformed()
   {
 
   }
-
-  public void hydroColour_actionPerformed(ActionEvent actionEvent)
-  {
-
-  }
-
-  public void helixColour_actionPerformed(ActionEvent actionEvent)
-  {
-
-  }
-
-  public void strandColour_actionPerformed(ActionEvent actionEvent)
-  {
-
-  }
-
-  public void turnColour_actionPerformed(ActionEvent actionEvent)
-  {
-
-  }
-
-  public void buriedColour_actionPerformed(ActionEvent actionEvent)
-  {
-
-  }
-
-  public void nucleotideColour_actionPerformed(ActionEvent actionEvent)
-  {
-
-  }
-
-  public void purinePyrimidineColour_actionPerformed(ActionEvent actionEvent)
-  {
-
-  }
-
-  public void userColour_actionPerformed(ActionEvent actionEvent)
-  {
-
-  }
-
-  public void backGround_actionPerformed(ActionEvent actionEvent)
-  {
-
-  }
-
-  public void showHelp_actionPerformed(ActionEvent actionEvent)
-  {
-
-  }
-
-  // {
-  // return bindingModel;
-  // }
-
-  // public void setBindingModel(AAStructureBindingModel bindingModel)
-  // {
-  // this.bindingModel = bindingModel;
-  // }
-
 }