JAL-2282 Link menu disabled if there are no valid links
authorkiramt <k.mourao@dundee.ac.uk>
Thu, 3 Nov 2016 20:58:08 +0000 (20:58 +0000)
committerkiramt <k.mourao@dundee.ac.uk>
Thu, 3 Nov 2016 20:58:08 +0000 (20:58 +0000)
src/jalview/appletgui/APopupMenu.java
src/jalview/gui/PopupMenu.java
test/jalview/gui/PopupMenuTest.java

index d625f78..1ff0ac1 100644 (file)
@@ -335,17 +335,25 @@ public class APopupMenu extends java.awt.PopupMenu implements
 
     addshowLinks(linkMenu, linkset.values());
 
+    // disable link menu if there are no valid entries
     if (linkMenu.getItemCount() > 0)
     {
-      if (seq != null)
-      {
-        seqMenu.add(linkMenu);
-      }
-      else
-      {
-        add(linkMenu);
-      }
+      linkMenu.setEnabled(true);
+    }
+    else
+    {
+      linkMenu.setEnabled(false);
     }
+
+    if (seq != null)
+    {
+      seqMenu.add(linkMenu);
+    }
+    else
+    {
+      add(linkMenu);
+    }
+
   }
 
   private void addshowLinks(Menu linkMenu, Collection<List<String>> linkset)
index b342f86..bb816cd 100644 (file)
@@ -641,6 +641,16 @@ public class PopupMenu extends JPopupMenu
 
     addshowLinks(linkMenu, linkset.values());
 
+    // disable link menu if there are no valid entries
+    if (linkMenu.getItemCount() > 0)
+    {
+      linkMenu.setEnabled(true);
+    }
+    else
+    {
+      linkMenu.setEnabled(false);
+    }
+
     if (sequence != null)
     {
       sequenceMenu.add(linkMenu);
@@ -649,6 +659,7 @@ public class PopupMenu extends JPopupMenu
     {
       add(linkMenu);
     }
+
   }
 
 
index 7b1eac1..14354ff 100644 (file)
@@ -534,6 +534,16 @@ public class PopupMenuTest
               ((JMenuItem) linkItems[i]).getText().split("\\|")[1]);
     }
 
+    // if there are no valid links the Links submenu is disabled
+    List<String> nomatchlinks = new ArrayList<String>();
+    nomatchlinks.add("NOMATCH | http://www.uniprot.org/uniprot/$"
+            + DB_ACCESSION + "$");
+
+    testee = new PopupMenu(parentPanel, (Sequence) seqs.get(0),
+            nomatchlinks);
+    seqItems = testee.sequenceMenu.getMenuComponents();
+    linkMenu = (JMenu) seqItems[6];
+    assertFalse(linkMenu.isEnabled());
 
   }
 }