JAL-1078 - removed 'Load Score File' menu item and extended annotation file loader...
[jalview.git] / src / jalview / jbgui / GAlignFrame.java
index 6253e36..6c1c8c6 100755 (executable)
@@ -1,6 +1,6 @@
 /*
  * Jalview - A Sequence Alignment Editor and Viewer (Version 2.7)
- * Copyright (C) 2011 J Procter, AM Waterhouse, G Barton, M Clamp, S Searle
+ * Copyright (C) 2011 J Procter, AM Waterhouse, J Engelhardt, LM Lui, G Barton, M Clamp, S Searle
  * 
  * This file is part of Jalview.
  * 
  */
 package jalview.jbgui;
 
-import java.awt.*;
-import java.awt.event.*;
-
-import javax.swing.*;
-import javax.swing.event.*;
-
-import jalview.schemes.*;
+import jalview.schemes.ColourSchemeProperty;
+
+import java.awt.BorderLayout;
+import java.awt.Color;
+import java.awt.GridLayout;
+import java.awt.Toolkit;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.awt.event.FocusAdapter;
+import java.awt.event.FocusEvent;
+import java.awt.event.MouseAdapter;
+import java.awt.event.MouseEvent;
+
+import javax.swing.BorderFactory;
+import javax.swing.ButtonGroup;
+import javax.swing.JCheckBoxMenuItem;
+import javax.swing.JInternalFrame;
+import javax.swing.JLabel;
+import javax.swing.JMenu;
+import javax.swing.JMenuBar;
+import javax.swing.JMenuItem;
+import javax.swing.JOptionPane;
+import javax.swing.JPanel;
+import javax.swing.JRadioButtonMenuItem;
+import javax.swing.JTabbedPane;
+import javax.swing.SwingUtilities;
+import javax.swing.event.ChangeEvent;
+import javax.swing.event.MenuEvent;
+import javax.swing.event.MenuListener;
 
 public class GAlignFrame extends JInternalFrame
 {
@@ -113,6 +135,16 @@ public class GAlignFrame extends JInternalFrame
 
   protected JRadioButtonMenuItem BLOSUM62Colour = new JRadioButtonMenuItem();
 
+  protected JRadioButtonMenuItem nucleotideColour = new JRadioButtonMenuItem();
+
+  protected JRadioButtonMenuItem purinePyrimidineColour = new JRadioButtonMenuItem();
+
+  // protected JRadioButtonMenuItem covariationColour = new
+  // JRadioButtonMenuItem();
+
+  protected JRadioButtonMenuItem tcoffeeColour = new JRadioButtonMenuItem();
+  
   JMenuItem njTreeBlosumMenuItem = new JMenuItem();
 
   JMenuItem avDistanceTreeBlosumMenuItem = new JMenuItem();
@@ -149,8 +181,6 @@ public class GAlignFrame extends JInternalFrame
 
   public JCheckBoxMenuItem showSeqFeaturesHeight = new JCheckBoxMenuItem();
 
-  protected JRadioButtonMenuItem nucleotideColour = new JRadioButtonMenuItem();
-
   JMenuItem deleteGroups = new JMenuItem();
 
   JMenuItem delete = new JMenuItem();
@@ -176,7 +206,7 @@ public class GAlignFrame extends JInternalFrame
   JMenuItem epsFile = new JMenuItem();
 
   JMenuItem LoadtreeMenuItem = new JMenuItem();
-
+  
   public JCheckBoxMenuItem scaleAbove = new JCheckBoxMenuItem();
 
   public JCheckBoxMenuItem scaleLeft = new JCheckBoxMenuItem();
@@ -211,12 +241,14 @@ public class GAlignFrame extends JInternalFrame
 
   protected JMenu showProducts = new JMenu();
 
-  public JMenuItem featureSettings = new JMenuItem();
+  public JMenuItem openFeatureSettings = new JMenuItem();
 
   JMenuItem fetchSequence = new JMenuItem();
 
   JMenuItem annotationColour = new JMenuItem();
 
+  protected JMenuItem rnahelicesColour = new JMenuItem();
+
   JMenuItem associatedData = new JMenuItem();
 
   protected JCheckBoxMenuItem autoCalculate = new JCheckBoxMenuItem();
@@ -307,6 +339,8 @@ public class GAlignFrame extends JInternalFrame
 
   protected JCheckBoxMenuItem showSequenceLogo = new JCheckBoxMenuItem();
 
+  protected JCheckBoxMenuItem normaliseSequenceLogo = new JCheckBoxMenuItem();
+
   protected JCheckBoxMenuItem applyAutoAnnotationSettings = new JCheckBoxMenuItem();
 
   private JMenuItem grpsFromSelection = new JMenuItem();
@@ -417,6 +451,9 @@ public class GAlignFrame extends JInternalFrame
     colours.add(PIDColour);
     colours.add(BLOSUM62Colour);
     colours.add(nucleotideColour);
+    colours.add(purinePyrimidineColour);
+    // colours.add(covariationColour);
+    colours.add(tcoffeeColour);
 
     setColourSelected(jalview.bin.Cache
             .getDefault("DEFAULT_COLOUR", "None"));
@@ -486,7 +523,21 @@ public class GAlignFrame extends JInternalFrame
         nucleotideColour.setSelected(true);
 
         break;
+        
+      case ColourSchemeProperty.TCOFFEE:
+       tcoffeeColour.setSelected(true);
+       break;
 
+      case ColourSchemeProperty.PURINEPYRIMIDINE:
+        purinePyrimidineColour.setSelected(true);
+
+        break;
+      /*
+       * case ColourSchemeProperty.COVARIATION:
+       * covariationColour.setSelected(true);
+       * 
+       * break;
+       */
       case ColourSchemeProperty.USER_DEFINED:
         userDefinedColour.setSelected(true);
 
@@ -850,6 +901,31 @@ public class GAlignFrame extends JInternalFrame
         BLOSUM62Colour_actionPerformed(e);
       }
     });
