update author list in license for (JAL-826)
[jalview.git] / src / jalview / gui / AlignFrame.java
index b9ba4e0..9b91255 100755 (executable)
@@ -1,6 +1,6 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.6)
- * Copyright (C) 2010 J Procter, AM Waterhouse, G Barton, M Clamp, S Searle
+ * Jalview - A Sequence Alignment Editor and Viewer (Version 2.7)
+ * Copyright (C) 2011 J Procter, AM Waterhouse, J Engelhardt, LM Lui, G Barton, M Clamp, S Searle
  * 
  * This file is part of Jalview.
  * 
@@ -65,6 +65,7 @@ import jalview.schemes.HelixColourScheme;
 import jalview.schemes.HydrophobicColourScheme;
 import jalview.schemes.NucleotideColourScheme;
 import jalview.schemes.PIDColourScheme;
+import jalview.schemes.PurinePyrimidineColourScheme;
 import jalview.schemes.ResidueProperties;
 import jalview.schemes.StrandColourScheme;
 import jalview.schemes.TaylorColourScheme;
@@ -401,7 +402,22 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
                     || evt.isShiftDown() || evt.isAltDown());
           }
           break;
-
+          
+        //case KeyEvent.VK_A:
+       //      if (viewport.cursorMode)
+       //     {
+       //              alignPanel.seqPanel.insertNucAtCursor(false,"A");
+       //              //System.out.println("A");
+       //     }
+       //      break;
+        /*     
+        case KeyEvent.VK_CLOSE_BRACKET:
+               if (viewport.cursorMode)
+            {
+                       System.out.println("closing bracket");
+            }
+               break;
+         */
         case KeyEvent.VK_DELETE:
         case KeyEvent.VK_BACK_SPACE:
           if (!viewport.cursorMode)
@@ -574,6 +590,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
       }
       ap.av.updateConservation(ap);
       ap.av.updateConsensus(ap);
+      ap.av.updateStrucConsensus(ap);
     }
   }
 
@@ -645,11 +662,14 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
     conservationMenuItem.setEnabled(!nucleotide);
     modifyConservation.setEnabled(!nucleotide);
     showGroupConservation.setEnabled(!nucleotide);
+    rnahelicesColour.setEnabled(nucleotide);
+    purinePyrimidineColour.setEnabled(nucleotide);
     // Remember AlignFrame always starts as protein
-    if (!nucleotide)
-    {
-      calculateMenu.remove(calculateMenu.getItemCount() - 2);
-    }
+    //if (!nucleotide)
+   // {
+   //   showTr
+   //   calculateMenu.remove(calculateMenu.getItemCount() - 2);
+   // }
   }
 
   /**
@@ -699,7 +719,11 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
     applyToAllGroups.setState(av.colourAppliesToAllGroups);
     showNpFeatsMenuitem.setSelected(av.isShowNpFeats());
     showDbRefsMenuitem.setSelected(av.isShowDbRefs());
-
+    autoCalculate.setSelected(av.autoCalculateConsensus);
+    sortByTree.setSelected(av.sortByTree);
+    listenToViewSelections.setSelected(av.followSelection);
+    rnahelicesColour.setEnabled(av.alignment.hasRNAStructure());
+    rnahelicesColour.setSelected(av.getGlobalColourScheme() instanceof jalview.schemes.RNAHelicesColour);
     setShowProductsEnabled();
 
     updateEditMenuBar();
@@ -2965,10 +2989,25 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
     changeColour(new NucleotideColourScheme());
   }
 
+  public void purinePyrimidineColour_actionPerformed(ActionEvent e)
+  {
+    changeColour(new PurinePyrimidineColourScheme());
+  }
+  /*
+  public void covariationColour_actionPerformed(ActionEvent e)
+  {
+    changeColour(new CovariationColourScheme(viewport.alignment.getAlignmentAnnotation()[0]));
+  }
+  */
   public void annotationColour_actionPerformed(ActionEvent e)
   {
     new AnnotationColourChooser(viewport, alignPanel);
   }
+  
+  public void rnahelicesColour_actionPerformed(ActionEvent e)
+  {
+    new RNAHelicesColourChooser(viewport, alignPanel);
+  }
 
   /**
    * DOCUMENT ME!
@@ -3420,7 +3459,16 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
               .getAlignment().getSequences());
     }
   }
+  public void sortByTreeOption_actionPerformed(ActionEvent e)
+  {
+    viewport.sortByTree = sortByTree.isSelected();
+  }
 
+  @Override
+  protected void listenToViewSelections_actionPerformed(ActionEvent e)
+  {
+    viewport.followSelection = listenToViewSelections.isSelected();
+  }
   /**
    * DOCUMENT ME!
    * 
@@ -3703,21 +3751,16 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
 
     for (i = 0; i < treePanels.size(); i++)
     {
-      TreePanel tp = (TreePanel) treePanels.elementAt(i);
+      final TreePanel tp = (TreePanel) treePanels.elementAt(i);
       final JMenuItem item = new JMenuItem(tp.getTitle());
       final NJTree tree = ((TreePanel) treePanels.elementAt(i)).getTree();
       item.addActionListener(new java.awt.event.ActionListener()
       {
         public void actionPerformed(ActionEvent e)
         {
-          SequenceI[] oldOrder = viewport.getAlignment()
-                  .getSequencesArray();
-          AlignmentSorter.sortByTree(viewport.getAlignment(), tree);
-
-          addHistoryItem(new OrderCommand("Tree Sort", oldOrder,
-                  viewport.alignment));
-
-          alignPanel.paintAlignment(true);
+          tp.sortByTree_actionPerformed(null);
+          addHistoryItem(tp.sortAlignmentIn(alignPanel));
+          
         }
       });
 
@@ -3968,18 +4011,19 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
                   "Sequence Database Search");
           final JMenu analymenu = new JMenu(
                   "Analysis");
-          
-          if (Cache.getDefault("SHOW_JWS1_SERVICES", true)
-                  && Discoverer.services != null
+          // JAL-940 - only show secondary structure prediction services from the legacy server
+          if (// Cache.getDefault("SHOW_JWS1_SERVICES", true)
+                  // && 
+                  Discoverer.services != null
                   && (Discoverer.services.size() > 0))
           {
             // TODO: refactor to allow list of AbstractName/Handler bindings to
             // be
             // stored or retrieved from elsewhere
-            Vector msaws = (Vector) Discoverer.services.get("MsaWS");
+            Vector msaws = null; // (Vector) Discoverer.services.get("MsaWS");
             Vector secstrpr = (Vector) Discoverer.services
                     .get("SecStrPred");
-            Vector seqsrch = (Vector) Discoverer.services.get("SeqSearch");
+            Vector seqsrch = null; // (Vector) Discoverer.services.get("SeqSearch");
             // TODO: move GUI generation code onto service implementation - so a
             // client instance attaches itself to the GUI with method call like
             // jalview.ws.MsaWSClient.bind(servicehandle, Desktop.instance,