Merge branch 'develop' into features/r2_11_2/JAL-3829_3dbeacons
authorJim Procter <j.procter@dundee.ac.uk>
Fri, 1 Oct 2021 09:35:08 +0000 (10:35 +0100)
committerJim Procter <j.procter@dundee.ac.uk>
Fri, 1 Oct 2021 09:35:08 +0000 (10:35 +0100)
1  2 
src/jalview/gui/StructureChooser.java

  
  package jalview.gui;
  
 -import java.util.Locale;
 -
 +import java.awt.event.ActionEvent;
 +import java.awt.event.ActionListener;
  import java.awt.event.ItemEvent;
  import java.util.ArrayList;
  import java.util.Collection;
  import java.util.HashSet;
  import java.util.LinkedHashSet;
  import java.util.List;
 +import java.util.Locale;
  import java.util.concurrent.Executors;
  
  import javax.swing.JCheckBox;
  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;
@@@ -54,7 -50,6 +54,7 @@@ import jalview.fts.core.FTSDataColumnPr
  import jalview.fts.core.FTSRestRequest;
  import jalview.fts.core.FTSRestResponse;
  import jalview.fts.service.pdb.PDBFTSRestClient;
 +import jalview.fts.service.threedbeacons.TDB_FTSData;
  import jalview.gui.structurechooser.PDBStructureChooserQuerySource;
  import jalview.gui.structurechooser.StructureChooserQuerySource;
  import jalview.gui.structurechooser.ThreeDBStructureChooserQuerySource;
@@@ -247,13 -242,19 +247,19 @@@ public class StructureChooser extends G
        @Override
        public void run()
        {
+         progressBar.setProgressBar("status.searching_3d_beacons", progressId);
          // TODO: warn if no accessions discovered
          populateSeqsWithoutSourceDBRef();
          // redo initial discovery - this time with 3d beacons
          // Executors.
          previousWantedFields=null;
-         
          initialStructureDiscovery();
+         if (!isStructuresDiscovered())
+         {
+           progressBar.setProgressBar("status.no_structures_discovered_from_3d_beacons", progressId);
+         } else {
+           progressBar.setProgressBar(null, progressId);
+         }
        }
      };
  
              .setEnabled(selectedCount > 1 || targetView.getItemCount() > 0);
    }
  
 +  @Override
 +  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=((ThreeDBStructureChooserQuerySource)data).getFTSDataFor(getResultTable(), selectedRow, discoveredStructuresSet);
 +      String pageUrl = row.getModelViewUrl(); 
 +      JPopupMenu popup = new JPopupMenu("3D Beacons");
 +      JMenuItem viewUrl = new JMenuItem("View model web page");
 +      viewUrl.addActionListener(
 +              new ActionListener() {
 +                @Override
 +                public void actionPerformed(ActionEvent e)
 +                {
 +                  Desktop.showUrl(pageUrl);
 +                }
 +              }
 +              );
 +      popup.add(viewUrl);
 +      SwingUtilities.invokeLater(new Runnable()  {
 +        public void run() { popup.show(getResultTable(), x, y); }
 +      });
 +      return true;
 +    }
 +    // event not handled by us
 +    return false;
 +  }
    /**
     * Validates inputs from the Manual PDB entry panel
     */