* If the selected source is Uniprot or PDB, a free text search panel is opened
* instead to perform the search and selection.
*/
+@SuppressWarnings("serial")
public class SequenceFetcher extends JPanel implements Runnable
{
- private static jalview.ws.SequenceFetcher sfetch = null;
JLabel exampleAccession;
volatile boolean _isConstructing = false;
/**
- * Returns the shared instance of the SequenceFetcher client
- *
- * @return
- */
- public static jalview.ws.SequenceFetcher getSequenceFetcherSingleton()
- {
- if (sfetch == null)
- {
- sfetch = new jalview.ws.SequenceFetcher();
- }
- return sfetch;
- }
-
- /**
* Constructor given a client to receive any status or progress messages
* (currently either the Desktop, or an AlignFrame panel)
*
final String selectedDb, final String queryString)
{
this.progressIndicator = guiIndic;
- getSequenceFetcherSingleton();
+
this.guiWindow = progressIndicator;
if (progressIndicator instanceof AlignFrame)
frame = new JInternalFrame();
frame.setContentPane(this);
- int height = Platform.isAMac() ? 240 : 180;
- Desktop.addInternalFrame(frame, getFrameTitle(), true, 400, height);
+ Desktop.addInternalFrame(frame, getFrameTitle(), true, 400,
+ Platform.isAMacAndNotJS() ? 240 : 180);
}
private String getFrameTitle()
database = new JComboBox<>();
database.setFont(JvSwingUtils.getLabelFont());
database.setPrototypeDisplayValue("ENSEMBLGENOMES ");
- String[] sources = new jalview.ws.SequenceFetcher().getSupportedDb();
+ String[] sources = jalview.ws.SequenceFetcher.getInstance()
+ .getSupportedDb();
Arrays.sort(sources, String.CASE_INSENSITIVE_ORDER);
database.addItem(MessageManager.getString("action.select_ddbb"));
for (String source : sources)
{
StringBuilder sb = new StringBuilder();
HashSet<String> hs = new HashSet<>();
- for (DbSourceProxy dbs : sfetch.getSourceProxy(db))
+ for (DbSourceProxy dbs : jalview.ws.SequenceFetcher.getInstance()
+ .getSourceProxy(db))
{
String tq = dbs.getTestQuery();
if (hs.add(tq)) // not a duplicate source
/*
* tidy inputs and check there is something to search for
*/
- String text = textArea.getText();
+ String t0 = textArea.getText();
+ String text = t0.trim();
if (replacePunctuation.isEnabled() && replacePunctuation.isSelected())
{
text = text.replace(",", ";");
}
- text = text.replaceAll("(\\s|[,; ])+", ";");
- textArea.setText(text);
+ text = text.replaceAll("(\\s|[; ])+", ";");
+ if (!t0.equals(text))
+ {
+ textArea.setText(text);
+ }
if (text.isEmpty())
{
// todo i18n
List<String> presultTitle = new ArrayList<>();
List<AlignmentI> presult = new ArrayList<>();
List<AlignmentI> aresult = new ArrayList<>();
- List<DbSourceProxy> sources = sfetch
+ List<DbSourceProxy> sources = jalview.ws.SequenceFetcher.getInstance()
.getSourceProxy((String) database.getSelectedItem());
Iterator<DbSourceProxy> proxies = sources.iterator();
- String[] qries;
- List<String> nextFetch = Arrays
- .asList(qries = textArea.getText().split(";"));
+ String[] qries = textArea.getText().trim().split(";");
+ List<String> nextFetch = Arrays.asList(qries);
Iterator<String> en = Arrays.asList(new String[0]).iterator();
int nqueries = qries.length;
for (String q : queries)
{
- 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; r < rs.length; r++)
+ for (int r = 0, nr = rs.length; r < nr; r++)
{
if (rs[r] != null)
{
{
af.getViewport().applyFeaturesStyle(preferredFeatureColours);
}
- if (Cache.getDefault("HIDE_INTRONS", true))
+ if (Cache.getDefault(Preferences.HIDE_INTRONS, true))
{
af.hideFeatureColumns(SequenceOntologyI.EXON, false);
}
try
{
- af.setMaximum(Cache.getDefault("SHOW_FULLSCREEN", false));
+ af.setMaximum(
+ Cache.getDefault(Preferences.SHOW_FULLSCREEN, false));
} catch (Exception ex)
{
}
@Override
public void run()
{
- JvOptionPane.showInternalMessageDialog(Desktop.desktop, error,
+ JvOptionPane.showInternalMessageDialog(Desktop.getDesktopPane(), error,
MessageManager.getString("label.error_retrieving_data"),
JvOptionPane.WARNING_MESSAGE);
}