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;
};
// fetch db refs if OK pressed
- final Callable discoverCanonicalDBrefs = () -> {
+ final Runnable discoverCanonicalDBrefs = () -> {
btn_queryTDB.setEnabled(false);
populateSeqsWithoutSourceDBRef();
// 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);
@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()
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)
{
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,
// 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,