JAL-1367 entry in sequence ID popup menu to set/unset sequence as representative
[jalview.git] / src / jalview / appletgui / APopupMenu.java
index 1bfc0b3..daf5457 100755 (executable)
@@ -18,7 +18,6 @@
 package jalview.appletgui;
 
 import java.util.*;
-
 import java.awt.*;
 import java.awt.event.*;
 
@@ -469,6 +468,10 @@ public class APopupMenu extends java.awt.PopupMenu implements
     {
       editName();
     }
+    else if (source == makeReferenceSeq)
+    {
+      makeReferenceSeq_actionPerformed();
+    }
     else if (source == sequenceDetails)
     {
       showSequenceDetails();
@@ -844,6 +847,7 @@ public class APopupMenu extends java.awt.PopupMenu implements
     toLower.addActionListener(this);
     editMenu.add(toggleCase);
     seqMenu.add(sequenceName);
+    seqMenu.add(makeReferenceSeq);
     // seqMenu.add(sequenceDetails);
 
     if (!ap.av.applet.useXtrnalSviewer)
@@ -863,6 +867,7 @@ public class APopupMenu extends java.awt.PopupMenu implements
     repGroup.addActionListener(this);
     revealAll.addActionListener(this);
     revealSeq.addActionListener(this);
+    makeReferenceSeq.addActionListener(this);
   }
 
   void refresh()
@@ -1046,6 +1051,28 @@ public class APopupMenu extends java.awt.PopupMenu implements
     getGroup().setDisplayText(showText.getState());
     refresh();
   }
+  public void makeReferenceSeq_actionPerformed()
+  {
+    if (!ap.av.getAlignment().hasSeqrep())
+    {
+      // initialise the display flags so the user sees something happen
+      ap.av.setDisplayReferenceSeq(true);
+      ap.av.setColourByReferenceSeq(true);
+      ap.av.getAlignment().setSeqrep(seq);
+    }
+    else
+    {
+      if (ap.av.getAlignment().getSeqrep() == seq)
+      {
+        ap.av.getAlignment().setSeqrep(null);
+      }
+      else
+      {
+        ap.av.getAlignment().setSeqrep(seq);
+      }
+    }
+    refresh();
+  }
 
   public void showNonconserved_itemStateChanged()
   {