*/
package jalview.gui;
-import jalview.api.FeatureSettingsModelI;
-import jalview.bin.Cache;
-import jalview.datamodel.AlignmentI;
-import jalview.datamodel.DBRefEntry;
-import jalview.datamodel.SequenceI;
-import jalview.fts.core.GFTSPanel;
-import jalview.fts.service.pdb.PDBFTSPanel;
-import jalview.fts.service.uniprot.UniprotFTSPanel;
-import jalview.io.FileFormatI;
-import jalview.io.gff.SequenceOntologyI;
-import jalview.util.DBRefUtils;
-import jalview.util.MessageManager;
-import jalview.util.Platform;
-import jalview.ws.seqfetcher.DbSourceProxy;
-
import java.awt.BorderLayout;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
+import java.util.Map;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JTextArea;
import javax.swing.SwingConstants;
+import jalview.api.FeatureSettingsModelI;
+import jalview.bin.Cache;
+import jalview.datamodel.AlignmentI;
+import jalview.datamodel.DBRefEntry;
+import jalview.datamodel.SequenceI;
+import jalview.fts.core.GFTSPanel;
+import jalview.fts.service.pdb.PDBFTSPanel;
+import jalview.fts.service.uniprot.UniprotFTSPanel;
+import jalview.io.FileFormatI;
+import jalview.io.gff.SequenceOntologyI;
+import jalview.util.DBRefUtils;
+import jalview.util.MessageManager;
+import jalview.util.Platform;
+import jalview.ws.seqfetcher.DbSourceProxy;
+
/**
* A panel where the use may choose a database source, and enter one or more
* accessions, to retrieve entries from the database.
volatile boolean _isConstructing = false;
+ private boolean closeDialog = false;
+
+ // set to true to close the fetch sequence dialog window after completion
+ public void closeDialog(boolean c)
+ {
+ closeDialog = c;
+ }
+
/**
* Returns the shared instance of the SequenceFetcher client
*
frame = new JInternalFrame();
frame.setContentPane(this);
- Desktop.addInternalFrame(frame, getFrameTitle(), true, 400,
- Platform.isAMacAndNotJS() ? 240 : 180);
+ Desktop.addInternalFrame(frame, getFrameTitle(), true, 400,
+ Platform.isAMacAndNotJS() ? 240 : 180);
}
private String getFrameTitle()
*/
public void ok_actionPerformed()
{
+ ok_actionPerformed(false);
+ }
+
+ public Thread ok_actionPerformed(boolean returnThread)
+ {
/*
* tidy inputs and check there is something to search for
*/
text = text.replace(",", ";");
}
text = text.replaceAll("(\\s|[; ])+", ";");
- if (!t0.equals(text))
+ if (!t0.equals(text))
{
- textArea.setText(text);
+ textArea.setText(text);
}
if (text.isEmpty())
{
showErrorMessage(
"Please enter a (semi-colon separated list of) database id(s)");
resetDialog();
- return;
+ return null;
}
if (database.getSelectedIndex() == 0)
{
// todo i18n
showErrorMessage("Please choose a database");
resetDialog();
- return;
+ return null;
}
exampleBtn.setEnabled(false);
Thread worker = new Thread(this);
worker.start();
+ return returnThread ? worker : null;
}
private void resetDialog()
showErrorMessage(sb.toString());
}
resetDialog();
+ if (closeDialog)
+ {
+ close_actionPerformed(null);
+ }
+ }
+
+ // ability to access the alignframe created/used in run+parseResult
+ private boolean saveAlignFrame = false;
+
+ private String savedAlignFrameId = null;
+
+ private Map savedAlignFrames = null;
+
+ public void saveAlignFrame(String id, Map map)
+ {
+ saveAlignFrame = true;
+ savedAlignFrameId = id;
+ savedAlignFrames = map;
+ }
+
+ public void resetSavedAlignFrames()
+ {
+ saveAlignFrame = false;
+ savedAlignFrameId = null;
+ savedAlignFrames = null;
}
/**
for (String q : queries)
{
- // BH 2019.01.25 dbr is never used.
-// DBRefEntry dbr = new DBRefEntry();
-// dbr.setSource(proxy.getDbSource());
-// dbr.setVersion(null);
+ // BH 2019.01.25 dbr is never used.
+ // DBRefEntry dbr = new DBRefEntry();
+ // dbr.setSource(proxy.getDbSource());
+ // dbr.setVersion(null);
String accId = proxy.getAccessionIdFromQuery(q);
-// dbr.setAccessionId(accId);
+ // dbr.setAccessionId(accId);
boolean rfound = false;
for (int r = 0, nr = rs.length; r < nr; r++)
{
{
AlignFrame af = new AlignFrame(al, AlignFrame.DEFAULT_WIDTH,
AlignFrame.DEFAULT_HEIGHT);
+ if (saveAlignFrame && savedAlignFrames != null)
+ {
+ savedAlignFrames.put(savedAlignFrameId, af);
+ }
if (currentFileFormat != null)
{
af.currentFileFormat = currentFileFormat;
}
else
{
+ if (saveAlignFrame && savedAlignFrames != null)
+ {
+ savedAlignFrames.put(savedAlignFrameId, alignFrame);
+ }
alignFrame.viewport.addAlignment(al, title);
}
}