JAL-1384 Create Group in selection popup menu
[jalview.git] / src / jalview / appletgui / APopupMenu.java
index c71818e..8302282 100755 (executable)
@@ -69,6 +69,8 @@ public class APopupMenu extends java.awt.PopupMenu implements
 
   MenuItem unGroupMenuItem = new MenuItem();
 
+  MenuItem createGroupMenuItem = new MenuItem();
+
   MenuItem nucleotideMenuItem = new MenuItem();
 
   Menu colourMenu = new Menu();
@@ -166,7 +168,11 @@ public class APopupMenu extends java.awt.PopupMenu implements
       displayNonconserved.setState(sg.getShowNonconserved());
       if (!ap.av.getAlignment().getGroups().contains(sg))
       {
+        menu1.setLabel("Edit New Group");
         groupMenu.remove(unGroupMenuItem);
+      } else {
+        menu1.setLabel("Edit Group");
+        groupMenu.remove(createGroupMenuItem);
       }
 
     }
@@ -457,6 +463,11 @@ public class APopupMenu extends java.awt.PopupMenu implements
       unGroupMenuItem_actionPerformed();
     }
 
+    else if (source == createGroupMenuItem)
+    {
+      createGroupMenuItem_actionPerformed();
+    }
+
     else if (source == sequenceName)
     {
       editName();
@@ -730,7 +741,6 @@ public class APopupMenu extends java.awt.PopupMenu implements
 
   private void jbInit() throws Exception
   {
-    groupMenu.setLabel("Group");
     groupMenu.setLabel("Selection");
     sequenceFeature.addActionListener(this);
 
@@ -738,6 +748,9 @@ public class APopupMenu extends java.awt.PopupMenu implements
     unGroupMenuItem.setLabel("Remove Group");
     unGroupMenuItem.addActionListener(this);
 
+    createGroupMenuItem.setLabel("Create Group");
+    createGroupMenuItem.addActionListener(this);
+    
     nucleotideMenuItem.setLabel("Nucleotide");
     nucleotideMenuItem.addActionListener(this);
     conservationMenuItem.addItemListener(this);
@@ -770,10 +783,11 @@ public class APopupMenu extends java.awt.PopupMenu implements
     this.add(revealSeq);
     this.add(revealAll);
     // groupMenu.add(selSeqDetails);
-    groupMenu.add(editGroupName);
     groupMenu.add(editMenu);
     groupMenu.add(outputmenu);
     groupMenu.add(sequenceFeature);
+    groupMenu.add(createGroupMenuItem);
+    groupMenu.add(unGroupMenuItem);
     groupMenu.add(menu1);
 
     colourMenu.add(noColourmenuItem);
@@ -843,7 +857,7 @@ public class APopupMenu extends java.awt.PopupMenu implements
       seqMenu.add(pdb);
     }
     seqMenu.add(repGroup);
-    menu1.add(unGroupMenuItem);
+    menu1.add(editGroupName);
     menu1.add(colourMenu);
     menu1.add(showBoxes);
     menu1.add(showText);
@@ -1027,6 +1041,12 @@ public class APopupMenu extends java.awt.PopupMenu implements
     ap.paintAlignment(true);
   }
 
+  void createGroupMenuItem_actionPerformed()
+  {
+    getGroup(); // implicitly create group
+    refresh();
+  }
+
   public void showColourText_itemStateChanged()
   {
     getGroup().setColourText(showColourText.getState());