apply version 2.7 copyright
[jalview.git] / src / jalview / appletgui / APopupMenu.java
index f4b3903..7e17cc5 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, G Barton, M Clamp, S Searle
  * 
  * This file is part of Jalview.
  * 
@@ -112,6 +112,11 @@ public class APopupMenu extends java.awt.PopupMenu implements
 
   MenuItem revealAll = new MenuItem();
 
+  MenuItem revealSeq = new MenuItem();
+  /**
+   * index of sequence to be revealed
+   */
+  int revealSeq_index=-1;
   Menu menu1 = new Menu();
 
   public APopupMenu(AlignmentPanel apanel, final Sequence seq, Vector links)
@@ -147,7 +152,7 @@ public class APopupMenu extends java.awt.PopupMenu implements
 
     if (sg != null && sg.getSize() > 0)
     {
-      editGroupName.setLabel(sg.getName());
+      editGroupName.setLabel("Name: "+sg.getName());
       showText.setState(sg.getDisplayText());
       showColourText.setState(sg.getColourText());
       showBoxes.setState(sg.getDisplayBoxes());
@@ -164,7 +169,7 @@ public class APopupMenu extends java.awt.PopupMenu implements
       remove(groupMenu);
     }
 
-    if (links != null && links.size() > 0)
+    if (seq!=null && links != null && links.size() > 0)
     {
       Menu linkMenu = new Menu("Link");
       String link;
@@ -180,13 +185,13 @@ public class APopupMenu extends java.awt.PopupMenu implements
         final String target = urlLink.getTarget(); // link.substring(0,
         // link.indexOf("|"));
         final String label = urlLink.getLabel();
-        if (urlLink.isDynamic())
+        if (seq!=null && urlLink.isDynamic())
         {
 
           // collect matching db-refs
-          DBRefEntry[] dbr = jalview.util.DBRefUtils.selectRefs(seq
-                  .getDBRef(), new String[]
-          { target });
+          DBRefEntry[] dbr = jalview.util.DBRefUtils.selectRefs(
+                  seq.getDBRef(), new String[]
+                  { target });
           // collect id string too
           String id = seq.getName();
           String descr = seq.getDescription();
@@ -298,6 +303,17 @@ public class APopupMenu extends java.awt.PopupMenu implements
     if (!ap.av.hasHiddenRows)
     {
       remove(revealAll);
+      remove(revealSeq);
+    } else {
+      final int index = ap.av.alignment.findIndex(seq);
+
+      if (ap.av.adjustForHiddenSeqs(index)
+              - ap.av.adjustForHiddenSeqs(index - 1) > 1)
+      {
+        revealSeq_index=index;
+      } else {
+        remove(revealSeq);
+      }
     }
   }
 
@@ -446,6 +462,10 @@ public class APopupMenu extends java.awt.PopupMenu implements
     {
       hideSequences(true);
     }
+    else if (source == revealSeq)
+    {
+      ap.av.showSequence(revealSeq_index);
+    }
     else if (source == revealAll)
     {
       ap.av.showAllHiddenSeqs();
@@ -492,8 +512,8 @@ public class APopupMenu extends java.awt.PopupMenu implements
         {
           EditCommand editCommand = new EditCommand("Edit Sequences",
                   EditCommand.REPLACE, dialog.getName().replace(' ',
-                          ap.av.getGapCharacter()), sg
-                          .getSequencesAsArray(ap.av.hiddenRepSequences),
+                          ap.av.getGapCharacter()),
+                  sg.getSequencesAsArray(ap.av.hiddenRepSequences),
                   sg.getStartRes(), sg.getEndRes() + 1, ap.av.alignment);
 
           ap.alignFrame.addHistoryItem(editCommand);
@@ -630,19 +650,20 @@ public class APopupMenu extends java.awt.PopupMenu implements
 
     Frame frame = new Frame();
     frame.add(cap);
-    jalview.bin.JalviewLite.addFrame(frame, "Selection output - "
-            + e.getActionCommand(), 600, 500);
+    jalview.bin.JalviewLite.addFrame(frame,
+            "Selection output - " + e.getActionCommand(), 600, 500);
 
-    cap.setText(new jalview.io.AppletFormatAdapter().formatSequences(e
-            .getActionCommand(), new Alignment(ap.av
-            .getSelectionAsNewSequence()), ap.av.showJVSuffix));
+    cap.setText(new jalview.io.AppletFormatAdapter().formatSequences(
+            e.getActionCommand(),
+            new Alignment(ap.av.getSelectionAsNewSequence()),
+            ap.av.showJVSuffix));
 
   }
 
   void editName()
   {
-    EditNameDialog dialog = new EditNameDialog(seq.getName(), seq
-            .getDescription(), "       Sequence Name",
+    EditNameDialog dialog = new EditNameDialog(seq.getName(),
+            seq.getDescription(), "       Sequence Name",
             "Sequence Description", ap.alignFrame,
             "Edit Sequence Name / Description", 500, 100, true);
 
@@ -675,7 +696,7 @@ public class APopupMenu extends java.awt.PopupMenu implements
       cap.setPDBImport(seq);
       Frame frame = new Frame();
       frame.add(cap);
-      jalview.bin.JalviewLite.addFrame(frame, "Paste PDB file ", 400, 300);
+      jalview.bin.JalviewLite.addFrame(frame, "Paste PDB file for sequence "+seq.getName(), 400, 300);
     }
   }
 
@@ -711,10 +732,12 @@ public class APopupMenu extends java.awt.PopupMenu implements
     hideSeqs.setLabel("Hide Sequences");
     repGroup.setLabel("Represent Group with");
     revealAll.setLabel("Reveal All");
+    revealSeq.setLabel("Reveal Sequences");
     menu1.setLabel("Group");
     add(groupMenu);
     this.add(seqMenu);
     this.add(hideSeqs);
+    this.add(revealSeq);
     this.add(revealAll);
     groupMenu.add(editGroupName);
     groupMenu.add(editMenu);
@@ -782,7 +805,10 @@ public class APopupMenu extends java.awt.PopupMenu implements
     toLower.addActionListener(this);
     editMenu.add(toggleCase);
     seqMenu.add(sequenceName);
-    seqMenu.add(pdb);
+    if (!ap.av.applet.useXtrnalSviewer)
+    {
+      seqMenu.add(pdb);
+    }
     seqMenu.add(repGroup);
     menu1.add(unGroupMenuItem);
     menu1.add(colourMenu);
@@ -795,6 +821,7 @@ public class APopupMenu extends java.awt.PopupMenu implements
     hideSeqs.addActionListener(this);
     repGroup.addActionListener(this);
     revealAll.addActionListener(this);
+    revealSeq.addActionListener(this);
   }
 
   void refresh()