+    nucleotideColour.setText("Nucleotide");
+    nucleotideColour.addActionListener(new java.awt.event.ActionListener()
+    {
+      public void actionPerformed(ActionEvent e)
+      {
+        nucleotideColour_actionPerformed(e);
+      }
+    });
+
+    purinePyrimidineColour.setText("Purine/Pyrimidine");
+    purinePyrimidineColour
+            .addActionListener(new java.awt.event.ActionListener()
+            {
+              public void actionPerformed(ActionEvent e)
+              {
+                purinePyrimidineColour_actionPerformed(e);
+              }
+            });
+    /*
+     * covariationColour.setText("Covariation");
+     * covariationColour.addActionListener(new java.awt.event.ActionListener() {
+     * public void actionPerformed(ActionEvent e) {
+     * covariationColour_actionPerformed(e); } });
+     */
+
     avDistanceTreeBlosumMenuItem.setText("Average Distance Using BLOSUM62");
     avDistanceTreeBlosumMenuItem
             .addActionListener(new java.awt.event.ActionListener()
@@ -1069,6 +1145,16 @@ public class GAlignFrame extends JInternalFrame
       }
 
     });
+    normaliseSequenceLogo.setText("Normalise Consensus Logo");
+    normaliseSequenceLogo.addActionListener(new ActionListener()
+    {
+
+      public void actionPerformed(ActionEvent e)
+      {
+        normaliseSequenceLogo_actionPerformed(e);
+      }
+
+    });
     applyAutoAnnotationSettings.setText("Apply to all groups");
     applyAutoAnnotationSettings.setState(false);
     applyAutoAnnotationSettings.setVisible(true);
@@ -1090,6 +1176,18 @@ public class GAlignFrame extends JInternalFrame
         nucleotideColour_actionPerformed(e);
       }
     });
+    
+    tcoffeeColour.setText("T-Coffee scores");
+    tcoffeeColour.setEnabled(false);
+    tcoffeeColour.addActionListener( new ActionListener() {
+               
+               @Override
+               public void actionPerformed(ActionEvent e) {
+                       tcoffeeColorScheme_actionPerformed(e);
+               }
+       } );
+    
+    
     deleteGroups.setText("Undefine groups");
     deleteGroups.setAccelerator(javax.swing.KeyStroke.getKeyStroke(
             java.awt.event.KeyEvent.VK_U, Toolkit.getDefaultToolkit()
@@ -1202,7 +1300,7 @@ public class GAlignFrame extends JInternalFrame
       }
     });
     LoadtreeMenuItem.setActionCommand("Load a tree for this sequence set");
-    LoadtreeMenuItem.setText("Load Associated Tree");
+    LoadtreeMenuItem.setText("Load Associated Tree"); 
     LoadtreeMenuItem.addActionListener(new java.awt.event.ActionListener()
     {
       public void actionPerformed(ActionEvent e)
@@ -1210,6 +1308,7 @@ public class GAlignFrame extends JInternalFrame
         LoadtreeMenuItem_actionPerformed(e);
       }
     });
+    
     scaleAbove.setVisible(false);
     scaleAbove.setText("Scale Above");
     scaleAbove.addActionListener(new java.awt.event.ActionListener()
@@ -1364,8 +1463,8 @@ public class GAlignFrame extends JInternalFrame
      * public void actionPerformed(ActionEvent e) {
      * showProducts_actionPerformed(e); } });
      */
