JAL-845 SplitFrame for "show product" and after aligning from SplitFrame
[jalview.git] / src / jalview / jbgui / GAlignFrame.java
index 4b36729..d9c87cb 100755 (executable)
@@ -21,6 +21,7 @@
 package jalview.jbgui;
 
 import jalview.analysis.AnnotationSorter.SequenceAnnotationOrder;
+import jalview.api.SplitContainerI;
 import jalview.bin.Cache;
 import jalview.gui.JvSwingUtils;
 import jalview.gui.Preferences;
@@ -260,8 +261,6 @@ public class GAlignFrame extends JInternalFrame
 
   protected JMenuItem showTranslation = new JMenuItem();
 
-  protected JMenu cdna = new JMenu();
-
   protected JMenuItem extractScores = new JMenuItem();
 
   protected JMenuItem expandAlignment = new JMenuItem();
@@ -302,7 +301,7 @@ public class GAlignFrame extends JInternalFrame
 
   GridLayout gridLayout1 = new GridLayout();
 
-  JMenu jMenu3 = new JMenu();
+  JMenu showMenu = new JMenu();
 
   JMenuItem showAllSeqs = new JMenuItem();
 
@@ -328,6 +327,8 @@ public class GAlignFrame extends JInternalFrame
 
   protected JMenuItem hideAllAlAnnotations = new JMenuItem();
 
+  protected JCheckBoxMenuItem showComplementMenuItem = new JCheckBoxMenuItem();
+
   protected JCheckBoxMenuItem sortAnnBySequence = new JCheckBoxMenuItem();
 
   protected JCheckBoxMenuItem sortAnnByLabel = new JCheckBoxMenuItem();
@@ -396,6 +397,8 @@ public class GAlignFrame extends JInternalFrame
 
   private Map<KeyStroke, JMenuItem> accelerators = new HashMap<KeyStroke, JMenuItem>();
 
+  private SplitContainerI splitFrame;
+
   public GAlignFrame()
   {
     try
@@ -513,9 +516,8 @@ public class GAlignFrame extends JInternalFrame
     // colours.add(covariationColour);
     colours.add(tcoffeeColour);
     colours.add(RNAInteractionColour);
-    setColourSelected(jalview.bin.Cache
-            .getDefault("DEFAULT_COLOUR", "None"));
-
+    setColourSelected(jalview.bin.Cache.getDefault(
+            Preferences.DEFAULT_COLOUR, "None"));
   }
 
   public void setColourSelected(String defaultColour)
@@ -1835,54 +1837,6 @@ public class GAlignFrame extends JInternalFrame
       }
     });
 
-    /*
-     * cDNA menu options
-     */
-    cdna.setText(MessageManager.getString("label.cdna"));
-    // link to available cDNA
-    JMenuItem linkCdna = new JMenuItem(
-            MessageManager.getString("label.link_cdna"));
-    linkCdna.setToolTipText(JvSwingUtils.wrapTooltip(true,
-            MessageManager.getString("label.link_cdna_tip")));
-    linkCdna.addActionListener(new ActionListener()
-    {
-      @Override
-      public void actionPerformed(ActionEvent e)
-      {
-        linkCdna_actionPerformed();
-      }
-    });
-    cdna.add(linkCdna);
-    // align linked cDNA
-    JMenuItem alignCdna = new JMenuItem(
-            MessageManager.getString("label.align_cdna"));
-    alignCdna.setToolTipText(JvSwingUtils.wrapTooltip(true,
-            MessageManager.getString("label.align_cdna_tip")));
-    alignCdna.addActionListener(new ActionListener()
-    {
-      @Override
-      public void actionPerformed(ActionEvent e)
-      {
-        alignCdna_actionPerformed();
-      }
-    });
-    cdna.add(alignCdna);
-
-    // view alignment as cDNA (when known)
-    JMenuItem viewAsCdna = new JMenuItem(
-            MessageManager.getString("label.view_as_cdna"));
-    viewAsCdna.setToolTipText(JvSwingUtils.wrapTooltip(true,
-            MessageManager.getString("label.view_as_cdna_tip")));
-    viewAsCdna.addActionListener(new ActionListener()
-    {
-      @Override
-      public void actionPerformed(ActionEvent e)
-      {
-        viewAsCdna_actionPerformed();
-      }
-    });
-    cdna.add(viewAsCdna);
-
     extractScores.setText(MessageManager.getString("label.extract_scores")
             + "...");
     extractScores.addActionListener(new ActionListener()
@@ -2057,7 +2011,7 @@ public class GAlignFrame extends JInternalFrame
       }
     });
     statusPanel.setLayout(gridLayout1);
