JAL-3829 open web page for 3d beacons structure by right-clicking and selecting pop...
[jalview.git] / src / jalview / gui / StructureChooser.java
index 694b063..4807489 100644 (file)
@@ -37,6 +37,7 @@ import javax.swing.JComboBox;
 import javax.swing.JLabel;
 import javax.swing.JMenu;
 import javax.swing.JMenuItem;
+import javax.swing.JPopupMenu;
 import javax.swing.JTable;
 import javax.swing.SwingUtilities;
 import javax.swing.table.AbstractTableModel;
@@ -798,25 +799,18 @@ public class StructureChooser extends GStructureChooser
   }
 
   @Override
-  protected boolean showPopupFor(int selectedRow)
+  protected boolean showPopupFor(int selectedRow, int x, int y)
   {
     FilterOption selectedFilterOpt = ((FilterOption) cmb_filterOption
             .getSelectedItem());
     String currentView = selectedFilterOpt.getView();
+     
     if (currentView == VIEWS_FILTER && data instanceof ThreeDBStructureChooserQuerySource)
     {
-      TDB_FTSData row=null;
       
-      int i=1;
-      for (FTSData el:discoveredStructuresSet) {
-        if (i==selectedRow) {
-          row = (TDB_FTSData) el;
-          break;
-        }
-        i++;
-      }
+      TDB_FTSData row=((ThreeDBStructureChooserQuerySource)data).getFTSDataFor(getResultTable(), selectedRow, discoveredStructuresSet);
       String pageUrl = row.getModelViewUrl(); 
-      JMenu popup = new JMenu("3D Beacons");
+      JPopupMenu popup = new JPopupMenu("3D Beacons");
       JMenuItem viewUrl = new JMenuItem("View model web page");
       viewUrl.addActionListener(
               new ActionListener() {
@@ -829,7 +823,7 @@ public class StructureChooser extends GStructureChooser
               );
       popup.add(viewUrl);
       SwingUtilities.invokeLater(new Runnable()  {
-        public void run() { popup.setVisible(true); }
+        public void run() { popup.show(getResultTable(), x, y); }
       });
       return true;
     }