private boolean showChooserGUI = true;
+ /**
+ * when true, queries to external services are supressed (no SIFTs, no PDBe,
+ * no 3D-Beacons, etc)
+ */
+ private boolean dontQueryServices = false;
+
private static StructureViewer lastTargetedView = null;
public StructureChooser(SequenceI[] selectedSeqs, SequenceI selectedSeq,
public StructureChooser(SequenceI[] selectedSeqs, SequenceI selectedSeq,
AlignmentPanel ap, boolean showGUI)
{
+ this(selectedSeqs, selectedSeq, ap, showGUI, false);
+ }
+
+ public StructureChooser(SequenceI[] selectedSeqs, SequenceI selectedSeq,
+ AlignmentPanel ap, boolean showGUI, boolean dontQueryServices)
+ {
+
// which FTS engine to use
data = StructureChooserQuerySource.getQuerySourceFor(selectedSeqs);
initDialog();
this.selectedSequences = selectedSeqs;
this.progressIndicator = (ap == null) ? null : ap.alignFrame;
this.showChooserGUI = showGUI;
+ this.dontQueryServices = dontQueryServices;
init();
}
}
});
- Executors.defaultThreadFactory().newThread(new Runnable()
+ if (!dontQueryServices)
{
- @Override
- public void run()
+ Executors.defaultThreadFactory().newThread(new Runnable()
{
- populateSeqsWithoutSourceDBRef();
- initialStructureDiscovery();
- }
-
- }).start();
+ @Override
+ public void run()
+ {
+ populateSeqsWithoutSourceDBRef();
+ initialStructureDiscovery();
+ }
+ }).start();
+ }
+ else
+ {
+ Console.debug(
+ "Structure chooser not querying services to discover metadata.");
+ }
}
// called by init
}
} catch (Exception e)
{
- Console.debugPrintStackTrace(e);
+ Console.printStackTrace(e);
errors.add(e.getMessage());
continue;
}
.getFTSDataFor(getResultTable(), selectedRow,
discoveredStructuresSet);
String pageUrl = row.getModelViewUrl();
+
JPopupMenu popup = new JPopupMenu("3D Beacons");
JMenuItem viewUrl = new JMenuItem("View model web page");
+ if (pageUrl == null || "".equals(pageUrl.trim()))
+ {
+ viewUrl.setEnabled(false);
+ viewUrl.setText("No model page available.");
+ }
viewUrl.addActionListener(new ActionListener()
{
@Override
selectedSequence = userSelectedSeq;
}
String pdbFilename = selectedPdbFileName;
-
+ // TODO - tidy up this ugly hack so we call launchStructureViewer too
StructureChooser.openStructureFileForSequence(ssm, sc, ap,
- selectedSequence, true, pdbFilename, tft, paeFilename,
- true);
+ selectedSequence, true, pdbFilename, tft, paeFilename,false,
+ true,false,getTargetedStructureViewer(ssm).getViewerType());
}
SwingUtilities.invokeLater(new Runnable()
{
paeFilename, false, true, doXferSettings, null);
}
+ /**
+ *
+ * @param ssm
+ * @param sc
+ * @param ap
+ * @param seq
+ * @param prompt
+ * @param sFilename
+ * @param tft
+ * @param paeFilename
+ * @param forceHeadless
+ * @param showRefAnnotations
+ * @param doXferSettings
+ * @param viewerType - when not null means the viewer will be opened, providing forceHeadless/headless is not true
+ * @return
+ */
public static StructureViewer openStructureFileForSequence(
StructureSelectionManager ssm, StructureChooser sc,
AlignmentPanel ap, SequenceI seq, boolean prompt,
{
// headless = true;
prompt = false;
- sc = new StructureChooser(new SequenceI[] { seq }, seq, ap, false);
+ // suppress structure viewer's external service queries
+ sc = new StructureChooser(new SequenceI[] { seq }, seq, ap, false,
+ true);
}
if (ssm == null)
{
ssm = ap.getStructureSelectionManager();
+ StructureSelectionManager.doConfigureStructurePrefs(ssm);
}
-
+
PDBEntry fileEntry = new AssociatePdbFileWithSeq().associatePdbWithSeq(
sFilename, DataSourceType.FILE, seq, prompt, Desktop.instance,
tft, paeFilename, doXferSettings);
sv = sc.launchStructureViewer(ssm, new PDBEntry[] { fileEntry }, ap,
new SequenceI[]
{ seq }, viewerType);
+ // foo
+ sv.getJalviewStructureDisplay().raiseViewer();
}
sc.mainFrame.dispose();
+ // TODO should honor preferences - only show reference annotation that is requested - JAL-4415 JAL-3124
if (showRefAnnotations)
{
showReferenceAnnotationsForSequence(ap.alignFrame, seq);