@@ -805,9 +832,9 @@ public class APopupMenu extends java.awt.PopupMenu implements
   protected void clustalColour_actionPerformed()
   {
     SequenceGroup sg = getGroup();
-    sg.cs = new ClustalxColourScheme(sg
-            .getSequences(ap.av.hiddenRepSequences), ap.av.alignment
-            .getWidth());
+    sg.cs = new ClustalxColourScheme(
+            sg.getSequences(ap.av.hiddenRepSequences),
+            ap.av.alignment.getWidth());
     refresh();
   }
 
@@ -869,9 +896,9 @@ public class APopupMenu extends java.awt.PopupMenu implements
 
     if (abovePIDColour.getState())
     {
-      sg.cs.setConsensus(AAFrequency.calculate(sg
-              .getSequences(ap.av.hiddenRepSequences), 0, ap.av.alignment
-              .getWidth()));
+      sg.cs.setConsensus(AAFrequency.calculate(
+              sg.getSequences(ap.av.hiddenRepSequences), 0,
+              ap.av.alignment.getWidth()));
       int threshold = SliderPanel.setPIDSliderSource(ap, sg.cs, getGroup()
               .getName());
 
@@ -899,9 +926,9 @@ public class APopupMenu extends java.awt.PopupMenu implements
   {
     SequenceGroup sg = getGroup();
     sg.cs = new PIDColourScheme();
-    sg.cs.setConsensus(AAFrequency.calculate(sg
-            .getSequences(ap.av.hiddenRepSequences), 0, ap.av.alignment
-            .getWidth()));
+    sg.cs.setConsensus(AAFrequency.calculate(
+            sg.getSequences(ap.av.hiddenRepSequences), 0,
+            ap.av.alignment.getWidth()));
     refresh();
   }
 
@@ -911,9 +938,9 @@ public class APopupMenu extends java.awt.PopupMenu implements
 
     sg.cs = new Blosum62ColourScheme();
 
-    sg.cs.setConsensus(AAFrequency.calculate(sg
-            .getSequences(ap.av.hiddenRepSequences), 0, ap.av.alignment
-            .getWidth()));
+    sg.cs.setConsensus(AAFrequency.calculate(
+            sg.getSequences(ap.av.hiddenRepSequences), 0,
+            ap.av.alignment.getWidth()));
 
     refresh();
   }
@@ -936,8 +963,8 @@ public class APopupMenu extends java.awt.PopupMenu implements
     {
 
       Conservation c = new Conservation("Group",
-              ResidueProperties.propHash, 3, sg
-                      .getSequences(ap.av.hiddenRepSequences), 0,
+              ResidueProperties.propHash, 3,
+              sg.getSequences(ap.av.hiddenRepSequences), 0,
               ap.av.alignment.getWidth());
 
       c.calculate();
@@ -1033,6 +1060,7 @@ public class APopupMenu extends java.awt.PopupMenu implements
     }
 
     ap.av.hideSequence(hseqs);
+    ap.av.sendSelection();
   }
 
 }