X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FStructureChooser.java;h=f774c0759d728af9e15dc8bdf3121279ebfe36e8;hb=30df9d507ac08bdb0c09d929252985c66f2f84ef;hp=ae7971c83f711cc4f92d61a10b2cecbdfb79e8ae;hpb=aa96618cbd41b40e2377f3f1f105aea90a5a86e0;p=jalview.git diff --git a/src/jalview/gui/StructureChooser.java b/src/jalview/gui/StructureChooser.java index ae7971c..f774c07 100644 --- a/src/jalview/gui/StructureChooser.java +++ b/src/jalview/gui/StructureChooser.java @@ -21,6 +21,8 @@ package jalview.gui; +import java.util.Locale; + import java.awt.event.ItemEvent; import java.util.ArrayList; import java.util.Collection; @@ -58,6 +60,7 @@ import jalview.structure.StructureMapping; import jalview.structure.StructureSelectionManager; import jalview.util.MessageManager; import jalview.ws.DBRefFetcher; +import jalview.ws.DBRefFetcher.FetchFinishedListenerI; import jalview.ws.seqfetcher.DbSourceProxy; import jalview.ws.sifts.SiftsSettings; @@ -239,18 +242,38 @@ public class StructureChooser extends GStructureChooser @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); + } } }; + final FetchFinishedListenerI afterDbRefFetch = new FetchFinishedListenerI() + { + + @Override + public void finished() + { + // filter has been selected, so we set flag to remove ourselves + notQueriedTDBYet = false; + // new thread to discover structures - via 3d beacons + Executors.defaultThreadFactory().newThread(strucDiscovery).start(); + + } + }; + // fetch db refs if OK pressed - final Runnable discoverCanonicalDBrefs = new Runnable() + final Runnable discoverCanonicalDBrefs = new Runnable() { @Override public void run() @@ -260,42 +283,20 @@ public class StructureChooser extends GStructureChooser final int y = seqsWithoutSourceDBRef.size(); if (y > 0) { - SwingUtilities.invokeLater(new Runnable() { - @Override - public void run() - { - updateProgressIndicator(MessageManager.formatMessage( - "status.fetching_dbrefs_for_sequences_without_valid_refs", - y), progressId); - - } - }); - final SequenceI[] seqWithoutSrcDBRef = seqsWithoutSourceDBRef .toArray(new SequenceI[y]); DBRefFetcher dbRefFetcher = new DBRefFetcher(seqWithoutSrcDBRef, progressBar, new DbSourceProxy[] { new jalview.ws.dbsources.Uniprot() }, null, false); - + dbRefFetcher.addListener(afterDbRefFetch); // ideally this would also gracefully run with callbacks dbRefFetcher.fetchDBRefs(true); + } else { + // call finished action directly + afterDbRefFetch.finished(); } - SwingUtilities.invokeLater(new Runnable() { - @Override - public void run() - { - if (y>0) { - updateProgressIndicator("Fetch complete.", progressId); // todo i18n - } - // filter has been selected, so we set flag to remove ourselves - notQueriedTDBYet = false; - - Executors.defaultThreadFactory().newThread(strucDiscovery).start(); - - } - }); - } + }; final Runnable revertview = new Runnable() { public void run() { @@ -1026,7 +1027,7 @@ public class StructureChooser extends GStructureChooser if (pdbIdStr.split(":").length > 1) { pdbEntry.setId(pdbIdStr.split(":")[0]); - pdbEntry.setChainCode(pdbIdStr.split(":")[1].toUpperCase()); + pdbEntry.setChainCode(pdbIdStr.split(":")[1].toUpperCase(Locale.ROOT)); } else { @@ -1253,7 +1254,7 @@ public class StructureChooser extends GStructureChooser // TODO move this pdb id search into the PDB specific // FTSSearchEngine // for moment, it will work fine as is because it is self-contained - String searchTerm = text.toLowerCase(); + String searchTerm = text.toLowerCase(Locale.ROOT); searchTerm = searchTerm.split(":")[0]; // System.out.println(">>>>> search term : " + searchTerm); List wantedFields = new ArrayList<>();