X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FStructureChooser.java;h=6fce9847e02af1843fdfa933bb9e0f93a38610b3;hb=e67a74ee1dac618d941fce0fc5ef4561f76380b1;hp=6c68ee6b0a0026f171bd95fcb634d1eba78e7b7b;hpb=beb2fee66dde629e3bbb7febb38d0116e1a64df2;p=jalview.git diff --git a/src/jalview/gui/StructureChooser.java b/src/jalview/gui/StructureChooser.java index 6c68ee6..6fce984 100644 --- a/src/jalview/gui/StructureChooser.java +++ b/src/jalview/gui/StructureChooser.java @@ -33,7 +33,6 @@ import java.util.LinkedHashSet; import java.util.List; import java.util.Locale; import java.util.Map; -import java.util.concurrent.Callable; import java.util.concurrent.Executors; import javax.swing.JCheckBox; @@ -350,7 +349,7 @@ public class StructureChooser extends GStructureChooser }; // fetch db refs if OK pressed - final Callable discoverCanonicalDBrefs = () -> { + final Runnable discoverCanonicalDBrefs = () -> { btn_queryTDB.setEnabled(false); populateSeqsWithoutSourceDBRef(); @@ -372,14 +371,12 @@ public class StructureChooser extends GStructureChooser // call finished action directly afterDbRefFetch.finished(); } - return null; }; - final Callable revertview = () -> { + final Runnable revertview = () -> { if (lastSelected != null) { cmb_filterOption.setSelectedItem(lastSelected); } - return null; }; int threshold = Cache.getDefault("UNIPROT_AUTOFETCH_THRESHOLD", THRESHOLD_WARN_UNIPROT_FETCH_NEEDED); @@ -1700,20 +1697,21 @@ public class StructureChooser extends GStructureChooser @Override public void setProgressBar(String message, long id) { - if (!Platform.isHeadless()) + if (!Platform.isHeadless() && progressBar != null) progressBar.setProgressBar(message, id); } @Override public void registerHandler(long id, IProgressIndicatorHandler handler) { - progressBar.registerHandler(id, handler); + if (progressBar != null) + progressBar.registerHandler(id, handler); } @Override public boolean operationInProgress() { - return progressBar.operationInProgress(); + return progressBar == null ? false : progressBar.operationInProgress(); } public JalviewStructureDisplayI getOpenedStructureViewer() @@ -1767,13 +1765,14 @@ public class StructureChooser extends GStructureChooser paeFilename, false, true, doXferSettings, null); } - public static void openStructureFileForSequence( + public static StructureViewer openStructureFileForSequence( StructureSelectionManager ssm, StructureChooser sc, AlignmentPanel ap, SequenceI seq, boolean prompt, String sFilename, TFType tft, String paeFilename, boolean forceHeadless, boolean showRefAnnotations, boolean doXferSettings, ViewerType viewerType) { + StructureViewer sv = null; boolean headless = forceHeadless; if (sc == null) { @@ -1782,7 +1781,9 @@ public class StructureChooser extends GStructureChooser sc = new StructureChooser(new SequenceI[] { seq }, seq, ap, false); } if (ssm == null) + { ssm = ap.getStructureSelectionManager(); + } PDBEntry fileEntry = new AssociatePdbFileWithSeq().associatePdbWithSeq( sFilename, DataSourceType.FILE, seq, prompt, Desktop.instance, @@ -1791,15 +1792,18 @@ public class StructureChooser extends GStructureChooser // if headless, "false" in the sc constructor above will avoid GUI behaviour // in sc.launchStructureViewer() if (!headless && !(viewerType == null)) - sc.launchStructureViewer(ssm, new PDBEntry[] { fileEntry }, ap, + { + sv = sc.launchStructureViewer(ssm, new PDBEntry[] { fileEntry }, ap, new SequenceI[] { seq }, viewerType); + } - if (headless) - sc.mainFrame.dispose(); + sc.mainFrame.dispose(); if (showRefAnnotations) showReferenceAnnotationsForSequence(ap.alignFrame, seq); + + return sv; } public static void showReferenceAnnotationsForSequence(AlignFrame af,