Prepare for launchFullApplication
[jalview.git] / src / jalview / appletgui / APopupMenu.java
index 6393f74..1c9b3cd 100755 (executable)
@@ -58,6 +58,7 @@ public class APopupMenu
   MenuItem cut = new MenuItem("Cut (Jalview Only)");\r
   MenuItem toUpper = new MenuItem("To Upper Case");\r
   MenuItem toLower = new MenuItem("To Lower Case");\r
+  MenuItem toggleCase = new MenuItem("Toggle Case");\r
 \r
   public APopupMenu(AlignmentPanel apanel, final Sequence seq, Vector links)\r
   {\r
@@ -86,18 +87,19 @@ public class APopupMenu
       showText.setState(sg.getDisplayText());\r
       showColourText.setState(sg.getColourText());\r
       showBoxes.setState(sg.getDisplayBoxes());\r
+      if (!ap.av.alignment.getGroups().contains(sg))\r
+      {\r
+        groupMenu.remove(unGroupMenuItem);\r
+      }\r
+\r
     }\r
     else\r
     {\r
       remove(groupMenu);\r
+      remove(editMenu);\r
     }\r
 \r
-    if (!ap.av.alignment.getGroups().contains(sg))\r
-    {\r
-      groupMenu.remove(unGroupMenuItem);\r
-    }\r
-\r
-    if (seq != null && links!=null)\r
+    if (links!=null)\r
     {\r
       Menu linkMenu = new Menu("Link");\r
       MenuItem item;\r
@@ -107,13 +109,22 @@ public class APopupMenu
         link = links.elementAt(i).toString();\r
         final String target = link.substring(0, link.indexOf("|"));\r
         item = new MenuItem(target);\r
-        String id = seq.getName();\r
-        if(id.indexOf("|")>-1)\r
-             id = id.substring(id.lastIndexOf("|")+1);\r
 \r
-        final String url = link.substring(link.indexOf("|")+1, link.indexOf("$SEQUENCE_ID$"))\r
-               + id +\r
-               link.substring(link.indexOf("$SEQUENCE_ID$") + 13);\r
+        final String url;\r
+\r
+        if (link.indexOf("$SEQUENCE_ID$") > -1)\r
+        {\r
+          String id = seq.getName();\r
+          if (id.indexOf("|") > -1)\r
+            id = id.substring(id.lastIndexOf("|") + 1);\r
+\r
+          url = link.substring(link.indexOf("|") + 1,\r
+                               link.indexOf("$SEQUENCE_ID$"))\r
+              + id +\r
+              link.substring(link.indexOf("$SEQUENCE_ID$") + 13);\r
+        }\r
+        else\r
+          url = link.substring(link.lastIndexOf("|")+1);\r
 \r
            item.addActionListener(new java.awt.event.ActionListener()\r
            {\r
@@ -126,18 +137,19 @@ public class APopupMenu
       }\r
       add(linkMenu);\r
 \r
-      item = new MenuItem("Show PDB Structure");\r
-      item.addActionListener(new java.awt.event.ActionListener()\r
-           {\r
-               public void actionPerformed(ActionEvent e)\r
-               {\r
-                  addPDB(seq);\r
-               }\r
-           });\r
-\r
-      add(item);\r
-\r
+      if(seq!=null)\r
+      {\r
+        item = new MenuItem("Show PDB Structure");\r
+        item.addActionListener(new java.awt.event.ActionListener()\r
+        {\r
+          public void actionPerformed(ActionEvent e)\r
+          {\r
+            addPDB(seq);\r
+          }\r
+        });\r
 \r
+        add(item);\r
+      }\r
     }\r
   }\r
 \r
@@ -192,28 +204,18 @@ public class APopupMenu
       ap.alignFrame.copy_actionPerformed();\r
     else if(source==cut)\r
       ap.alignFrame.cut_actionPerformed();\r
-    else if(source==toUpper)\r
-    {\r
-      SequenceGroup sg = ap.av.getSelectionGroup();\r
-      if (sg != null)\r
-      {\r
-        for (int g = 0; g < sg.getSize(); g++)\r
-        {\r
-          sg.getSequenceAt(g).changeCase(true, sg.getStartRes(),\r
-                                         sg.getEndRes() + 1);\r
-        }\r
-        ap.seqPanel.seqCanvas.repaint();\r
-      }\r
-    }\r
-    else if(source==toLower)\r
+    else if(source==toUpper || source==toLower || source==toggleCase)\r
     {\r
       SequenceGroup sg = ap.av.getSelectionGroup();\r
       if (sg != null)\r
       {\r
         for (int g = 0; g < sg.getSize(); g++)\r
         {\r
-          sg.getSequenceAt(g).changeCase(false, sg.getStartRes(),\r
-                                         sg.getEndRes() + 1);\r
+          if (source == toggleCase)\r
+            sg.getSequenceAt(g).toggleCase(sg.getStartRes(), sg.getEndRes() + 1);\r
+          else\r
+            sg.getSequenceAt(g).changeCase(source == toUpper, sg.getStartRes(),\r
+                                           sg.getEndRes() + 1);\r
         }\r
         ap.seqPanel.seqCanvas.repaint();\r
       }\r
@@ -316,6 +318,8 @@ public class APopupMenu
     toUpper.addActionListener(this);\r
     editMenu.add(toLower);\r
     toLower.addActionListener(this);\r
+    editMenu.add(toggleCase);\r
+    toggleCase.addActionListener(this);\r
 \r
   }\r
 \r