-    jMenu3.setText(MessageManager.getString("action.show"));
+    showMenu.setText(MessageManager.getString("action.show"));
     showAllSeqs.setText(MessageManager.getString("label.all_sequences"));
     showAllSeqs.setToolTipText(MessageManager
             .getString("label.toggle_sequence_visibility"));
@@ -2164,6 +2118,16 @@ public class GAlignFrame extends JInternalFrame
     };
     addMenuActionAndAccelerator(keyStroke, invertColSel, al);
 
+    showComplementMenuItem.setVisible(false);
+    showComplementMenuItem.addActionListener(new ActionListener()
+    {
+      @Override
+      public void actionPerformed(ActionEvent e)
+      {
+        showComplement_actionPerformed(showComplementMenuItem.getState());
+      }
+    });
+
     tabbedPane.addChangeListener(new javax.swing.event.ChangeListener()
     {
       @Override
@@ -2354,8 +2318,9 @@ public class GAlignFrame extends JInternalFrame
     viewMenu.add(expandViews);
     viewMenu.add(gatherViews);
     viewMenu.addSeparator();
-    viewMenu.add(jMenu3);
+    viewMenu.add(showMenu);
     viewMenu.add(hideMenu);
+    viewMenu.add(showComplementMenuItem);
     viewMenu.addSeparator();
     viewMenu.add(followHighlightMenuItem);
     annotationsMenu.add(annotationPanelMenuItem);
@@ -2425,7 +2390,6 @@ public class GAlignFrame extends JInternalFrame
     calculateMenu.add(PCAMenuItem);
     calculateMenu.addSeparator();
     calculateMenu.add(showTranslation);
-    calculateMenu.add(cdna);
     calculateMenu.add(showProducts);
     calculateMenu.add(autoCalculate);
     calculateMenu.add(sortByTree);
@@ -2452,9 +2416,9 @@ public class GAlignFrame extends JInternalFrame
     this.getContentPane().add(statusPanel, java.awt.BorderLayout.SOUTH);
     statusPanel.add(statusBar, null);
     this.getContentPane().add(tabbedPane, java.awt.BorderLayout.CENTER);
-    jMenu3.add(showAllColumns);
-    jMenu3.add(showAllSeqs);
-    jMenu3.add(showAllhidden);
+    showMenu.add(showAllColumns);
+    showMenu.add(showAllSeqs);
+    showMenu.add(showAllhidden);
     hideMenu.add(hideSelColumns);
     hideMenu.add(hideSelSequences);
     hideMenu.add(hideAllSelection);
@@ -2509,18 +2473,6 @@ public class GAlignFrame extends JInternalFrame
     menuItem.addActionListener(actionListener);
   }
 
-  protected void viewAsCdna_actionPerformed()
-  {
-  }
-
-  protected void alignCdna_actionPerformed()
-  {
-  }
-
-  protected void linkCdna_actionPerformed()
-  {
-  }
-
   /**
    * Action on clicking sort annotations by type.
    * 
@@ -3269,4 +3221,29 @@ public class GAlignFrame extends JInternalFrame
   {
     return statusPanel;
   }
+
+  /**
+   * Sets a reference to the containing split frame. Also makes the 'toggle
+   * split view' menu item visible and checked.
+   * 
+   * @param sf
+   */
+  public void setSplitFrame(SplitContainerI sf)
+  {
+    this.splitFrame = sf;
+    if (sf != null)
+    {
+      this.showComplementMenuItem.setVisible(true);
+      this.showComplementMenuItem.setState(true);
+    }
+  }
+
+  public SplitContainerI getSplitViewContainer()
+  {
+    return this.splitFrame;
+  }
+
+  protected void showComplement_actionPerformed(boolean state)
+  {
+  }
 }