-    featureSettings.setText("Feature Settings...");
-    featureSettings.addActionListener(new ActionListener()
+    openFeatureSettings.setText("Feature Settings...");
+    openFeatureSettings.addActionListener(new ActionListener()
     {
       public void actionPerformed(ActionEvent e)
       {
@@ -1389,6 +1488,16 @@ public class GAlignFrame extends JInternalFrame
         annotationColour_actionPerformed(e);
       }
     });
+
+    rnahelicesColour.setText("By RNA helices");
+    rnahelicesColour.addActionListener(new ActionListener()
+    {
+      public void actionPerformed(ActionEvent e)
+      {
+        rnahelicesColour_actionPerformed(e);
+      }
+    });
+
     associatedData.setText("Load Features / Annotations");
     associatedData.addActionListener(new ActionListener()
     {
@@ -1729,6 +1838,7 @@ public class GAlignFrame extends JInternalFrame
     autoAnnMenu.add(applyAutoAnnotationSettings);
     autoAnnMenu.add(showConsensusHistogram);
     autoAnnMenu.add(showSequenceLogo);
+    autoAnnMenu.add(normaliseSequenceLogo);
     autoAnnMenu.addSeparator();
     autoAnnMenu.add(showGroupConservation);
     autoAnnMenu.add(showGroupConsensus);
@@ -1737,7 +1847,7 @@ public class GAlignFrame extends JInternalFrame
     viewMenu.add(showSeqFeatures);
     // viewMenu.add(showSeqFeaturesHeight);
 
-    viewMenu.add(featureSettings);
+    viewMenu.add(openFeatureSettings);
     tooltipSettingsMenu.add(showDbRefsMenuitem);
     tooltipSettingsMenu.add(showNpFeatsMenuitem);
     viewMenu.add(tooltipSettingsMenu);
@@ -1760,6 +1870,9 @@ public class GAlignFrame extends JInternalFrame
     colourMenu.add(turnColour);
     colourMenu.add(buriedColour);
     colourMenu.add(nucleotideColour);
+    colourMenu.add(purinePyrimidineColour);
+    // colourMenu.add(covariationColour);
+    colourMenu.add(tcoffeeColour);
     colourMenu.add(userDefinedColour);
     colourMenu.addSeparator();
     colourMenu.add(conservationMenuItem);
@@ -1767,6 +1880,7 @@ public class GAlignFrame extends JInternalFrame
     colourMenu.add(abovePIDThreshold);
     colourMenu.add(modifyPID);
     colourMenu.add(annotationColour);
+    colourMenu.add(rnahelicesColour);
     calculateMenu.add(sort);
     calculateMenu.add(calculateTree);
     calculateMenu.addSeparator();
@@ -1837,6 +1951,12 @@ public class GAlignFrame extends JInternalFrame
     //selectMenu.add(listenToViewSelections);
   }
 
+  protected void normaliseSequenceLogo_actionPerformed(ActionEvent e)
+  {
+    // TODO Auto-generated method stub
+    
+  }
+
   protected void listenToViewSelections_actionPerformed(ActionEvent e)
   {
     // TODO Auto-generated method stub
@@ -2141,6 +2261,14 @@ public class GAlignFrame extends JInternalFrame
   {
   }
 
+  protected void purinePyrimidineColour_actionPerformed(ActionEvent e)
+  {
+  }
+
+  /*
+   * protected void covariationColour_actionPerformed(ActionEvent e) { }
+   */
+
   protected void noColourmenuItem_actionPerformed(ActionEvent e)
   {
   }
@@ -2224,7 +2352,32 @@ public class GAlignFrame extends JInternalFrame
 
   protected void LoadtreeMenuItem_actionPerformed(ActionEvent e)
   {
+
+  }
+  
+  /**
+   * Template method to handle the 'load T-Coffee scores' menu event. 
+   * <p>
+   * Subclasses override this method to provide a custom action.
+   *  
+   * @param event The raised event
+   */
+  protected void loadScores_actionPerformed(ActionEvent event) {
+          
+  }
+  
+
+  /**
+   * Template method to handle the 'Color T-Coffee scores' menu event. 
+   * <p>
+   * Subclasses override this method to provide a custom action.
+   *  
+   * @param event The raised event
+   */
+  protected void tcoffeeColorScheme_actionPerformed(ActionEvent event) {
+         
   }
+  
 
   protected void jpred_actionPerformed(ActionEvent e)
   {
@@ -2293,6 +2446,11 @@ public class GAlignFrame extends JInternalFrame
 
   }
 
+  public void rnahelicesColour_actionPerformed(ActionEvent e)
+  {
+
+  }
+
   public void associatedData_actionPerformed(ActionEvent e)
   {