JAL-3829 right click to view popup menu to show link - maybe better to have a link...
[jalview.git] / src / jalview / jbgui / GStructureChooser.java
index 2a6c1f2..8a72b37 100644 (file)
@@ -39,6 +39,7 @@ import java.awt.Dimension;
 import java.awt.FlowLayout;
 import java.awt.Font;
 import java.awt.GridLayout;
+import java.awt.Point;
 import java.awt.event.ActionEvent;
 import java.awt.event.ActionListener;
 import java.awt.event.ItemEvent;
@@ -244,7 +245,7 @@ public abstract class GStructureChooser extends JPanel
                                       + "...\"")
                       : JvSwingUtils.wrapTooltip(true, toolTipText)));
       return toolTipText;
-    }
+    }    
   };
 
   public GStructureChooser()
@@ -306,15 +307,42 @@ public abstract class GStructureChooser extends JPanel
     tbl_summary.addMouseListener(new MouseAdapter()
     {
       @Override
+      public void mousePressed(MouseEvent e)
+      {
+        if (!popupAction(e))
+        {
+          super.mousePressed(e);
+        }
+      }
+      @Override
       public void mouseClicked(MouseEvent e)
       {
-        validateSelections();
+        if (!popupAction(e))
+        {
+          validateSelections();
+        }
       }
 
       @Override
       public void mouseReleased(MouseEvent e)
       {
+        if (!popupAction(e))
+        {
         validateSelections();
+        }
+      }
+      boolean popupAction(MouseEvent e)
+      {
+       if (e.isPopupTrigger())
+       {
+         Point pt = e.getPoint();
+         int selectedRow = tbl_summary.rowAtPoint(pt);
+         if (showPopupFor(selectedRow))
+         {
+           return true;
+         }
+       }
+       return false;
       }
     });
     tbl_summary.addKeyListener(new KeyAdapter()
@@ -666,6 +694,7 @@ public abstract class GStructureChooser extends JPanel
   }
 
 
+protected abstract boolean showPopupFor(int selectedRow);
 protected void closeAction(int preferredHeight)
   {
     // System.out.println(">>>>>>>>>> closing internal frame!!!");